Plugin jQuery v00.03.00, Case Study - Module schreiben in den Header |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
Plugin jQuery v00.03.00, Case Study - Module schreiben in den Header |
Fri. 15. February 2008, 16:42
Beitrag
#1
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 587 Mitglied seit: 01.07.2006 Mitglieds-Nr.: 62 |
Um was geht es?
Verschiedentlich ist bereits der Wunsch geäußert worden, dass Module auf den Header zugreifen können sollten. Mein Feature-Request Extended Header als Standard für SF 1.6 fasst dazu die wichtigsten Aspekte zusammen. Das von Tiggr entwickelte Plugin Extended Header war eine erste sehr vielversprechende Implementation der verschiedenen Feature-Requests. Das Problem dieser Implementation lag jedoch darin, dass dazu der Core von Sefrengo leicht angepasst werden musste. Ziel des jQuery Plugins Dieses Plugin soll demonstrieren, dass Module & Plugins auch ohne Eingriff in den Core in der Lage sind, eigene Informationen in den Header zu schreiben. Es besteht dabei die Möglichkeit, die Reihenfolge der Ausgaben im Header zu steuern. Es geht hierbei nicht vorrangig um eine Implemetation von jQuery, der Nutzen der o.g. Funktionalität lässt sich jedoch schön am Beispiel von jQuery verdeutlichen. Idee und Realisierung Damit Module Informationen in den Header schreiben können, muss es ein zentrales Objekt geben, dass diese Informationen sammelt. Kernpunkt der Implementation ist dazu die Realisation der jQuery-Klasse als Singleton-Pattern. Dadurch wird das zentrale Objekt erst genau dann erzeugt, wenn es auch wirklich gebraucht wird. Die Steuerung über Events (wie beim Plugin Extended Header) entfällt damit, was den Eingriff in den Core überflüssig macht. Fazit Mit diesem Beispiel möchte ich gerne andere Entwickler anregen, diesen Ansatz weiter zu verfolgen. Eine Weiterentwicklung dieses Plugins ist von mir derzeit nicht geplant. Neben der allgemeinen Funktionsdemonstration enthält das Plugin bereits einige Ansätze für eine vollständigere Implementation von jQuery. Diese Ideen werde ich bei Interesse gerne weiter ausführen. Über Feedback (auch von den Core-Entwicklern) würde ich mich freuen. Viele Grüße Jan QUELLTEXT Pluginname: --------------------------------------------------------------------------- jQuery Status: --------------------------------------------------------------------------- alpha - das Plugin demonstriert nur die Umsetzbarkeit eines Anwendungsfalles. Bechreibung: --------------------------------------------------------------------------- Stellt die jQuery Bibliothek zur Verfügung. Ermöglich die späte Bindung von Headern durch Module. Features: --------------------------------------------------------------------------- - jQuery Version 1.2.1 - Automatische Einbindung von jQuery in den Header - späte Bindung von Headern durch Module - Beispielmodul zur Demonstration Hinweise: --------------------------------------------------------------------------- Das Plugin wurde bisher nur unter php5 getestet. Das Plugin ist durch die aktuell verwendete Singleton-Implementation nicht php4 kompatibel. Eine Verwednung unter php4 kann zum Abstutz führen, daher sollte das Modul NICHT in Produktivsystemen getestet werden. Autor(en): --------------------------------------------------------------------------- Jan Hoffmann Lizenz: --------------------------------------------------------------------------- GPL Benötigte Sefrengo Version: --------------------------------------------------------------------------- >= 01.04.00 (Sefrengo 1.4 final) (Möglicherweise auch frühere, wurde aber 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: --------------------------------------------------------------------------- Das automatische Update wurde noch nicht implementiert. Für ein Update bitte zuerst die vorige Version komplett deinstallieren. Dokumentation: --------------------------------------------------------------------------- "Keine vorhanden" Plugin_jQuery_v00.03.00.zip ( 49.83KB ) Anzahl der Downloads: 19 -------------------- Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
|
|
|
Sun. 17. February 2008, 13:09
Beitrag
#2
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 587 Mitglied seit: 01.07.2006 Mitglieds-Nr.: 62 |
Beim Reload der Seite geht der manipulierte Header verloren, es wird also auch kein js mehr eingebunden. Vermutlich ein Caching-Problem.
Wenn man im Modul die normalen PHP-Tags durch die SF eignen ersetzt, sollte es gehen. QUELLTEXT statt: <?php ?> besser: <CMSPHP> </CMSPHP> Danke an bkm für die Rückmeldung incl. Lösungsvorschlag. -------------------- Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
|
|
|
Sat. 23. February 2008, 18:56
Beitrag
#3
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Sehr praktisch, da steig ich doch glatt komplett auf php5 um ;-) Könnte ich damit bereits jetzt auch andere Dateien (z.B. Prototype ;-) ) einbinden?
-------------------- |
|
|
Sat. 23. February 2008, 19:40
Beitrag
#4
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 587 Mitglied seit: 01.07.2006 Mitglieds-Nr.: 62 |
ZITAT Könnte ich damit bereits jetzt auch andere Dateien (z.B. Prototype ;-) ) einbinden? Klar, geht das. Langfristig wäre einen mehrere Plugins für verschiedene Bibliotheken denkbar. Die Änderung ist sogar mit relativ wenig Aufwand möglich (wenn Du in Kauf nimmst, dass die Klassen erstmal nach wie vor jQuery heißen dürfen)
Noch ein Hinweis: Einen Grund zum Umsteigen auf PHP5 sollte dieses Plugin nicht sein. Es ist nur eine Case-Study! Also Vorsicht in Produktivsystemen. Gruß Jan -------------------- Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
|
|
|
Sat. 23. February 2008, 21:42
Beitrag
#5
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Das mit dem umsteigen war auch nicht ganz ernsthaft gemeint...
Im Grunde sollte es header-plugin heißen. Damit hast du eigentlich in jedem Modul eine einfache Möglichkeit Code in den header zu schreiben (sowas geht ja bei wordpress und co auch). Das ist irgendwie logischer, als das parsen des outputs (was ich bei meinem Googlemapsmodul auch gemacht habe). Das kann viles erleichtern. Im Moment kopiere ich das Layout, füge die JS dazu und noch ein Template... So wäre es einfacher. -------------------- |
|
|
Guest_bkm_* |
Sat. 23. February 2008, 21:48
Beitrag
#6
|
Guests |
|
|
|
Sun. 24. February 2008, 14:35
Beitrag
#7
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 587 Mitglied seit: 01.07.2006 Mitglieds-Nr.: 62 |
wird wohl seinen grund haben, weil es ein extended header plugin schon gibt Richtig Ich hätte auch nichts dagegen, wenn mann beide Plugins vereint. So verschieden sind die beiden Ansätze nun auch wieder nicht. Der Grund für ein eigenes Plugin "jQuery" lag darin zu zeigen, dass man sehr elegant alle benötigten Source-Files im Plugin ablegen kann. Sonst muss man die Dateien wieder extern ablegen... einfacher ist das sicher nicht. Was man sich natürlich auch vorstellen könnte, wäre den Extended-Header so zu erweitern, dass er die wichtigsten js-Frameworks on Board mitbringt und diese dann einfach von jedem Modul aus eingebunden werden können. Jaja, man kann viel machen... -------------------- Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
|
|
|
Fri. 7. March 2008, 00:14
Beitrag
#8
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 112 Mitglied seit: 31.08.2006 Wohnort: Berlin Mitglieds-Nr.: 219 |
Hallo,
da ich gerade an einem Modul zur Schriftgrößenänderung arbeite bin ich über dieses Plugin gestolpert. Ich finde das Klasse und habe es so umgemodelt, dass es auch auf php4 läuft. Daraus ist dann das Plugin Add Headerelement geworden. Gruß, Oliver -------------------- |
|
|
Vereinfachte Darstellung | Aktuelles Datum: 26.9.24 - 23:21 |