NAVIGATION
This shows you the differences between two versions of the page.
deutsch:ersetzer_rts:frontend_render [2009/05/16 01:46] Knut Heermann (flip-flop) |
deutsch:ersetzer_rts:frontend_render [2018/06/03 18:09] (current) |
||
---|---|---|---|
Line 5: | Line 5: | ||
\\ | \\ | ||
- | **Beschreibung:** \\ | + | **Beschreibung:** |
- | Im /frontend_render/ -Ordner können php Skripte abgelegt werden, die während des Parsens //(vereinfacht: Interne Verarbeitung)// der Seite abgearbeitet werden, bevor die Seite an den Browser ausgeliefert wird. | + | |
+ | Im **/frontend_render/** -Ordner können php Skripte abgelegt werden, die während des Parsens //(vereinfacht: Interne Verarbeitung)// der Seite abgearbeitet werden, bevor die Seite an den Browser ausgeliefert wird. | ||
Alle Dateien mit der Endung *.php werden vom System geladen und ausgeführt. Die Dateinamen sind frei wählbar //(empfohlenes Muster: rt_mein_dateiname.php). // \\ | Alle Dateien mit der Endung *.php werden vom System geladen und ausgeführt. Die Dateinamen sind frei wählbar //(empfohlenes Muster: rt_mein_dateiname.php). // \\ | ||
- | Die Reihenfolge ist nicht bestimmbar. | + | Die Reihenfolge der Abarbeitung ist ohne spezielle Programmierung nicht bestimmbar. |
Das Kernstück ist in der Regel die Variable **$content["all"]**, in der der Inhalt des Contents der Seite liegt //(zwischen **<body>** und **</body>**). // \\ | Das Kernstück ist in der Regel die Variable **$content["all"]**, in der der Inhalt des Contents der Seite liegt //(zwischen **<body>** und **</body>**). // \\ | ||
Es können natürlich auch andere systemfremde Funktionen ausgeführt werden. | Es können natürlich auch andere systemfremde Funktionen ausgeführt werden. | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== Wichtig ===== | ||
+ | |||
+ | **In allen Dateien in diesem Ordner sollte aus Sicherheitsgründen am Anfang jeder Datei folgende Sequenz stehen:** | ||
+ | <file> | ||
+ | <?php | ||
+ | // ---------------------------------------------------------------- | ||
+ | // obligate check for phpwcms constants | ||
+ | if (!defined('PHPWCMS_ROOT')) { | ||
+ | die("You Cannot Access This Script Directly, Have a Nice Day."); } | ||
+ | // ---------------------------------------------------------------- | ||
+ | ... | ||
+ | ... | ||
+ | </file> | ||
+ | |||
+ | \\ | ||
==== Einfaches Beispiel: ==== | ==== Einfaches Beispiel: ==== | ||
- | Hier der Dateinhalt eines sehr einfachen Ersetzers: | + | Hier der Dateiinhalt einer sehr einfachen Prozedur, die einfach nur den Text //"Das ist ein unsinniger Text"// an das Seitenende jeder Seite schreibt: |
+ | <code php> | ||
+ | <?php | ||
+ | // ---------------------------------------------------------------- | ||
+ | // obligate check for phpwcms constants | ||
+ | if (!defined('PHPWCMS_ROOT')) { | ||
+ | die("You Cannot Access This Script Directly, Have a Nice Day."); } | ||
+ | // ---------------------------------------------------------------- | ||
+ | |||
+ | $content["all"] .= '<p>Das ist ein unsinniger Text</p>'; | ||
+ | |||
+ | ?> | ||
+ | </code> | ||
+ | |||
+ | ~~UP~~ | ||
+ | |||
+ | ==== Beispiel 2: ==== | ||
+ | |||
+ | Hier der Dateiinhalt eines sehr einfachen Ersetzers: | ||
<code php> | <code php> | ||
<?php | <?php | ||
Line 41: | Line 78: | ||
~~UP~~ | ~~UP~~ | ||
- | ==== Beispiel 2: ==== | + | ==== Beispiel 3: ==== |
<code php |h rt_my_tag.php |h> | <code php |h rt_my_tag.php |h> | ||
Line 121: | Line 158: | ||
\\ | \\ | ||
+ | |||
+ | |||
+ | ===== Abarbeitungsreihenfolge der Dateien in /frontend_render/ ===== | ||
+ | |||
+ | |||
+ | Wenn mehr als eine Datei im Ordner /frontend_render/ existieren und die Resultate dieser Routinen in Abhängigkeit zueinander stehen, taucht ein fundamentales Problem verursacht durch die Abarbeitungsreihenfolge auf. \\ | ||
+ | Wir haben leider keinen direkten Einfluss auf die Abarbeitungsreihenfolge der Dateien im Ordner /frontend_render/. | ||
+ | |||
+ | ==== Lösung 01 ==== | ||
+ | |||
+ | **Dargestellt am Beispiel NAV_HORIZ_DD und dem FE Sprachumschalter.** | ||
+ | |||
+ | --> [[http://forum.phpwcms.org/viewtopic.php?p=119117#p119117|Forum]] [EN] | ||
+ | |||
+ | - Wir verwenden eine externe Navigation wie [[deutsch/navigationen/dropdown_flyout/nav_horiz_dd|{NAV_HORIZ_DD:xx,yy}]] | ||
+ | - Wir verwenden den externen /frontend_render/ -Sprachumschalter. | ||
+ | |||
+ | Wenn der Sprachumschalter vor dem NAV_HORIZ_DD Skript abgearbeitet wird, wird kein Sprach-Tag in der Navigation ersetzt. | ||
+ | |||
+ | [de]Das Haus[/de][en]The Hotel[/en][de]Urlaub & Familie[/de][en]Holidays & Family[/en] | ||
+ | |||
+ | **Eine einfache Lösung:** \\ | ||
+ | Verschiebe die betroffenen Dateien in einen anderen Ordner und stelle die richtige Reihenfolge der betroffenen Dateien mit Hilfe einer dritten Datei her. | ||
+ | |||
+ | - Erstelle ein Verzeichnis z.B. /frontend_render/special | ||
+ | - Verschiebe die beiden Dateien rt_nav_horiz_drop_down.php und lang_replace.php aus /frontend_render/ nach /frontend_render/special/ | ||
+ | - Erstelle eine Datei z.B. processing_order.php in /frontend_render/ | ||
+ | \\ | ||
+ | |||
+ | <code php|h processing_order.php > | ||
+ | <?php | ||
+ | |||
+ | // ---------------------------------------------------------------- | ||
+ | // obligate check for phpwcms constants | ||
+ | if (!defined('PHPWCMS_ROOT')) { | ||
+ | die("You Cannot Access This Script Directly, Have a Nice Day."); | ||
+ | } | ||
+ | // ---------------------------------------------------------------- | ||
+ | |||
+ | // Specifies the sequence of processing files | ||
+ | include ('special/rt_nav_horiz_drop_down.php'); // processing first | ||
+ | include ('special/lang_replace.php'); // processing second | ||
+ | |||
+ | ?> | ||
+ | </code> | ||
+ | \\ | ||
+ | |||
+ | ==== Lösung 02 ==== | ||
+ | |||
+ | Um die Skriptlaufzeit auf dem Server zu optimieren, können Sie die Inhalte aller Dateien in /frontend_render/* in der richtigen Reihenfolge in eine Datei schreiben z.B. master.php \\ | ||
+ | Jetzt müssen natürlich alle anderen Dateien in diesem Ordner deaktiviert werden z.B. durch die Endung *.php_ | ||
+ | |||
+ | Das ist alles, wir haben die Abarbeitungsreihenfolge bestimmt. :-D \\ //(Sie können das mit allen anderen php Skripten in /frontend_render/ praktizieren, wenn ähnliche Probleme auftauchen).// | ||
+ | |||
+ | |||
+ | ~~UP~~ | ||
+ | \\ | ||
+ | |||
+ | |||
===== Kleine Linkübersicht ===== | ===== Kleine Linkübersicht ===== | ||
{{indexmenu>deutsch:ersetzer_rts/frontend_render|js#doku navbar msort nsort nocookie notoc}} | {{indexmenu>deutsch:ersetzer_rts/frontend_render|js#doku navbar msort nsort nocookie notoc}} |