Um Inhalt aus HEADER / LEFT / FOOTER / RIGHT darzustellen in der Templateeinstellung "Haupt" kann dieses
Script verwendet werden.
Allerdings wird hier der Inhalt aus den Vorlagefelder HEADER / LEFT / FOOTER / RIGHT immer dargestellt, egal ob ein CP dort etwas hineinschreibt oder nicht.
Hier eine Lösung analog zu den Custom Blocks zu finden ist nicht einfach, da es keine Möglichkeit gibt genau zu dem Zeitpunkt der Abarbeitung einzugreifen.
In /frontend_init/ sind die Inhalte von {HEADER} {LEFT} usw. noch nicht geparst.
In /frontend_render/ jedoch schon fertig gerendert. Zwischen diesen beiden Phasen ist es nicht möglich einzugreifen.
Allerdings würde das mit einer Kombination aus einem frontend_init- und frontend_render-Script funktionieren um die selbe Funktionalität wie die CustomBlöcke zu erreichen.
Ausgehend von dem Script in wiki:
1. frontend_init:
Um den Inhalt der Blöcke wird ein Tag gesetzt, z.B.
Code: Select all
'<!-- %FOOTER% -->'.$block['footertext'].'<!-- %/FOOTER% -->'
2. frontend_render:
Hier werden die TAGs im fertig gerenderten Content gesucht und der Inhalt ausgelesen.
Code: Select all
preg_match('/\<!-- %FOOTER% --\>(.*?)\<!-- %\/FOOTER% --\>/is',$content['all'],$match);
3. nun muss der ausgelesene Inhalt mit dem Inhaltsteil aus der Vorlage FOOTER verglichen werden um festzustellen ob überhaupt neuer Inhalt im TAG {FOOTER} existiert (Hat ein CP dort hineingeschrieben?).
Code: Select all
if (isset($match['1']) AND ((strlen($match['1'])) <= strlen($block['footertext'])) ) {
Ist diese Bedingung erfüllt, wurde nichts hineingeschrieben und der gesamte Teil kann gelöscht werden.
Code: Select all
$content['all'] = preg_replace('/\<!-- %FOOTER% --\>(.*?)\<!-- %\/FOOTER% --\>/is','<!-- nothing -->',$content['all']);
Das wäre im Groben der Ablauf so einer Konstruktion. Unter Punkt 3. sollten beim Längenvergleich noch Dinge beachtet werden wie z.b. die Eigenlänge des TAGs {FOOTER}, da dieser TAG nach dem Rendern nicht mehr vorhanden ist.
Einfache wäre es natürlich wenn Oliver diese Funktionalität entsprechend den Custom Blöcken fest einbauen würde.
Knut