Was ist geplant?
CMSimple_XH soll die Möglichkeit bieten, in Templates bestimmte Optionen einstellbar zu machen.
Alle bisherigen Templates können
ohne jegliche Einschränkungen weiter verwendet werden.
Nur, wenn der Template-Gestalter es will, kann er solche einstellbaren Optionen in sein Template einfügen.
Wie sieht das aus?
Es gibt in der Anwendung von CMSimple_XH nur eine einzige optische Änderung im Admin-Menü:
Der Menüpunkt "Template" erhält Untermenüpunkte.
Wird als Standard-Template ein "normales" verwendet, dann sieht das Menü so aus:
cfg01.png
Wird als Standard-Template ein neues "konfigurierbares" verwendet, dann sieht das Admin_Menü so aus:
cfg02.png
Die Neuigkeit ist also, dass CMSimple_XH im Template-Ordner nachschaut, ob ein Ordner "config" und/oder ein Ordner "languages" vorhanden ist.
Falls ja, dann werden die zusätzlichen Menüpunkte verfügbar - falls nicht: siehe Bild 1.
Im Grunde funktioniert eigentlich alles ähnlich wie bei Plugins. (Hilfe zum Template ist noch nicht vorgesehen.)
Was muss der Template-Designer tun?
[ERSTER TEIL]
Da ich nur ein Laie bin, schreibe ich, wie ich es verstand. Bitte um Korrektur, falls sich hier Fehler einschleichen sollten.
Beispielhaftes Vorgehen (kann auch anders ablaufen).
1.
Erstelle ein Template inkl. CSS.
2.
Überlege dir, welche Dinge in diesem Template möglicherweise für den Anwender flexibel sein sollen.
Beispiel: Du hast im Header ein Logo vorgesehen. Ein Anwender will das Template aber nur für seine private Homepage verwenden und hat gar kein Logo.
Natürlich könnte der Anwender nun in der Template-Datei den Logo-Aufruf suchen und ihn entfernen.
Falls er aber nicht so recht weiß, wie das geht, könnte er vielleicht auch Schaden anrichten und das Template unbrauchbar machen.
Deshalb: Mach die Anzeige des Logos wählbar.
3.
Lege im Template-Ordner einen Unter-Ordner "config" an.
Darin legtst du eine Datei "config.php" an.
Bleiben wir beim Beispiel "Logo". Du möchtest das Logo bei der Auslieferung anzeigen. Der Inhalt dieser Datei muss dann in etwa lauten:
Code: Select all
<?php
$tpl_cf['header']['show_logo']="true";
Damit erscheint dann in der Template-Konfiguration ein Textfeld in dem steht "true" für anzeigen oder es ist leer "" für nicht anzeigen.
Das ist nicht besonders komfortabel. Besser wäre eine Checkbox zum An- oder Abhaken.
Also besser: Lege eine weitere Datei an "metaconfig.php".
Dort hinein schreibst du:
Code: Select all
<?php
$tpl_mcf['header']['show_logo'] = "bool";
"bool" bewirkt die Anzeige einer Checkbox. Das Ergebinis in der Template-Konfiguration:
cfg03.png
Du siehst im Bild das kleine blaue Fragezeichen, das beim Überfahren mit der Mouse einen Hilfetext anzeigen soll - und das natürlich in passender Sprache.
Das musst du jetzt noch nachholen.
4.
Lege im Template-Ordner einen weiteren Ordner "languages" an.
Beginne mit einer allgemeinen Datei, die immer verwendet werden kann, wenn keine passende Sprache vorhanden ist. Also "default.php".
Dort hinein kommt nun der Hilfetext für das Logo:
Code: Select all
<?php
$tpl_tx['help']['header_show_logo'] = "Whether to show the logo";
Danach legst du für jede gewünschte Sprache eine weitere Datei an. Zum Beispiel für Deutsch: "de.php".
Dort hinein gehört nun:
Code: Select all
<?php
$tpl_tx['help']['header_show_logo'] = "Soll das Logo im Header angezeigt werden?";
Das war nun schon die gesamte Konfigurationsmöglichkeit für die Anzeige des Logos - nur Eines fehlt noch:
Du musst natürlich jetzt die Logo-Anzeige noch im Template von der Konfiguration abhängig machen.
5.
Suche die Stelle in der template.htm, an der du das Logo anzeigst.
Beispiel:
Code: Select all
<img src="<?php echo $pth['folder']['templateimages']?>logo.png" alt="Mein Logo">
Kleide nun diesen Logo-Aufruf in eine Bedingung:
Code: Select all
<?php
if ($tpl_cf['header']['show_logo'] && file_exists($pth['folder']['templateimages'].'logo.png')):?>
<img src="<?php echo $pth['folder']['templateimages']?>logo.png" alt="Mein Logo">
<?php endif?>
Das wars. Ab sofort kann in der Template-Konfiguration gewählt werden, ob das Logo angezeigt werden soll - oder nicht.
Das ist natürlich nur ein sehr einfaches Beispiel, was aber die Möglichkeiten schon ganz gut illustriert.
Jetzt ist es der Kreativität unserer großartigen Template-Designer überlassen, sich noch viel mehr auszudenken.
Wichtig ist aber eines!
Denke genau darüber nach, was dem Anwender deines Templates nützlich sein könnte. Es hat keinen Zweck, alles Mögliche schaltbar zu machen.
Hier ist es nötig, sich in den Anwender "hinein zu versetzen", die praktischen/praktikablen Dinge durchzuspielen und erst dann zu werkeln
[Teil 1] hat sich bisher nur mit einfachen Konfigurations-Optionen beschäftigt. Du kannst also jetzt schon Dinge ein- und ausschalten. Du könntest auch zum Beispiel ein "helles" und ein "dunkles" Stylesheet bauen und dann die Verwendung im Template auf die gleiche Art und Weise, wie oben beschrieben steuern.
Tatsächlich geht aber noch viel viel mehr.
Zum Beispiel auch noch mit völlig
dynamischen Stylesheets.
Das werden wir aber erst im [Zweiten Teil] behandeln.
Zum Weiterlesen, werfen Sie nun bitte eine ausreichend groß bemessene Münze in den dafür vorgesehenen Schlitz
Das war Spaß!
Morgen werde ich weiter schreiben.