Hier eine neue Version meines Plugins, das es Modulen ermöglicht den Seitenheader zu beeinflussen, oder genauer gesagt eigenen einträge zuzufügen. Damit können dynamische Webformuler erstellt werden, die JS brauchen, Module können eigene CSS-Dateien laden, oder Meta-Tags können gesetzt werden.
Und ich mußte dazu nicht einmal sehr den Core von Sefrengo verbiegen. Nur in der index.php des Projekts muß ich zwei Events abfeuern. Wäre toll, wenn die Events in die Standardversion von Sefrengo einfließen könnten.
Hier ist noch mal ein Link zum FR, den ich damit umsetze: Header als letztes abarbeiten, Module fügen JS und CSS hinzu (Web2.0-Fähigkeit)
QUELLTEXT
Changelog legend:
# -> Bug Fix
+ -> Addition
^ -> Change
- -> Removed
! -> Note
00.02.01 - released 17.08.2007
------------------------------------------------------------------------------------------------
# bug with file path containing backend/projekt-dir twice
00.02.00 - released 17.08.2007
------------------------------------------------------------------------------------------------
# missing space in script tag
+ only unique header additions
+ check for existence of files
00.01.00 - released 16.08.2007
------------------------------------------------------------------------------------------------
! first release
# -> Bug Fix
+ -> Addition
^ -> Change
- -> Removed
! -> Note
00.02.01 - released 17.08.2007
------------------------------------------------------------------------------------------------
# bug with file path containing backend/projekt-dir twice
00.02.00 - released 17.08.2007
------------------------------------------------------------------------------------------------
# missing space in script tag
+ only unique header additions
+ check for existence of files
00.01.00 - released 16.08.2007
------------------------------------------------------------------------------------------------
! first release
CODE
Pluginname:
---------------------------------------------------------------------------
exteneded header
Status:
---------------------------------------------------------------------------
alpha
Bechreibung:
---------------------------------------------------------------------------
Das Plugin stellt ein globales Objekt zur Verfügung, über das Module eigene
Angaben in den HTML-Header einfügen können, zum Beispiel Scripte oder CSS
laden.
Funktioniert zur Zeit nur mit einer angepaßten Version der index.php im
Projektverzeichnis
Features:
---------------------------------------------------------------------------
- Fügt Headerangaben aus Modulen herraus zu.
- Vor dem Eintragen wird bei Scripten und CSS geprüft ob die Dateien
existieren.
- Jeder Eintrag wird nur einmal vorgenommen, auch wenn er mehrmals zugefügt
wird.
Autor(en):
---------------------------------------------------------------------------
Marcus J. Ertl (tiggr)
Lizenz:
---------------------------------------------------------------------------
GPL2
Benötigte Sefrengo Version:
---------------------------------------------------------------------------
>= 01.04.00
Installation:
---------------------------------------------------------------------------
Wechseln Sie in Ihrer Sefrengo Version in den Bereich "Administration -> Plugins".
Klicken Sie oben rechts auf "Plugin importieren". Am unteren Ende des Bereichs
befindet sich ein Uploadfeld. Wählen Sie hier die gewünschte "*.cmsplug"- Datei
aus. Mit einem Klick auf das Diskettensymbol wird das Plugin in das CMS importiert.
Das Plugin ist nun innerhalb des CMS nutzbar. Installieren Sie das Plugin mit einem
klick auf das Plugin-Importieren-Symbol in der Pluginzeile.
Kopieren sie die Datei hack/index.php über die entsprechende Datei im
Projektverzeichnis. Änderungeng gegenüber der Orginalversion sind mit
'// extended_header' gekennzeichnet. Im wesentlichen werden zwei Events
abgefeuert.
Update/ Migration:
---------------------------------------------------------------------------
Ein Update können Sie einfach über den Sefrengo- Pluginmanager einspielen. Das
Plugin führt dann automatisch das Update durch.
Dokumentation:
---------------------------------------------------------------------------
Das Objekt $cms_header ist nahezu selbsterklärend und trivial. Die Parameter
der Methoden können im Quelltext der Datei inc/class.extended_header.php
gefunden werden.
Für mehr Infos kann das Beispielmodul angesehen werden.
---------------------------------------------------------------------------
exteneded header
Status:
---------------------------------------------------------------------------
alpha
Bechreibung:
---------------------------------------------------------------------------
Das Plugin stellt ein globales Objekt zur Verfügung, über das Module eigene
Angaben in den HTML-Header einfügen können, zum Beispiel Scripte oder CSS
laden.
Funktioniert zur Zeit nur mit einer angepaßten Version der index.php im
Projektverzeichnis
Features:
---------------------------------------------------------------------------
- Fügt Headerangaben aus Modulen herraus zu.
- Vor dem Eintragen wird bei Scripten und CSS geprüft ob die Dateien
existieren.
- Jeder Eintrag wird nur einmal vorgenommen, auch wenn er mehrmals zugefügt
wird.
Autor(en):
---------------------------------------------------------------------------
Marcus J. Ertl (tiggr)
Lizenz:
---------------------------------------------------------------------------
GPL2
Benötigte Sefrengo Version:
---------------------------------------------------------------------------
>= 01.04.00
Installation:
---------------------------------------------------------------------------
Wechseln Sie in Ihrer Sefrengo Version in den Bereich "Administration -> Plugins".
Klicken Sie oben rechts auf "Plugin importieren". Am unteren Ende des Bereichs
befindet sich ein Uploadfeld. Wählen Sie hier die gewünschte "*.cmsplug"- Datei
aus. Mit einem Klick auf das Diskettensymbol wird das Plugin in das CMS importiert.
Das Plugin ist nun innerhalb des CMS nutzbar. Installieren Sie das Plugin mit einem
klick auf das Plugin-Importieren-Symbol in der Pluginzeile.
Kopieren sie die Datei hack/index.php über die entsprechende Datei im
Projektverzeichnis. Änderungeng gegenüber der Orginalversion sind mit
'// extended_header' gekennzeichnet. Im wesentlichen werden zwei Events
abgefeuert.
Update/ Migration:
---------------------------------------------------------------------------
Ein Update können Sie einfach über den Sefrengo- Pluginmanager einspielen. Das
Plugin führt dann automatisch das Update durch.
Dokumentation:
---------------------------------------------------------------------------
Das Objekt $cms_header ist nahezu selbsterklärend und trivial. Die Parameter
der Methoden können im Quelltext der Datei inc/class.extended_header.php
gefunden werden.
Für mehr Infos kann das Beispielmodul angesehen werden.
Im Beispielmodul sieht das dann wie folgt aus:
CODE
<CMSPHP>
// Plaintext, wird so übernommen, wie hier angegeben...
$cms_header->addPlain('<!-- Plain-Text, der im Header eingefügt wird, hier als Kommentar -->');
// fiktives css, erscheint nicht, da File nicht existiert
$cms_header->addStyle('/path/to/my/style.css');
// fiktives js, erscheint nicht, da File nicht existiert
$cms_header->addScript('/path/to/my/script.js');
// css, das es wirklich gibt, wird deswegen auch im Header eingebaut
$cms_header->addStyle('/tpl/standard/css/tabs.css');
// nochmal das selbe, wird trotzdem nur einmal eingebaut!
$cms_header->addStyle('/backup/tpl/standard/css/tabs.css');
// prüfen der Existens von Dateien deaktivieren
$cms_header->setFilecheck('');
// das fiktive CSS erscheint deswegen
$cms_header->addStyle('/path/to/my/unchecked/style.css');
// wir wollen wieder prüfen ob die Datei im Frontend oder
// Backend existiert
$cms_header->setFilecheck('frontend,backend');
// urls gehen ungeprüft durch
$cms_header->addStyle('http://www.somewhere.demo/path/to/my/remote/style.css');
// und ein Script, das direkt angegeben wird!
$cms_header->addScript('alert("Test !!!")', 'src');
</CMSPHP>
// Plaintext, wird so übernommen, wie hier angegeben...
$cms_header->addPlain('<!-- Plain-Text, der im Header eingefügt wird, hier als Kommentar -->');
// fiktives css, erscheint nicht, da File nicht existiert
$cms_header->addStyle('/path/to/my/style.css');
// fiktives js, erscheint nicht, da File nicht existiert
$cms_header->addScript('/path/to/my/script.js');
// css, das es wirklich gibt, wird deswegen auch im Header eingebaut
$cms_header->addStyle('/tpl/standard/css/tabs.css');
// nochmal das selbe, wird trotzdem nur einmal eingebaut!
$cms_header->addStyle('/backup/tpl/standard/css/tabs.css');
// prüfen der Existens von Dateien deaktivieren
$cms_header->setFilecheck('');
// das fiktive CSS erscheint deswegen
$cms_header->addStyle('/path/to/my/unchecked/style.css');
// wir wollen wieder prüfen ob die Datei im Frontend oder
// Backend existiert
$cms_header->setFilecheck('frontend,backend');
// urls gehen ungeprüft durch
$cms_header->addStyle('http://www.somewhere.demo/path/to/my/remote/style.css');
// und ein Script, das direkt angegeben wird!
$cms_header->addScript('alert("Test !!!")', 'src');
</CMSPHP>
Was dann zu folgenden Headerzeilen führt:
CODE
<link rel="stylesheet" type="text/css" href="/backup/tpl/standard/css/tabs.css" />
<link rel="stylesheet" type="text/css" href="/path/to/my/unchecked/style.css" />
<link rel="stylesheet" type="text/css" href="http://www.somewhere.demo/path/to/my/remote/style.css" />
<script type="text/javascript">
alert("Test !!!")
</script>
<!-- using extended_header-plugin v00.02.00 -->
<!-- Plain-Text, der im Header eingefügt wird, hier als Kommentar -->
<link rel="stylesheet" type="text/css" href="/path/to/my/unchecked/style.css" />
<link rel="stylesheet" type="text/css" href="http://www.somewhere.demo/path/to/my/remote/style.css" />
<script type="text/javascript">
alert("Test !!!")
</script>
<!-- using extended_header-plugin v00.02.00 -->
<!-- Plain-Text, der im Header eingefügt wird, hier als Kommentar -->
Ein Dankeschön an 'bkm', dessen Idee es war, zu prüfen, ob die Dateien wirklich existieren!
Und wie üblich der Code im SVN: http://code.google.com/p/extendedheader/
Tschüss
Tiggr (aka Marcus)