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 -------------------- |
|
|
Fri. 7. March 2008, 01:02
Beitrag
#2
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 587 Mitglied seit: 01.07.2006 Mitglieds-Nr.: 62 |
Hi,
wollte mir das grad mal ansehen, aber irgendwie scheint das Zip-Archiv nicht in Ordnung zu sein... Gruß Jan -------------------- Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
|
|
|
Fri. 7. March 2008, 01:06
Beitrag
#3
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 112 Mitglied seit: 31.08.2006 Wohnort: Berlin Mitglieds-Nr.: 219 |
Hi, wollte mir das grad mal ansehen, aber irgendwie scheint das Zip-Archiv nicht in Ordnung zu sein... Gruß Jan Edit: War noch ein Fehler beim Deinstallieren, ist behoben und der Upload ersetzt. Der Beitrag wurde von duffy bearbeitet: Fri. 7. March 2008, 01:31 -------------------- |
|
|
Fri. 7. March 2008, 10:20
Beitrag
#4
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 1.126 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 7 |
Vielen Dank.
Innerhalb eines Moduls kann so ein Element zum <head> hinzugefügt werden: $he =& SF_Headerelement::getInstance(); $he->addHeaderItem("<!-- meine Angaben hier einfuegen-->", 1); Die Zahl hinter dem eigentlichen Element gibt dabei die Sortierung an. Kannst Du hier mal ein Beispiel geben. Ich habe gerade versucht aus dem Fontsize Modul das Javascript extern auszulagern, kriege das aber nicht hin. -------------------- ------
Ich gehe spazieren durch Gelsenkirchen |
|
|
Fri. 7. March 2008, 10:22
Beitrag
#5
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 112 Mitglied seit: 31.08.2006 Wohnort: Berlin Mitglieds-Nr.: 219 |
Kannst Du hier mal ein Beispiel geben. Ich habe gerade versucht aus dem Fontsize Modul das Javascript extern auszulagern, kriege das aber nicht hin. Mir ist grad noch aufgefallen, dass natürlich noch eine Datei includiert werden muss, sorry. Korrekt wäre es so: CODE require_once($cfg_cms['cms_path']."plugins/headerelement/class.headerelement.php"); $he =& SF_Headerelement::getInstance(); $he->addHeaderItem("<!-- meine Angaben hier einfuegen-->", 1); -------------------- |
|
|
Fri. 7. March 2008, 10:49
Beitrag
#6
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 587 Mitglied seit: 01.07.2006 Mitglieds-Nr.: 62 |
Jetzt funktioniert die Zip-Datei
Eine Anmerkung noch zur install_meta QUELLTEXT INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'jquery', 'core', NULL, 'version', NULL, '01.00.00', 0, NULL, NULL, 'txt', NULL, NULL, 0); Diese Konfiguration war eigentlich für eine Weiterentwicklung des jQuery-Plugins gedacht, bei dem sich weitere Plugins "anmelden" können sollten, wie beispielsweise QUELLTEXT INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'jquery', 'plugin', 'thickbox', 'version', NULL, '01.00.00', 0, NULL, NULL, 'txt', NULL, NULL, 0); Für Dein Plugin machen die Werte für "Core" also eher wenig Sinn. Sinnvoller für normale, einzelne Plugins wäre z.B. QUELLTEXT INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'headerelement', 'version', NULL, NULL, NULL, '01.00.00', 0, NULL, NULL, 'txt', NULL, NULL, 0); Ansonsten schöner Business-Case für die Verwendung des Codes aus der Case Study. Gruß Jan Gruß Jan -------------------- Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
|
|
|
Sat. 8. March 2008, 11:25
Beitrag
#7
|
|
TRAIL AND ERROR SPECIALIST Gruppe: AdvancedMembers Beiträge: 1.708 Mitglied seit: 27.06.2006 Wohnort: Hansestadt Rostock, Deutschland Mitglieds-Nr.: 9 |
QUELLTEXT Ansonsten schöner Business-Case für die Verwendung des Codes aus der Case Study. :) ich hoffe ja das deutsch nicht nur 'ne fallstudie für dich ist, Jan! -------------------- cheers, Alex
|
|
|
Sun. 9. March 2008, 18:23
Beitrag
#8
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 112 Mitglied seit: 31.08.2006 Wohnort: Berlin Mitglieds-Nr.: 219 |
[...] Eine Anmerkung noch zur install_meta [...] Ah, danke für den Tipp, hier fehlt mir einfach das nötige Wissen. Die meta Daten sind überarbeitet. Gruß, Oliver -------------------- |
|
|
Mon. 10. March 2008, 21:40
Beitrag
#9
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Wird eigentlich überprüft, ob z.B. eine JS schon von einem Modul in den Header geschrieben wurde (also wenn mehrere Module die Funktionalität nutzen)?
-------------------- |
|
|
Mon. 10. March 2008, 22:54
Beitrag
#10
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 112 Mitglied seit: 31.08.2006 Wohnort: Berlin Mitglieds-Nr.: 219 |
Wird eigentlich überprüft, ob z.B. eine JS schon von einem Modul in den Header geschrieben wurde (also wenn mehrere Module die Funktionalität nutzen)? Nein wird nicht. Wäre vielleicht eine Überlegung wert, allerdings ist das Plugin ja nicht auf js Dateien beschränkt und man kann rein packen, was man will. Die einzige Überprüfung die stattfindet ist, ob der sortIndex schon drin steht. -------------------- |
|
|
Wed. 12. March 2008, 10:57
Beitrag
#11
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Kann man eigentlich abfragen, ob ein bestimmtes plugin installiert ist?
-------------------- |
|
|
Wed. 12. March 2008, 12:23
Beitrag
#12
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 112 Mitglied seit: 31.08.2006 Wohnort: Berlin Mitglieds-Nr.: 219 |
Kann man eigentlich abfragen, ob ein bestimmtes plugin installiert ist? Ich habe gerade ein Modul geschrieben, was pro Template ein Stylesheet einbindet, basierend auf diesem Plugin. Dabei überprüfe ich einfach ob die zu includierende Datei existiert, mit file_exists(). Eine andere Variante ist mir nicht bekannt. -------------------- |
|
|
Wed. 12. March 2008, 18:38
Beitrag
#13
|
|
Member Gruppe: Members Beiträge: 10 Mitglied seit: 01.07.2006 Mitglieds-Nr.: 39 |
Vielen Dank. Kannst Du hier mal ein Beispiel geben. Ich habe gerade versucht aus dem Fontsize Modul das Javascript extern auszulagern, kriege das aber nicht hin. Ich hätte auch gerne ein Beispiel Ich verstehe es auch noch nicht so ganz, wie kann ich z.B. externe Stylesheets darüber einbinden? Beispiel normalerweise steht <link rel="stylesheet" href="normal.css" type="text/css" media="screen" /> hardcodiert im Quelltext, wenn ich aber nun für einen Bereich spezielle Sylesheets benötige z.B für Formulare oder Bildgalerien benötige, wie binde ich die dann die <link rel="stylesheet" href="formular.css" type="text/css" media="screen" /> ein? Genauso bei Java-Script, die ja oft auch nur für bestimmte Bereiche benötigt werden... Gruß Honigbiene |
|
|
Wed. 12. March 2008, 21:00
Beitrag
#14
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 112 Mitglied seit: 31.08.2006 Wohnort: Berlin Mitglieds-Nr.: 219 |
Ich hätte auch gerne ein Beispiel Nun denn: Ich habe mal meinen bisherigen Stand, ein Stylesheet in ein Template einzubinden in ein Modul gepackt: TemplateCSS Ist aber erst mal nur ne beta, da ich noch nicht fertig damit bin (es wird noch nicht ausgiebig auf Fehler kontrolliert) In diesem Modul binde ich auf diesem Wege ein Stylesheet ein: CODE if(file_exists($cfg_cms['cms_path']."plugins/headerelement/class.headerelement.php")){
// include all files require_once($cfg_cms['cms_path']."plugins/headerelement/class.headerelement.php"); // create required objects $he =& SF_Headerelement::getInstance(); $he->addHeaderItem("<link rel=\"stylesheet\" href=\"<pfad_zum_stylesheet>\" type=\"text/css\" />", <beliebiger_sortindex>); } -------------------- |
|
|
Thu. 13. March 2008, 19:34
Beitrag
#15
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 587 Mitglied seit: 01.07.2006 Mitglieds-Nr.: 62 |
Kann man eigentlich abfragen, ob ein bestimmtes plugin installiert ist? Grundsätzlich wäre das schon möglich, allerdings hängt das letztlich davon ab, wie sauber sich das Plugin in SF anmeldet. Du könntest z.B. in der DB nach einem entsprechenden Versionseintrag suchen. Wie gesagt, das setzt aber vorraus, dass das Plugin diesen beim Installieren setzt: Hier mal beispielhaft ein DB-Eintrag für AddHeader Element (s.o.) (wobei ich keine Ahnung habe, ob duffy den so setzt) QUELLTEXT INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'headerelement', 'version', NULL, NULL, NULL, '01.00.00', 0, NULL, NULL, 'txt', NULL, NULL, 0); wobei die Struktur der Tabelle cms-Values folgendermaßen aussieht: QUELLTEXT idvalues: '' (auto increment) idclient: 0 (Plugin wird für alle Projekte in SF installiert) idlang: 0 group_name: pluginname key1: version key2: NULL key3: NULL key4: NULL value: '01.00.00' usw... Welche Einträge jedoch wo gemacht werden, und welche Werte für die keys als Standard gelten, das ist nicht so recht festgeschrieben und eher eine lose Konvention, wenn überhaupt. Würden alle Plugins diese (oder eine andere) Konvention einhalten, könnte man so auch auf installierte Plugins abfragen. Gruß Jan -------------------- Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
|
|
|
Thu. 13. March 2008, 20:37
Beitrag
#16
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 112 Mitglied seit: 31.08.2006 Wohnort: Berlin Mitglieds-Nr.: 219 |
(wobei ich keine Ahnung habe, ob duffy den so setzt) Tut er :-) -------------------- |
|
|
Thu. 13. March 2008, 21:28
Beitrag
#17
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 587 Mitglied seit: 01.07.2006 Mitglieds-Nr.: 62 |
cool
-------------------- Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
|
|
|
Thu. 13. March 2008, 23:09
Beitrag
#18
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 112 Mitglied seit: 31.08.2006 Wohnort: Berlin Mitglieds-Nr.: 219 |
Wird eigentlich überprüft, ob z.B. eine JS schon von einem Modul in den Header geschrieben wurde (also wenn mehrere Module die Funktionalität nutzen)? Jetzt schon: Neue Version 1.1.0 Gruß, Oliver -------------------- |
|
|
Sat. 29. March 2008, 12:34
Beitrag
#19
|
|
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
#20
|
|
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.
|
|
|
Vereinfachte Darstellung | Aktuelles Datum: 4.11.24 - 15:32 |