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}} | ||