Backend-Theme und Einbindung von JS und CSS

Alles rund um Module und Plugins in CONTENIDO 4.9.
Antworten
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Backend-Theme und Einbindung von JS und CSS

Beitrag von rethus »

ich denke mal, dass die Funktion dafür etabliert wurde, um dem Backend oder einzelnen Plugins die Möglichkeit eines alternativen Erscheinungsbilde zu bieten?

Irgendwie finde ich die Struktur aber recht unübersichtlich, da ich erwarten würde, alles Ladoutspezifische im Verzeichnis /templates vorzufinden. Etwa in dieser Struktur:

Code: Alles auswählen

|_/templates
   |_/standard
       |_/css
       |_/img
       |_/js
Das bringt den Vorteil mit, dass insofern man ein Plugin mit einem eigenen Theme versehen will, dies einfach als neuen Ordner einbindet und halt lediglich in einer Config-Datei den Wert von "standard" auf "myTheme" ändert.
So kann man Themes dann auch einfacher portieren auf andere Contenido-Systeme.


Derzeit ist die Struktur für Plugins ja so angelegt, dass - insofern in /myplugin/styles und myplugin/scripts eine Datei mit der Namensnennung vom Schema:

Code: Alles auswählen

*.<pagename>.js
*.<pagename>.css
enthält, diese automatisch geladen wird. Gute Überlegung, tolles Feature.

Möchte man ABER über cGuiPage via

Code: Alles auswählen

	$page->addStyle();
ein weiteres Stylesheet hinzufügen, MUSS es in myplugin/styles liegen, oder man muss es vom "styles"-Verz. aus referenzieren (../templates/css/myStyle.css).

Ich möchte Anregen, die Struktur etwas aufzuräümen und ein Template einen eigenen Ordner, inkl. css, js, image Unterverz. zu geben. Das vereinfacht auch die Einarbeitung in die Pluginentwicklung und man Blickt schneller durch bei den Strukturen - ganz abgesehen von der Modularität, die dadurch geschaffen wird.

Benennung
Das Verzeichnis unter templates heißt standard, und wird auch von einigen Klassen so erwartet. Hier würde ich mir "default" wünschen - wie die Benennung sich eigentlich etabliert hat.

In der config.plugin.php kann man dann das Plugin durch einmalige Zuweisung fürs Gesamte Plugin einfach ändern:

Code: Alles auswählen

// Template
$plugin_name 	= "myPlugin";
$tplName 		= "myNewNiceTheme";	// define Template-Folder

// paths
$cfg['plugins']['cT']		= cRegistry::getBackendPath() . "plugins/" . $plugin_name . "/";
$cfg['plugins']['cT']['img']	= $cfg['plugins']['cT']."/templates/".$tplName."/img/";
....
...


Eine kurze Volltextsuche ergibt, dass Beispielsweise in etlichen Klassen eine harte Verdrahtung enthalten ist. Diese müsste dann gegen eine Variable ausgetauscht werden, die dann an den jeweiligen Source-Code-Stellen eingefügt werden müsste.
Dateianhänge
Screenshot_001_20140108.jpg
(149.46 KiB) Noch nie heruntergeladen
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
dominik.ziegler
Beiträge: 437
Registriert: Do 19. Jun 2008, 09:09

Re: Backend-Theme und Einbindung von JS und CSS

Beitrag von dominik.ziegler »

Ich glaube mit dem aktuellen Backend Design werden wir dort keine großen Änderungen in der Verzeichnisstruktur durchführen.
Sobald das neue Backend Design kommt ist dies aber durchaus ein Schritt, den man gleichzeitig mit diskutieren und ggf. umsetzen kann.

Bezüglich der festen Template-Dateinamen gebe ich dir Recht, die sollten "dynamisiert" werden. Ich werde dazu ein entsprechendes Ticket anlegen. Den Ordnernamen werden wir aber wohl auch bei "standard" belassen.
Viele Grüße
Dominik
Antworten