Add Headerelement v01.00.00, Fügt dem <head> einzelne Elemente an |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
Add Headerelement v01.00.00, Fügt dem <head> einzelne Elemente an |
Fri. 7. March 2008, 00:11
Beitrag
#1
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 112 Mitglied seit: 31.08.2006 Wohnort: Berlin Mitglieds-Nr.: 219 |
Basierend auf der case Study jQuery hier ein Plugin mit der dort entwickelten Funktionalität. Dieses läuft sowohl auf php4 als auch auf php5.
Plugin-Name: --------------------------------------------------------------------------- Add Headerelement Version: --------------------------------------------------------------------------- 01.01.00 Status: --------------------------------------------------------------------------- stable (getested mit php4 undf php5) Bechreibung: --------------------------------------------------------------------------- Das Plugin bietet die Möglichkeit dem <head> Elemente wie javascript Dateien, css Dateien oder - Definitionen hinzuzufuegen (anzuhaengen). Features: --------------------------------------------------------------------------- - bietet Modulen die Moeglichkeit an den vorhandenen <head> Elemente anzuhängen Autor(en): --------------------------------------------------------------------------- dduffy Lizenz: --------------------------------------------------------------------------- GPL Benötigte Sefrengo Version: --------------------------------------------------------------------------- >= 01.04.00 (frühere Versionen nicht getestet) Installation: --------------------------------------------------------------------------- Wechseln Sie in Ihrer Sefrengo Version in den Bereich "Administration-> Plugins". Wechseln Sie dort in den Bereich "Plugin importieren"). Am unteren Ende des Bereichs befindet sich ein Uploadfeld. Wählen Sie hier die gewünschte "*.cmsplugin"- Datei aus. Mit einem Klick auf das Diskettensymbol wird das Plugin in das CMS importiert. Das Plugin ist nun innerhalb des CMS nutzbar. Update/ Migration: --------------------------------------------------------------------------- Kein Update vorhanden, da initiale Version Dokumentation: --------------------------------------------------------------------------- Innerhalb eines Moduls kann so ein Element zum <head> hinzugefügt werden: require_once($cfg_cms['cms_path']."plugins/headerelement/class.headerelement.php"); $he =& SF_Headerelement::getInstance(); $he->addHeaderItem("<!-- meine Angaben hier einfuegen-->", 1); Die Zahl hinter dem eigentlichen Element gibt dabei die Sortierung an. CODE Changelog legend: # -> Bug Fix + -> Addition ^ -> Change - -> Removed ! -> Note Current versionnumber is 01.01.00 - released 13.03.2008 ------------------------------------------------------------------------------------------------ + Not doubled Entries possible Current versionnumber is 01.00.02 - released 09.03.2008 ------------------------------------------------------------------------------------------------ + Update Meta ^ Install Meta Current versionnumber is 01.00.01 - released 07.03.2008 ------------------------------------------------------------------------------------------------ # Fixed installation / Deinstallation Current versionnumber is 01.00.00 - released 06.03.2008 ------------------------------------------------------------------------------------------------ ! initial version Add_Headerelement_v01_01_00.zip ( 4.77KB ) Anzahl der Downloads: 24 Der Beitrag wurde von duffy bearbeitet: Thu. 13. March 2008, 23:08 -------------------- |
|
|
Sat. 29. March 2008, 12:34
Beitrag
#2
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Einen Wunsch habe ich noch ;-)
Der Redakteur sollte auswählern können, ob er die Dateien wirklich einbindet. Das Modul müßte also die Möglichkeit haben, die angebotenen Dateien per checkbox auszuwählen.(dazu müßte der Wert natürlich irgendwo gespeichert werden). Sinn der Sache ist es, nicht mehrere Dateien (jquery oder prototype) mehrfach einzubinden, wenn sie bpws. schon im Layout stehen. -------------------- |
|
|
Sat. 29. March 2008, 18:29
Beitrag
#3
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 587 Mitglied seit: 01.07.2006 Mitglieds-Nr.: 62 |
Einen Wunsch habe ich noch ;-) Der Redakteur sollte auswählern können, ob er die Dateien wirklich einbindet. Das Modul müßte also die Möglichkeit haben, die angebotenen Dateien per checkbox auszuwählen.(dazu müßte der Wert natürlich irgendwo gespeichert werden). Sinn der Sache ist es, nicht mehrere Dateien (jquery oder prototype) mehrfach einzubinden, wenn sie bpws. schon im Layout stehen. Nun ja, ich weiß nicht, ob das die Aufgabe des Plugins ist, denn: Dieses Plugin stellt ja grundsätzlich nur die Möglichkeit zur Verfügung, dynamisch Dateien in den Header einzufügen. Jetzt gibt es zwei Stellen, an denen - theoretisch - Dateien hinzukommen können:
Grundsätzlich gebe ich Dir aber Recht, dass dies eine interessante Frage ist. Die Lösung dafür ist aber bei weitem nicht so trivial, wie man das vielleicht zunächst denkt. Ich habe mir dazu nämlich schon mal im Rahmen des Beispiels "jQuery-Plugin" dazu Gedanken gemacht, aber keine einfache Lösung gefunden. Viele Grüße Jan -------------------- Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
|
|
|
Mon. 31. March 2008, 10:09
Beitrag
#4
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 112 Mitglied seit: 31.08.2006 Wohnort: Berlin Mitglieds-Nr.: 219 |
Jetzt gibt es zwei Stellen, an denen - theoretisch - Dateien hinzukommen können: Ich würde hier noch eine dritte Variante hinzufügen, die in meinen Augen den eigentlichen Anwendungsfall des Plugins abdeckt: Ein beliebiges Modul. In meinen Augen ist das Plugin dafür gedacht, Modulen die Möglichkeit zu geben, Dateien einzubinden. Daher sehe ich auch noch nicht ganz den Sinn im Plugin Einstellungen betreffend irgendwelcher Dateien zu ermöglichen. Aber vielleicht hab ich auch den Sinn der Anfrage noch nicht verstanden!? In meinen Augen macht es selten Sinn Dateien über ein Plugin einzubinden, da sie dann auf jeder Seite verfügbar sind, was ich vielleicht gar nicht will und die bessere Variante wäre dies im Layout oder Template festzulegen, oder? -------------------- |
|
|
Mon. 31. March 2008, 11:21
Beitrag
#5
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 587 Mitglied seit: 01.07.2006 Mitglieds-Nr.: 62 |
ZITAT Ich würde hier noch eine dritte Variante hinzufügen, die in meinen Augen den eigentlichen Anwendungsfall des Plugins abdeckt: Ein beliebiges Modul. In meinen Augen ist das Plugin dafür gedacht, Modulen die Möglichkeit zu geben, Dateien einzubinden. Da gebe ich Dir völlig recht, nur: Die Dateien, die Du einbinden möchtest, müssen ja irgendwo abgelegt werden. Und diesen Pfad musst Du bei der Einbindung im Modul kennen. Daher bietet sich die Realisierung als Plugin fast an:
ZITAT In meinen Augen macht es selten Sinn Dateien über ein Plugin einzubinden, da sie dann auf jeder Seite verfügbar sind, was ich vielleicht gar nicht will und die bessere Variante wäre dies im Layout oder Template festzulegen, oder? Plugins können über die Autostart-Funktionen immer auf den Header zugreifen und beliebigen Code einbinden. Dann aber wird er auf wirklich allen Seiten (oder präziser in allen Templates) eingebunden. Das ist in der Tat sinnlos. Über die hier vorgestellte Erweiterung kann ein Modul die Einbindung anstoßen, d.h. der Code wird auch nur in den Templates eingebunden, in denen auch das beteffende Modul steckt. Bei allen anderen nicht! Das Problem ergibt sich aus folgender Situation: Angenommen Du hast zwei verschiedene Module in einem Template, die beide auf jQuery basieren und daher jeweils jQuery einbinden möchten. Dann würde jQuery tatsächlich zweimal eingebunden. Die Frage war, wie man dies verhindern kann. Ich hoffe, ich konnte etwas Klarheit ins Dunkel bringen. Viele Grüße Jan -------------------- Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
|
|
|
Mon. 31. March 2008, 14:36
Beitrag
#6
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 112 Mitglied seit: 31.08.2006 Wohnort: Berlin Mitglieds-Nr.: 219 |
Das Problem ergibt sich aus folgender Situation: Angenommen Du hast zwei verschiedene Module in einem Template, die beide auf jQuery basieren und daher jeweils jQuery einbinden möchten. Dann würde jQuery tatsächlich zweimal eingebunden. Die Frage war, wie man dies verhindern kann. Ok, das Problem sehe ich ein. Allerdings ist die Lösung wohl nicht all zu simpel wenn man sie technisch lösen will. Ein String vergleich kann helfen, muss aber nicht, wenn die Dateien über verschiedene Pfade eingebunden werden, zumal das Plugin selbst ja nur Zeichenketten entgegen nimmt und keine css/js/meta Aufrufe (dies ist bisher Aufgabe des Moduls). Generell würde ich sagen, dass dies das Problem des Redakteurs ist und nicht vom Plugin gelöst werden sollte. Wenn man eine Lösung umsetzen möchte ist es wohl am sinnvollsten das Plugin mit Aufrufen der Marke addJS($dateiname), addCSS($dateiname), addMeta($dateiname) erweitern würde und dann entsprechend nur solche Dateien aufnimmt, die nicht schon eingebunden wurden. Das hilft natürlich dann nicht gegen solche Fälle wo man die selbe Datei in verschiedenen Verzeichnissen einbinden will. Ich plädiere daher an die Verantwortung des Redaktuers, da man vermutlich in weiteren Überlegungen noch auf ca 235 andere Sonderfälle kommen kann, die das Plugin auch abdecken müßtel :-) -------------------- |
|
|
Vereinfachte Darstellung | Aktuelles Datum: 20.9.24 - 03:05 |