Hilfe - Suche - Mitglieder - Kalender
Vollansicht: Header als letztes abarbeiten
Forum Sefrengo.org > Allgemeine Foren > Feature Request
Tiggr
Hallo!

Zur Zeit wird die Seite in inc.generate_code.php aufgebaut, indem das Layout durchlaufen wird, und jeder Container befüllt wird, wenn er gefunden wird.

Diese Logik würde ich gern geändert sehen: Der Header sollte als letztes ersetzt werden!

Hintergrund der Idee:
Ich hätte gern 2 globale Arrays, eines für CSS- und für JS-Dateien, die von Sefrengo mit den beim Layout angebenen CSS- und JS-Dateien vorbelegt werden. Ein Modul hat nun Zugriff auf diese beiden Arrays und kann selber CSS- und JS-Dateien und auch solchen Code zufügen, oder auch ersetzen. Damit ist es dann zum Beispiel einem Eingabefomularmodul möglich angepaßten JS-Code in den Header einzufügen um Formularüberprüfungen und interaktive Objekte zu erzeugen.

Ich denk da an sowas: http://www.colorful-sky.de/side123.html, das Forumlar wechselt den Drachen aus, je nach gewählter Farbe, füllt bei Eingabe der PLZ (und verlassendes Feldes) den Ort aus, überprüft die E-Mailadresse...

Momentan hab ich ein eigenes Layout dafür mit dem ganzen JS im Header, hätte ich mehrere solcher Formulare müßte ich für jedes ein Layout anlegen, und muß immer händisch den Code anpassen. Dabei hat ein Modul wie "Kontaktformular" schon fast alle Informationen um den Code selber zu erzeugen.

In Zukunft würde dann das Formular-Modul den Code aus den Angaben in der Modulkonfig (Pflichtfelder, Feldtyp, ...) erzeugen und in das JS-Array für den Header schreiben. Sefrengo würde am Ende des Seitenaufbaus dann den Header erzeugen und auch den JS-Code des Moduls in den Header schreiben.

Tschüss
Tiggr
bkm
Ich habe mir bei z.B fremden PHP-Scripten oder auch bei JQuery so beholfen.
Zwei Ansatzpunkte (Zwischenlösungen) wären dabei ohne ein neues Layout anzulegen
a ) Einen Container (z.B Sourcecode) vor dem </head> anlegen und auf der gewünschten Seite mit Inhalt (JS,CSS) füllen
b ) Du manipulierst den Output (Beispiel Ketti's Navigation2).
Tiggr
Hiho!

Lösung a) hab ich selbst schon verwendet! wink.gif Für ne Googlemap-Integration ohne das Modul dafür: http://www.colorful-sky.de/page122.html

Aber Module die JS in den Header schieben können wären prima, das können garnicht so viele CMS-Systeme, wäre sehr Web 2.0, und ich glaube, auch nicht so schwer zu bauen...

Tschüss
Tiggr
smail
Ich find Tiggr's Idee Klasse. Das wär wirklich ein Schritt in die richigie Richtung, denn:
  • er gibt schon viele "unobtrusive" js-Bibliotheken, die coole Dinge ermöglichen
  • Module, die solche Funktionen implementieren wollen, sind unabhängig, d.h. eine saubere Trennung von Modulen und Layouts
  • es erleichtert die Installation von Modulen, die solche Funktionen implementieren (Bisher musste die js Bibliothek von Hand in den Header eingbaut werden)
Einzige Frage meinerseits:
Was passiert, wenn z.B. zwei Module die gleiche Bibliothek einbinden, weil beide sie benötigen? Das wollen wir doch auch nicht...


Bisher hab ich mir auch mit der "Layoutvariante" geholfen. Bei einer Bildergalerie mit Lightbox gabs dann ein extra Layout (brauchte man in diesem Fall ohnehin smile.gif ) wurde das einfach in den Header hard-gecoded.

Ansonsten galt die Friss-oder-stirb-Taktik: Benötigt ein Modul eine bestimmte Bibliothek, kam sie einfach in Layout rein, auch wenn dieses Layout in 90% der Fälle diese Modul am Ende gar nicht enthielt und die Bibliothek daher nicht benötigte.

Gruß
Jan
bkm
ZITAT(Tiggr)
Aber Module die JS in den Header schieben können wären prima,......

@Tiggr
Hast Du Dir Variante b denn schon mal angeschaut ?
Tiggr
Hiho!

Nee, noch nicht, ich pfusch auch nicht gern am Output rum... :-(

Ein geregelter Weg mit dem sowas Sefrengo-Komform und "richtig" geht wäre besser. Muß ja nicht sofort sein, nur wäre mal ein Ziel!

Tiggr
MaZderMind
Auf dem Weg könnten Module auch eigene Metatags hinzufügen.

Gruß, Peter
Tiggr
ZITAT(MaZderMind @ Thu. 8. March 2007, 22:35) *
Auf dem Weg könnten Module auch eigene Metatags hinzufügen.


Stimmt, daran hatte ich noch garnicht gedacht! smile.gif Noch ein Pro-Argument!
smail
Wollte einfach nochmal kurz nachfragen, ob sich in dieser Hinsicht etwas tut... tongue.gif
Gibt es eigentlich irgendwo eine Liste der Dinge, die demnächst umgesetzt werden? Sprich wo geht die Entwicklung hin?

Die Roadmap ist ja nur sehr grob...
Tiggr
Hiho!

Was ich mich gerade frage ist: Könnte man das nicht als Plugin realisieren?

Ich probiere das heute Abend mal aus!

Und noch ein Edit: Ja, müßte gehen, im Plugin-Autstart ein globales Objekt instanzieren, das dann alle Module verwenden können. und vor der Ausgabe in den Header pumpen, so wie SmartyPants ja auch die Ausgabe verändert!

Tschüss
Tiggr (aka Marcus)
Tiggr
Hiho!

Ich habe das ganze inzwischen als Plugin mit kleinem Core-Hack umgesetzt, der Thread hier kann dann wahrscheinlich geschlossen werden.

Da gehts weiter: Extended Header

Achja, es ist Methode b geworden! ;-)

Tschüss
Tiggr (aka Marcus)
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2024 Invision Power Services, Inc.