Benutzer-Werkzeuge

Webseiten-Werkzeuge


faq:modules:variants

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
faq:modules:variants [2014/08/08 11:08]
shadowcat [index.php für Templates mit Varianten]
faq:modules:variants [2015/02/16 00:00] (aktuell)
Zeile 8: Zeile 8:
   * Ändert sich die ID der Seite, muss das Template angepaßt werden.   * Ändert sich die ID der Seite, muss das Template angepaßt werden.
   * Es funktioniert nur mit CSS- und/oder JS-Dateien, jedoch nicht mit kompletten Ausgabe-Templates.   * Es funktioniert nur mit CSS- und/oder JS-Dateien, jedoch nicht mit kompletten Ausgabe-Templates.
 +  * Ausgabe-Templates können nur direkt im ''​templates''​-Verzeichnis geändert werden. Das gilt dann aber für alle Instanzen des Moduls. Außerdem werden diese Anpassungen bei einem Update des Moduls überschrieben.
  
 BlackCat CMS verfügt daher über die Möglichkeit,​ **Varianten** zur Verfügung zu stellen. Das gilt für Module ebenso wie für Templates. Das Grundprinzip hierbei ist folgendes: BlackCat CMS verfügt daher über die Möglichkeit,​ **Varianten** zur Verfügung zu stellen. Das gilt für Module ebenso wie für Templates. Das Grundprinzip hierbei ist folgendes:
Zeile 14: Zeile 15:
   * Auf Basis dieser Standarddarstellung können weitere Varianten abgeleitet werden. ​   * Auf Basis dieser Standarddarstellung können weitere Varianten abgeleitet werden. ​
   * Varianten können auch eine komplett andere Darstellung beinhalten.   * Varianten können auch eine komplett andere Darstellung beinhalten.
 +  * Bei einem Update wird nur das Standard-Verzeichnis überschrieben,​ nicht jedoch die selbst erstellten Varianten.
  
 ===== Templates mit Varianten ===== ===== Templates mit Varianten =====
Zeile 90: Zeile 92:
  
 Anmerkung: Natürlich könnte auch einfach eine Liste der Unterverzeichnisse unterhalb von ''​templates''​ angeboten werden, das könnte aber zu '​false-positives'​ führen, wenn man z.B. eine Sicherungskopie eines Templates erstellt hat, die eigentlich nicht für die Nutzung bestimmt ist. Daher werden nur die Varianten angeboten, die als solche konfiguriert sind. Anmerkung: Natürlich könnte auch einfach eine Liste der Unterverzeichnisse unterhalb von ''​templates''​ angeboten werden, das könnte aber zu '​false-positives'​ führen, wenn man z.B. eine Sicherungskopie eines Templates erstellt hat, die eigentlich nicht für die Nutzung bestimmt ist. Daher werden nur die Varianten angeboten, die als solche konfiguriert sind.
 +
 +===== Angepaßtes CSS laden =====
 +
 +BlackCat CMS verfügt über eine einfache Namenskonvention,​ die das automatische Laden der '​richtigen'​ CSS-Datei ermöglicht. Der einfachste Weg ist, die zur Variante gehörende CSS-Datei im Verzeichnis ''​./​templates/<​Templatename>/​css/<​Variante>''​ abzulegen und ''​template.css''​ zu nennen.
 +
 +Sollte eine komplexere Logik notwendig sein, kann dies über die Datei ''​headers.inc.php''​ implementiert werden.
 +
 +Hinweis: Wird für eine Variante kein angepaßtes CSS benötigt, muss auch nicht das entsprechende Verzeichnis angelegt werden.
 +
 +===== Module mit Varianten =====
 +
 +Oben beschriebenes Vorgehen funktioniert grundsätzlich auch für Module. Die Variable in der ''​info.php''​ heißt in diesem Fall ''​$module_variants'':​
 +
 +<sxh php>​$module_variants = array( '​default'​ );</​sxh>​
 +
 +===== Kleiner Trick für dynamische Ermittlung der Varianten =====
 +
 +Die vorhandenen Varianten in der ''​info.php''​ als Liste anzugeben, wird für die meisten Fälle ausreichend sein. Will man es dem Benutzer aber erleichtern,​ eigene Varianten anzulegen, ohne daß er hinterher die ''​info.php''​ anpassen muß (die ja zudem bei einem Update überschrieben wird), kann man statt des "​hartcodierten"​ Arrays folgenden Code benutzen:
 +
 +<sxh php>
 +$module_variants = CAT_Helper_Directory::​getInstance()
 +                   ​->​getDirectories(
 +                       ​CAT_PATH.'/​modules/'​.$module_directory.'/​templates',​
 +                       ​CAT_PATH.'/​modules/'​.$module_directory.'/​templates/'​
 +                   );
 +</​sxh>​
 +
 +<WRAP center round important 60%>
 +Achtung, der Slash am Ende des zweiten Parameters ist wichtig!
 +</​WRAP>​
 +
faq/modules/variants.1407488887.txt.gz · Zuletzt geändert: 2014/08/08 00:00 (Externe Bearbeitung)