giller Posted August 10, 2010 Report Share Posted August 10, 2010 Hallo würde gerne die {$cart_total} mit einer if abfrage nutzen aber leider ist in der $cart_total ein string mit html Tags und deshalb funktioniert es wohl nicht hat jemand ein tip wie man das zb hinbekommkt. {if $cart_total <= 60} Versandt 4.90 {else} Free Link to comment Share on other sites More sharing options...
teichcenter Posted August 10, 2010 Report Share Posted August 10, 2010 Das kannst Du direkt über die Versandkosten einpflegen. Dort kannst auch über den Preis gehen. mfg Michael Link to comment Share on other sites More sharing options...
giller Posted August 10, 2010 Author Report Share Posted August 10, 2010 Nein nein mir geht es um die Anzeige der Versandkosten im Warenkorb! Link to comment Share on other sites More sharing options...
oldbear Posted August 10, 2010 Report Share Posted August 10, 2010 hi, dann stelle doch mal {debug} in die erste Zeile und Du siehst alle Variablen -> gerade gekuckt, nix verwertbares für Dich, also hol Dir die Werte aus der $_SESSION ( kannst Du Dir anzeigen lassen mit _SYSTEM_DEBUG = true in der xt_config ). Die Werte dort kann man mit etwas php-Kenntnissen leicht auslesen. das geht etwa so: {php} $cart_total = $this->get_template_vars('cart'); // Als Zahl formatieren // entferne vorderen String $cart_total = str_replace('<span class="price"> ','',$cart_total); // entferne hinteren String $cart_total = str_replace(' €</span>','',$cart_total); // entferne Tausender-Punkte $cart_total = str_replace('.','',$cart_total); // Ausgabe ans template $this->assign('total',$cart_total); {php}[/PHP] Dann steht Dir die Variable {$total} als Zahlenwert zur Verfügung. Ich habe das für eine Ausgabe a la "Sie haben für € 34,-- eingekauft. Ab € 60,-- ist die Lieferung frachtfrei, darunter entfallen Versandkosten in Höhe von € 4,90" benützt. Nehme an, Du willst was ähnliches..... Grüsse Link to comment Share on other sites More sharing options...
giller Posted August 11, 2010 Author Report Share Posted August 11, 2010 Ja odbear du verstehst mich. und ich verstehe nicht warum die HTML Tag's mit span überhaubt mit in die cart_total mit eingebaut werden es wäre sonst ja zu leicht Kann man nicht auch die [content_total] plain im Warenkorb verfügbar machen so z.b. {php} $content_total = $this->get_template_vars('cart'); $this->assign('content_total',$content_total); {/php} ------------------------------------------------------------------------- Und dann so nutzen ? {if $content_total.plain <= 60} <br /> <a href="{$shipping_link}" target="_blank" rel="nofollow">{txt key=TEXT_EXCL_SHIPPING}</a> (DE): 4,90 EUR<br /> {else}{if $content_total.plain > 60} <br /><strong><a href="{$shipping_link}" target="_blank" rel="nofollow">Versandkosten</a> (DE): FREI</strong><br /> {/if}{/if} Danke Link to comment Share on other sites More sharing options...
oldbear Posted August 11, 2010 Report Share Posted August 11, 2010 hi, geht ein bisschen anders; Voraussetzung für mein Beispiel war ( sorry ) das der Wert 'cart' vorher mit assign zugewiesen wird, also so: {assign var=cart value=$cart_total}. Willst du das Array aus der $_SESSION holen, geht das so: {php} $content_total = $_SESSION['cart']->content_total; $this->assign('content_total',$content_total} {/php} Grüsse Link to comment Share on other sites More sharing options...
giller Posted August 18, 2010 Author Report Share Posted August 18, 2010 Also Oldbear ich habe diese Tehma nicht vergessen bis jetzt bin ich aber noch nicht weiter gekommen habe nur eine weisse Site ereicht. Was ich nicht verstehe ist das {$x-y-z.plain} im Exportmanager funktioniert warum macht er mir im Warenkorb den {$cart_total} den nicht plain das ich einfach {if $cart_total.plain <= 60} nutzen kann? Mit freundliche Grüße Roger Link to comment Share on other sites More sharing options...
oldbear Posted August 18, 2010 Report Share Posted August 18, 2010 hi, das liegt einfach daran, das $cart_total ein fertig aufbereiteter HTML-String ist und die Variante "plain" im Template einfach nicht zur Vefügung steht. Um damit zu rechnen, musst Du den erst in eine Zahl umwandeln oder Dir wie beschrieben den Wert aus der $_SESSION ziehen ! Probiers mal damit: {assign var=cart value=$cart_total} {php} // holen der Variablen aus dem Template, ist formatiert mit Komma und Eurozeichen ! $cart_total = $this->get_template_vars('cart'); // Als Zahl formatieren // entferne vorderen String $cart_total = str_replace('<span class="price"> ','',$cart_total); // entferne hinteren String $cart_total = str_replace(' €</span>','',$cart_total); // entferne Tausender-Punkte $cart_total = str_replace('.','',$cart_total); // tausche Komma gegen Punkt $cart_total = str_replace(',','.',$cart_total); // Ausgabe ans Template $this->assign ('carttotal',$cart_total'); {/php} [/PHP] Jetzt steht Dir im Template $carttotal zum Rechnen zur Verfügung. Wenn Du statt dem Euro-Zeichen "EUR" verwendest, musst Du das oben halt austauschen ! Grüsse Link to comment Share on other sites More sharing options...
giller Posted August 18, 2010 Author Report Share Posted August 18, 2010 Also ich habe es in der cart.html am anfang eingefügt nach einem Neuladen ist die Warenkorb weiss. mache ich was falsch?JA aber was Link to comment Share on other sites More sharing options...
oldbear Posted August 18, 2010 Report Share Posted August 18, 2010 noch ein Fehler drin, vorletzte Zeile: $this->assign ('carttotal',$cart_total'); das letzte Hochkoma hat sich eingeschlichen richtig:$this->assign ('carttotal',$cart_total); Grüsse Link to comment Share on other sites More sharing options...
giller Posted August 18, 2010 Author Report Share Posted August 18, 2010 Ich danke dir Herzlichst und weist du was mich an meisten stört das ich diesen syntax fehler nicht selbst gesehen habe. :D:D Mit freundlichen Grüßen Roger Link to comment Share on other sites More sharing options...
giller Posted August 19, 2010 Author Report Share Posted August 19, 2010 So habe ich noch math hinzugefügt ich löse das bei mir übers Tamplate da ich für jede Sprache eine Damain nutze sonst währ das woll nicht so elegant hast du noch ein tip wie ich vorher schon im {php} teil die Rechnung machen kann {if $carttotal <= 60} <br /> <a href="{$shipping_link}" target="_blank" rel="nofollow">{txt key=TEXT_EXCL_SHIPPING}</a> (DE): 4,90 EUR<br /> <strong>Gesamtsumme: {math equation="x + y" x=$carttotal y='4.90'} EUR</strong> {else}<br /><strong><a href="{$shipping_link}" target="_blank" rel="nofollow">Versandkosten</a> (DE): FREI</strong><br /> {/if} MFG Roger Link to comment Share on other sites More sharing options...
oldbear Posted August 19, 2010 Report Share Posted August 19, 2010 hi, check ich noch nicht ganz: Deine math equation funzt nicht ? oder was .... Grüsse Link to comment Share on other sites More sharing options...
giller Posted August 19, 2010 Author Report Share Posted August 19, 2010 Doch aber eigentlich könnte man ja schon im forfeld hier rechnen aber php syntax habe ich kein plan von (nur ganzzzz wenig) {assign var=cart value=$cart_total} {php} // holen der Variablen aus dem Template, ist formatiert mit Komma und Eurozeichen ! $cart_total = $this->get_template_vars('cart'); // Als Zahl formatieren // entferne vorderen String $cart_total = str_replace('<span class="price"> ','',$cart_total); // entferne hinteren String $cart_total = str_replace(' EUR</span>','',$cart_total); // entferne Tausender-Punkte $cart_total = str_replace('.','',$cart_total); // tausche Komma gegen Punkt $cart_total = str_replace(',','.',$cart_total); // Ausgabe ans Template $this->assign ('carttotal',$cart_total); {/php} Link to comment Share on other sites More sharing options...
giller Posted August 19, 2010 Author Report Share Posted August 19, 2010 if ($cartotal <= 60 {$cartotal + 4.90} so cirka Link to comment Share on other sites More sharing options...
oldbear Posted August 19, 2010 Report Share Posted August 19, 2010 kein Problem; sollte so gehen // Ausgabe ans Template if ( $carttotal < 60 ) { $sum_total = $carttotal + 4.9;} else { $sum_total = $carttotal;} $this->assign ('sumtotal',$sum_total); $this->assign ('carttotal',$cart_total); {/php}[/PHP] Dann hast Du beide Werte Grüsse Link to comment Share on other sites More sharing options...
giller Posted August 19, 2010 Author Report Share Posted August 19, 2010 Ich sehe das schon solche kleinen Beispiele helfen mir mehr beim begreifen als mein php 5.3 Buch Link to comment Share on other sites More sharing options...
oldbear Posted August 19, 2010 Report Share Posted August 19, 2010 gern geschehen... ich hab gar kein php-Buch, sollte mir vielleicht doch mal eins kaufen :-) Grüsse Aber das nimmt kein Ende: dann noch ein javascript-Buch, ein smarty-Buch ( gibts sowas ? ) , ein css-Buch ( meine Schwachstelle :-), weiss der Geier ( information-overflow ! ) ... irgendwie verlass ich mich einfach auf mein technisches Verständnis und die zig Programmiersprachen aus dem Altertum ( von algol68, fortran, basic, pascal, cobol - das hab ich geliebt ! - progress-db4 und was weiss ich ) für Grundlagenforschung bin ich einfach zu alt ! Link to comment Share on other sites More sharing options...
giller Posted August 19, 2010 Author Report Share Posted August 19, 2010 Habe alle Bücher bis auf Smarty gibts noch nicht geholfen hat es nicht. Aber css das mag ich gern alles in schachteln packen ><div>< So geh ins bett zur alten na ja(23) Link to comment Share on other sites More sharing options...
oldbear Posted August 19, 2010 Report Share Posted August 19, 2010 mach dat, rentiert sich doch noch .... (56) Link to comment Share on other sites More sharing options...
giller Posted August 19, 2010 Author Report Share Posted August 19, 2010 So konte ja nicht abwarten aber jetzt gehe ich Schlafen Ich glaub so ist es besser // Ausgabe ans Template if ( $cart_total < 60 ) { $sum_total = $cart_total + 4.9;} else { $sum_total = $cart_total ;} $this->assign ('sumtotal',$sum_total); {/php} Ansonten schreibt 4.9 da $carttotal noch leer ist auf jeden fall in {php}{/php} im Template nicht. $this->assign ('carttotal',$cart_total); carttotal fürs Tamplate $cart_total zum Rechnen noch in php Jetzt klapt es geil {assign var=cart value=$cart_total} {php} // holen der Variablen aus dem Template, ist formatiert mit Komma und Eurozeichen ! $cart_total = $this->get_template_vars('cart'); // Als Zahl formatieren // entferne vorderen String $cart_total = str_replace('<span class="price"> ','',$cart_total); // entferne hinteren String $cart_total = str_replace(' EUR</span>','',$cart_total); // entferne Tausender-Punkte $cart_total = str_replace('.','',$cart_total); // tausche Komma gegen Punkt $cart_total = str_replace(',','.',$cart_total); $this->assign ('carttotal',$cart_total); // Ausgabe ans Template if ( $cart_total < 60 ) { $sum_total = $cart_total + 4.9;} else { $sum_total = $cart_total ;} $this->assign ('sumtotal',$sum_total); {/php} Das war doch ein test ? oder? MFG Roger hier auf Facebook Viper Twin Turbo 1900PS Link to comment Share on other sites More sharing options...
giller Posted August 28, 2010 Author Report Share Posted August 28, 2010 Hallo basttel jetzt ein bischen weiter {assign var=cart value=$cart_total} {php} // holen der Variablen aus dem Template, ist formatiert mit Komma und Eurozeichen ! $cart_total = $this->get_template_vars('cart'); // Als Zahl formatieren // entferne vorderen String $cart_total = str_replace('<span class="price"> ','',$cart_total); // entferne hinteren String $cart_total = str_replace(' EUR</span>','',$cart_total); // entferne Tausender-Punkte $cart_total = str_replace('.','',$cart_total); // tausche Komma gegen Punkt $cart_total = str_replace(',','.',$cart_total); $this->assign ('carttotal',$cart_total); // Ausgabe ans Template if ( $cart_total < 60 ) { $sum_total = $cart_total + 4.9;} else { $sum_total = $cart_total ;} $this->assign ('sumtotal',$sum_total); $this->assign('myOptions', array( 11 => 'Deutschland', 12 => 'Europa', 13 => 'International') ); {/php} {html_options name=shippingcost options=$myOptions selected=$mySelect} man sieht woll was es werden soll. Habe jetzt volgendes Problem Gibt es die möglichkeit eigene werte in den SESSION Cookie einzutragen??? Link to comment Share on other sites More sharing options...
oldbear Posted August 29, 2010 Report Share Posted August 29, 2010 hi, klar geht das, entweder normale Werte , in php einfach: $_SESSION['myvar'] = $myvar; oder in ein vorhandenes Objekt ( z.B. cart ): {php} // Beispiel für Lesen eines $_SESSION-OBJEKTS $show_content = $_SESSION['cart']->show_content; // Wegschreiben eines $_SESSION-OBJEKTS $stime['4_XT']['products_shippingtime'] = 99; $_SESSION['cart']->show_content = $stime; {/php}[/PHP] Grüsse Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.