Tiggr
Tue. 14. August 2007, 20:35
ZITAT(amk @ Tue. 14. August 2007, 19:44)
'n include in die index.php oder eben in's layout vor dem ersten container ... oder sowas?!
Beides möchte ich vermeiden! Ich möchte ein kleines Plugin schreiben, das ein globales Objekt zur Verfügung stellt. Dieses hat nur ein paar Methoden:
QUELLTEXT
addStyle(...), addScript(...), addPlain(...)
um Einträge in den HTML-Header zu machen, Beim ausgeben der Seite wird das ganze dann in den Header eingefügt. Das ganze klappt auch schon prima, bis auf einen Punkt: Ich bekomme globale Objekt im Plugin nicht erzeugt. Der Autostart wird zu spät ausgeführt, da ist der Code der Seite schon evaluiert. Ich hab versucht das in die extended_header_meta.php des Plugins einzufügen:
QUELLTEXT
function extended_header_meta($call_files = false) {
include_once('inc/class.extended_header.php');
$GLOBALS['cms_header'] = new extended_header;
$this->dir_name = dirname(__FILE__);
plugin_meta::plugin_init($call_files);
}
Aber irgendwie klappt das nicht! :-( Da gibt es dann kein globales Objekt $cms_header, wenn ich versuche es im Layout anzusprechen!
Wenn ich im Layout mache:
QUELLTEXT
<CMSPHP>
include_once('backend/plugins/extended_header/inc/class.extended_header.php');
$cms_header = new extended_header;
$cms_header->addStyle('path/to/my/style');
</CMSPHP>
Klappt das Spitze! Was ich noch nicht probiert habe ist, ob Module da ran kommen, müßte aber doch auch gehen, oder?
Wie bekomme ich sowas hin, ohne das ins Layout schreiben zu müssen? Gibt es ein Event, das vor der Codegenerierung der Seite gefeuert wird? Gefunden habe ich keines, leider!
Mir ist wichtig, das Layout einfach zu halten, und vor allem keine Sefrengo-Dateien zu hacken, das macht Updates so schwer!
Tschüss
Tiggr (aka Marcus)
PS: Ich häng mal das Plugin an!