docdawson Posted November 17, 2007 Report Share Posted November 17, 2007 Hallo, ich soll für jemandem im Shop was ein wenig Code hinzufügen und stolpere gerade über folgenden Code: Datei: checkout_success.php Zeile: ganz am Ende wo "if (DOWNLOAD_ENABLED == 'true')" steht. Bei mir sieht das so aus (ich hoffe, dass dies nicht schon vorher verändert wurde oder evlt. eine alte Datei ist, die schon in einer neueren Version vorliegt). Als mein Dateiende sieht so aus if (DOWNLOAD_ENABLED == 'true') include (DIR_WS_MODULES.'downloads.php'); $smarty->assign('language', $_SESSION['language']); $smarty->assign('PAYMENT_BLOCK', $payment_block); $smarty->caching = 0; $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/checkout_success.html'); $smarty->assign('language', $_SESSION['language']); $smarty->assign('main_content', $main_content); $smarty->caching = 0; if (!defined(RM)) $smarty->load_filter('output', 'note'); $smarty->display(CURRENT_TEMPLATE.'/index.html'); include ('includes/application_bottom.php'); ?>[/php]Wenn ich den Code richtig interpretiere, kann man das ja auch so schreiben, was für mich wenig Sinn macht: [php]if (DOWNLOAD_ENABLED == 'true') { include (DIR_WS_MODULES.'downloads.php'); } $smarty->assign('language', $_SESSION['language']); $smarty->assign('PAYMENT_BLOCK', $payment_block); $smarty->caching = 0; $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/checkout_success.html'); $smarty->assign('language', $_SESSION['language']); $smarty->assign('main_content', $main_content); $smarty->caching = 0; if (!defined(RM)) { $smarty->load_filter('output', 'note'); } $smarty->display(CURRENT_TEMPLATE.'/index.html'); include ('includes/application_bottom.php'); ?>Das würde ja bedeuten, dass $smarty->assign('language', $_SESSION['language']); und $smarty->caching = 0;[/php]Zweimal zugewiesen werden würden. Da ich das erstmal merkwürdig finde wollte ich mal fragen, ob: 1. Die Datei so im original so aussieht? 2. Noch aktuell ist? (evtl. habe ich ja eine alte Datei) 3. So richtig interpretiert wurde? (evtl. habe ich das ja falsch verstanden) 4. Wenn 1-3 mit "ja" beantwortet werden können, bitte mal diesen Code erklären. Vielen Dank. Link to comment Share on other sites More sharing options...
Numerobis Posted November 17, 2007 Report Share Posted November 17, 2007 1. Die Datei so im original so aussieht? 2. Noch aktuell ist? (evtl. habe ich ja eine alte Datei) 3. So richtig interpretiert wurde? (evtl. habe ich das ja falsch verstanden) 4. Wenn 1-3 mit "ja" beantwortet werden können, bitte mal diesen Code erklären. Vielen Dank. Im Ergebnis ist da kein Unterschied. Die Zweite ist nur näher am Code-Standard. Die if-Schleifen gehören immer in geschweifte Klammern, was in der "alten" Version eben nicht so war. Die Datei in meiner SP2.1 sieht aus wie das untere Beispiel. Im Dateikopf steht übrigens ne Versionsnummer, bei mir ist das $Id: checkout_success.php 896 2005-04-27 19:22:59Z mz $[/PHP] Naja, ich versuch mal die zwei cache und language zu erklären: Zuerst wird das, was in der checkout_success.php errechnet wurde dem Template checkout_success.html übergeben und als Ganzes mit fetch der Variable $main_content zugewiesen. Der Inhalt ist immer neu und darf nicht gecached sein. Deshalb wird das caching genullt. Das Template braucht auch die Sprache, weil ja #Text#-Tags drin stecken.[PHP]$main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/checkout_success.html');[/PHP] $main_content wird dann dem Template index.html übergeben und mit display am Bildschirm ausgegeben. [PHP]$smarty->display(CURRENT_TEMPLATE.'/index.html');[/PHP]Auch für dieses Template muß caching 0 sein, weil ja sonst irgendein alter Content drin stehen würde. Die Sprache braucht das Template auch nochmal, weil die mit assign übergebenen Variablen nicht global zur Verfügung stehen und nach dem "fetch" des Templates "weg" sind. "fetch" heißt quasi, merk Dir das mal, das hau ich später raus. "display" bedeutet, daß jetzt gut ist mit der Rechnerei, jetzt will ichs sehen. Da wird das viel besser erklärt: ;-) http://smarty.php.net/manual/de/ Gruß Numerobis Link to comment Share on other sites More sharing options...
docdawson Posted November 18, 2007 Author Report Share Posted November 18, 2007 Cool, danke für die ausführliche Beschreibung. Das genügt schon. Meine Version ist auch die $Id: checkout_success.php 896 2005-04-27 19:22:59Z mz $ Komisch, dass die dann unterschiedlich aussehen. Link to comment Share on other sites More sharing options...
wibros Posted November 18, 2007 Report Share Posted November 18, 2007 Auf die Versionsnummer würde ich mal gar nichts geben. Trotz großer Unterschiede zwischen verschiedenen Releases ändert die sich eher zufällig. Und zum Thema 'if-Schleifen' noch was lesenswertes... Link to comment Share on other sites More sharing options...
Numerobis Posted November 19, 2007 Report Share Posted November 19, 2007 Und zum Thema 'if-Schleifen' noch was lesenswertes... Haarspalter ;-) Du hast natürlich recht. So ist das halt mit den Autodidakten. Da fällt einem kein richtiger Begriff ein und schon hat man einen falschen. Zumindest passt Schleife phonetisch ganz gut zur geschweiften Klammer ... Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.