.less Datei in Application im ACP Stylesheet

  • Hallo,

    ich möchte in einem Paket für das WBB einen Optionstyp hinzufügen (beispielsweise wie den WBBBoardMultiSelectOptionType in wbb\system\option). Für die Darstellung des Formular Elements würde ich gerne CSS in einer Less Datei angeben. Installiere ich die Dateien meines Pakets mit dem File PIP allerdings im Verzeichnis des WBB und entsprechend die Less Datei ebenfalls dort, wird die Less Datei beim Aufruf von wcf\system\style\\StyleCompiler::compileACP() nicht mit aufgenommen. Less Dateien im Style Verzeichnis des WCF werden hingegen aufgenommen.

    Das bedeutet, entwerfe ich einen OptionType in einem Paket, welches ich im WCF installiere, kann ich dort Less Dateien anlegen, deren Code im ACP verfügbar ist. Installiere ich das gleiche Paket im WBB ist der CSS Code nicht mit in den ACP Style kompiliert.

    Daraus ergeben sich für mich zwei Fragen:
    1. Übersehe ich den Weg, wie man bei einer Erweiterung für das WBB eigene Style angaben in das ACP bekommt?
    2. Falls es diesen Weg nicht gibt, wieso wurde diese Design Entscheidung getroffen oder wurde das überhaupt nicht berücksichtigt / übersehen?

    Gruß
    babu

  • Das klingt für mich zwar aktuell nach einem Designfehler, allerdings wird sich durch jammern wohl auch nichts daran ändern. Lieber ein Lösungsansatz: Kann ich einfach in meinem Paket zwei .tar Archive mit Dateien hinterlegen und bei den Instructions zwei mal das file-PIP angeben, ein mal mit dem Attribut application="wbb" und ein mal ohne (also implizit application="wcf"), sodass ich alle Dateien außer die .less Datei im WBB habe und nur die .less Datei im wcf/styles Ordner?

  • Kann ich einfach in meinem Paket zwei .tar Archive mit Dateien hinterlegen und bei den Instructions zwei mal das file-PIP angeben, ein mal mit dem Attribut application="wbb" und ein mal ohne (also implizit application="wcf"), sodass ich alle Dateien außer die .less Datei im WBB habe und nur die .less Datei im wcf/styles Ordner?

    Probiers aus?

    Aber ja, das sollte funktionieren. Dafür wurde das application-Argument ja eingeführt.

    "A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP" — Leonard Nimoy

  • Ausprobieren, ob die .less Datei dann im von mir gewünschten Ordner installiert und ins ACP Stylesheet kompiliert wird ist eine Sache. Es könnte ja aber vielleicht an anderen Stellen dadurch Probleme geben, welche man nicht auf den ersten Blick bemerkt und später nur ungern in einer aktiv genutzten WBB Installation haben möchte.

    Wenn man mittlerweile durch das application Attribut sowieso frei bestimmen kann, wo die Dateien landen, wieso werden die Dateien nicht komplett in einer Ordnerstruktur gehalten, sondern künstlich (und zum Teil dann willkürlich) auf WCF und Applications aufgeteilt? Die URL Struktur kann man ja problemlos mit Rewrite Rules etc. lösen.

  • Wenn man mittlerweile durch das application Attribut sowieso frei bestimmen kann, wo die Dateien landen, wieso werden die Dateien nicht komplett in einer Ordnerstruktur gehalten, sondern künstlich (und zum Teil dann willkürlich) auf WCF und Applications aufgeteilt? Die URL Struktur kann man ja problemlos mit Rewrite Rules etc. lösen.

    Das ist eine gute Frage ;)

    Das Routing-System wurde aber erst mit WCF 2.1 so flexibel, insofern ist die Aufteilung in verschiedene Ordner eine Altlast, die man innerhalb der 2.x Serie nicht so einfach kippen kann. Grundsätzlich hast du aber Recht, man könnte vermutlich auch alle EAs im selben Ordner halten.

    "A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP" — Leonard Nimoy

    • Offizieller Beitrag

    Wenn man mittlerweile durch das application Attribut sowieso frei bestimmen kann, wo die Dateien landen, wieso werden die Dateien nicht komplett in einer Ordnerstruktur gehalten […]

    Das ist alles historisch bedingt, mit dem application-Attribut haben wir schlicht einen Ansatz gewählt mit diese Flexibilität gewährleistet ist ohne einen massiven Umbau einschließlich einem Bruch der Abwärtskompatibilität zu riskieren. Es ist immer ein Spagat zwischen Neuerungen sowie Überarbeitung und der Wahrung der Kompatibilität.

    Rein aus heutiger Sicht, und unter der Prämisse der Möglichkeiten die PHP inzwischen bietet, könnte man problemfrei alles in ein Verzeichnis mit Unterverzeichnissen stopfen und müsste es nicht pro Anwendung aufteilen.

  • Wäre es denn denkbar, dass ein Pull Request angenommen wird, in welchem ich im StyleCompiler die compileACP Methode dahingehend anpasse, dass sie nicht nur wcf/style, sondern auch von allen Anwendungen die Style Ordner einschließt? Es geht mir im speziellen im die wbb.less Datei. Dort werden Definitionen gemacht, welche ich in einem Plugin für das WBB gerne im ACP nutzen möchte. Einzige Lösung für mich wäre nun, dass ich die entsprechenden Definitionen aus der wbb.less kopiere und in eine extra Style Datei packe, welche ich dann im wcf/style Ordner installiere.

    Oder übersehe ich einen speziellen Grund, wieso die compileACP Methode explizit nur die wcf less Dateien nutzt?

    • Offizieller Beitrag

    Oder übersehe ich einen speziellen Grund, wieso die compileACP Methode explizit nur die wcf less Dateien nutzt?

    Das liegt zum Teil relativ weit zurück, weshalb ich mich nicht mehr an alle Einzelheiten der Implementierung erinnere, insbesondere weshalb bestimmte Entscheidungen getroffen wurden. Ich schaue mir das im Rahmen von WCF 2.2 mal etwas genauer an und passe die Methode bei Bedarf an.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!