Differences

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}}
deutsch/ersetzer_rts/frontend_render.1242431197.txt.gz · Last modified: 2018/06/03 18:07 (external edit)
www.planmatrix.de www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0