Jump to content
xt:Commerce Community Forum

Code-Verständnisfrage


docdawson

Recommended Posts

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

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

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...