WebsiteBaker Support (2.8.x) > Diskussion über WB (closed)
Feature Request für kommende Versionen von WB CMS
WebBird:
Um einfach mal wieder bei anderen zu "klauen"... :-D (Allerdings dann wirklich erst für die nicht mehr ganz so nahe Zukunft.)
In PmWiki können Module - dort "Recipes" genannt, Addons laufen da unter "Cookbook" - CSS, JavaScript und ähnliches Geraffel in globalen Arrays "registrieren". Diese werden dann an den entsprechenden Platzhaltern im Template eingetragen.
Ich ärgere mich z. B. andauernd, daß ich keine CSS-Links für die Ausgabe im Header registrieren kann, sondern immer das komplette CSS im Body ausgeben muß. Das ist bei umfangreicherem CSS ziemlich kontraproduktiv. :x
Die register... Funktionen des WB suchen ja nur fest verdrahtete CSS oder JS Dateien. Wenn ich aber zusätzlich zur Laufzeit welche hinzufügen möchte (etwa bei Modulen, die mit "Themes" arbeiten), kann ich nur noch den Inhalt im Body ausgeben. Zumindest bei CSS. Das ist Murks. ;) Die Funktionen sind im Ansatz gut gedacht, aber leider nicht bis zu Ende durchgedacht, wenn ich das mal so sagen darf. Ist nicht bös gemeint. :-D
thorn:
Hallo,
--- Quote from: WebBird on May 04, 2009, 02:40:19 PM ---Ich ärgere mich z. B. andauernd, daß ich keine CSS-Links für die Ausgabe im Header registrieren kann, sondern immer das komplette CSS im Body ausgeben muß. Das ist bei umfangreicherem CSS ziemlich kontraproduktiv. :x
--- End quote ---
Mit Hilfe des Frontendfilters ließe sich das leicht realisieren (er bietet entsprechende Funktionen, und läßt sich auch ohne eine eigentliche Frontend-Funktion nutzen) ... nur wäre das ziemlicher overhead die ganze Seite durch den output-buffer zu jagen, nur um ein paar Skripte oder CSS in den Header zu packen.
Ich denke, was dir vorschwebt ist eine Funktion, die bei der Installation von Modulen (install.php/upgrade.php/uninstall.php) aufgerufen wird, und an die man Dateinamen übergibt die beim Seitenaufbau in den Head-Bereich importiert werden sollen (abhängig vom Modul).
register_file()
unregister_file()
oder so.
Das wäre echt sinnvoll.
Wenn man das vernünftig aufbaut, kann man darüber auch gleich sicherstellen, daß bestimmte Skripte nicht mehrfach geladen werden (jquery, growfields, ...)
thorn.
WebBird:
Ich finde auch, daß der Frontendfilter eher was für den Notfall ist. Ich finde es ziemlich unsinnig, erst eine Seite generieren zu lassen, nur um sie dann hinterher erst von einem Filter total verbiegen zu lassen. :roll:
Ansonsten hast Du mich ganz richtig verstanden. :-D In PmWiki "registriert" man einfach einen Key in einem Array und belegt den mit den Inhalten, die man braucht. Eine entsprechende Funktion, die gleich prüft, ob etwas schon enthalten ist, wäre natürlich wesentlich sinnvoller. (Sie kann z. B. auf sinnvolle Inhalte, Existenz von Dateien, mehrfach registrierte Inhalte usw. prüfen.)
Also zum Beispiel:
(Im Modul irgendwo...)
--- Code: ---register_css( WB_URL.....'/blafasel.css' );
--- End code ---
Natürlich gäbe es da noch andere Möglichkeiten, etwa register_header_link() für alle Arten von <link href> Markups.
Wie gesagt, der Ansatz ist ja da, nur leider mit fest verdrahteten Dateien. (backend.css und frontend.css)
doc:
Hi,
stimme thorn zu. Der Outputfilter würde das ganze zwar einfach erlauben, ist aber nicht gerade die performanteste aller Lösungen.
Sinnvoll wäre auch, wenn man in den Modulen auswählen könnte, ob CSS oder JS Dateien für alle Seiten, oder nur bei bestimmten Seiten geladen werden sollen (z.B. nur für das Modul oder nur für Seiten mit bestimmter page_id). Eine sinnvolle Erweiterung wäre eine neue Funktion, welche es erlaubt, beliebigen Text/Code in den Head zu schreiben (z.B. zur Registrierung von PHP Variablen in JS wie z.B. WB_URL). Also sowas wie registerHead('xxxxx'); Das würde Template- oder Modulautoren wesentlich mehr Freiheiten geben.
Recht brauchbare Ansätze finden sich auch in anderen Open Source Projekten. Da hilft oft mal ein Blick über den Tellerrand hinaus, wie WebBird ja schon angemerkt hat.
Christian
WebBird:
--- Quote from: doc on May 04, 2009, 04:55:24 PM ---Sinnvoll wäre auch, wenn man in den Modulen auswählen könnte, ob CSS oder JS Dateien für alle Seiten, oder nur bei bestimmten Seiten geladen werden sollen.
--- End quote ---
Naja, wenn die Module ihre CSS- und sonstigen "Zubehör"-Dateien zur Laufzeit registrieren, werden sie ja automatisch nur auf den Seiten geladen, wo auch das Modul eingehängt ist. Das Registrieren sollte nicht statisch passieren, sondern wirklich zur Laufzeit. (Etwa view.php)
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version