headerimage1 headerimage2 headerimage3 headerimage4 headerimage5 headerimage6
Sie sind hier: Startseite > Templates > klr-3col-flex > Struktur und Funktion des Templates
Letzte Bearbeitung:

Struktur und Funktion des Templates

Grundsätzliches Aussehen

Es handelt sich um ein klassisches 3-Spalten-Layout mit einer Slideshow im Header. Darüber wird rechts ein Motto-Text und links das Logo der Website angezeigt. Das Layout ist responsiv und passt sich daher den unterschiedlichen Viewport-Breiten selbsttätig an. Diese Seite wird mit diesem Template angezeigt.
Bei breiten Viewports wird in der linken Spalte das Menü angezeigt, in der mittleren Spalte der Content und in der rechten Spalte Newsboxen.
Die grundlegenden Eigenschaften (Template Basis-Styles, Menü Levels, Unordered Lists) sehen Sie sich bitte  auf der Webseite des Templates an, das diesem Abkömmling zu grunde liegt: http://fhseidel.de/cmsxh/fhs-basic/ 
Oder Sie lesen hier die gesamte Beschreibung. Unter der Beschreibung der Datei stylesheet.css werden alle im Editor auswählbaren Formatierungen (fast immer mit Beispiel) beschrieben. Lediglich die letzten 5 Formate im 'Formate'-Drop-Down-Menü (fa-li.fa-lg bis fa.pull-right), die auch nicht in der stylesheet.css stehen, werden nicht beschrieben.

Seite ohne 2. oder 3. Sprache

Abb.: Website ohne zusätzliche Sprachen (keine Zweit- oder Drittsprache)

Bei schmäler werdenden Viewports wird zunächst die linke und mittlere Spaltenbreite verringert und dann die Anzeige der Newsboxen unter den Content verlagert. Schließlich wandert auch der Content nach unten unter das Menü. 

Wird die Anzeige der Website auf schmalen Viewports gestartet, erscheint das Menü lediglich als 'Hamburger' () rechts der Suchmaske. Es klappt bei Klick auf das Symbol aus.

Aufbauend auf dem zugrunde liegenden Design von Frank Seidel habe ich zusätzliche Flexibilität und Funktionalität eingebaut.

Über das Plugin Morepagedata_XH kann man mithilfe des Reiters ­Mehr im Editorfenster folgende Einstellungen für jede einzelne Seite separat vornehmen:

  1. Webseiten-Logo und Motto-Text (Logo-Text oben rechts) ausblenden.
  2. Motto-Text alleine ausblenden, wenn Option 1 deaktiviert ist.
  3. Themenfarbe (Akzentfarbe) auswählen: horizontale Linie oberhalb und unterhalb der Slideshow, <hr> und die horizontale Linie über dem Footer. Es kann zwar jeder Farbwert eingegeben werden, im Template werden jedoch die Helligkeitswerte der drei Einzelfarben auf #DD begrenzt (automatisch und stillschweigend ohne Rückmeldung, führt im Ergebnis evtl. zu veränderter Farbtemperatur). Damit wird verhindert, dass zwischen Hintergrund und Text (immer weiß) in der Navigationszeile ein zu kleiner Kontrast besteht.
  4. Hintergrundfarbe des Menüs auswählen: festgelegt werden kann die Hover-Farbe, die normale Farbe wird berechnet, indem von der Hover-Farbe der Wert #222222 abgezogen wird. Die Farbe des aktiven Menüpunktes wird berechnet, indem von der Hover-Farbe der Wert #444444 abgezogen wird. Da die Schriftfarbe konstant weiß eingestellt ist und ein minimaler Kontrast zur Hintergrundfarbe erforderlich ist, ergibt sich eine notwendige Beschränkung des Wertebereiches für die einzelnen Farben. Der kleinste wirksam werdende Wert jeder Grundfarbe der Hover-Farbe ist #44 und der größte wirksam werdende Wert ist #DD. In der Eingabemaske lassen sich zwar noch kleinere und noch größere Werte festlegen, im Template werden diese jedoch (automatisch und stillschweigend ohne Rückmeldung) korrigiert (was unter Umständen zu anderen Farben führt als ausgewählt).
    Man kann auch eine automatische Farbauswahl aktivieren indem man als Farbwert #--- oder nur --- eingibt. In diesem Fall wird die Hoverfarbe aus der Akzentfarbe berechnet. Die Helligkeitswerte der Einzelfarben der Themenfarbe werden dabei übernommen und dann, falls ervorderlich, nach unten auf mindestens #44 und nach oben auf höchstens #DD begrenzt.
  5. Die Ausgabe der Slideshow kann abgeschaltet werden.
  6. Der Ordner für die Slideshow-Bilder kann ausgewählt werden (Unterordner des /userfiles/images/).
  7. Die dritte Spalte rechts kann abgeschaltet werden, wodurch deren Inhalt nach Unten unter den Content wandert. Im Editormodus wird jedoch immer die dritte Spalte angezeigt, auch wenn sie leer ist.
  8. Hat eine Seite Unterseiten, wird ein Submenü unter dem Content angezeigt. Der Anzeigeort kann in die dritte (rechte) Spalte über den Newsboxen umgeschaltet werden.
  9. Es kann eine versteckte Seite ausgewählt werden, die nur im Editiermodus oben in der rechten Spalte angezeigt wird. Dies ist gedacht als Kopiervorlage und/oder Gedächtnisstütze für den Autor der Artikel. So können wiederkehrende Textbausteine ebenso wie HTML-Konstrukte für das Einfügen in den Content bereitgehalten werden. Der Inhalt dieser Seite/n kann wie jede andere Seite online editiert werden.
  10. Für den Inhalt der beiden News-Boxen in der rechten Spalte / unter dem Content lassen sich unabhängig versteckte Seiten auswählen, können also zum Kontext der jeweiligen Seite passend eingestellt werden. Ihre Ausgabe erfolgt nur, wenn eine Auswahl festgelegt ist. Werden keine News-Boxen definiert und ist auch kein Submenü über den Newsboxen anzuzeigen, wandelt sich das Template zu einem 2-Spalten Design mit Menü und Content-Spalte.
  11. Festlegen, ob die Fähigkeit moderner Browser aktiviert werden soll, die Silbentrennung bei Wörtern vorzunehmen.
  12. Festlegen, ob das Privacy-Formular zum Akzeptieren oder Ablehnen von Cookies angezeigt wird.
  13. Festlegen, ob das Memberpages-Anmeldeformular angezeigt wird.
  14. Bit-Maske (Folge von 0 oder 1) zur Festlegung, welche externen Scripte eingebunden werden sollen.


Optionen durch Morepagedata

Die Header-Slideshow

Für die Slideshow im Header wird das Plugin Slideshow_XH benötigt.
Die im Paket enthaltenen Bilder stammen von Karl Richard Lembach und werden CC0 weitergegeben.
Eigene Bilder müssen alle exakt die gleichen Maße haben, und zwar 1920 x 300 px (wenn nicht, werden sie auf 1920 px Breite gezoomt, was evtl. das Layout zerstört). Setzt man viele Bilder in der Slideshow ein, ist das schon eine gewaltige Datenmenge, die da übertragen werden muss. Man sollte daher einerseits schauen, inwieweit man diese Bilder komprimieren kann, um andererseits eine noch ausreichende Qualität auf großen Bildschirmen zu erreichen (z. B. IrfanView mit dem RIOT-Plugin). Außerdem ist es je nach Thema sehr schwierig Motive zu finden, die bei diesem Format noch eine Aussagekraft haben oder zumindest gut aussehen. Eine Möglichkeit ist, wie es an anderer Stelle auf dieser Website realisiert wurde, mehrere Bilder nebeneinander zu kopieren und auf die Maße 1920 x 300 px zu verkleinern. Wenn alles andere simple ist – die Motivauswahl ist nicht so einfach.

Optionale Plugins

Das Template ist für die Plugins Privacy_XH, Memberpages_XH und Crazystat_XH vorbereitet.
Die Funktion des Templates ist nicht gestört, wenn das eine oder andere dieser Plugins nicht installiert wird.

Durch Privacy_XH kann auf einzelnen Seiten das Formular zur Abfrage der Zustimmung der User zu Cookies eingeblendet werden. Dadurch können abhängig von dieser Zustimmung Scripte und Funktionen nicht nur (über den richtigen Plugin-Aufruf) im Content, sondern auch außerhalb des Contents eingebunden werden und im Content abhängig von der Zustimmung Textbereiche angezeigt oder ausgeblendet werden.

Ist Memberpages_XH installiert, kann auf einzelnen Seiten unter dem Menü das Anmeldeformular angezeigt werden.

Ist Crazystat_XH installiert, wird der Zähler unter dem Content rechts vom Link '« vorige Seite | Seitenanfang | nächste Seite »' angezeigt.

HTML-Codierung weitgehend in PHP-Codierung umgewandelt

Damit der Benutzer möglichst schnell erkennen kann welche Bereiche der Template-Datei welche Funktion haben und was bestimmte Funktionen bewirken sollen, habe ich versucht erklärende Kommentare einzufügen. Da jedoch HTML-Kommentare mit der Seite an dem Browser ausgeliefert werden, benötigen sie Datenvolumen und damit auch Ladezeit. PHP-Kommentare werden jedoch vom Web-Server nicht an den Browser ausgeliefert. Das verkleinert die Datenmenge und beschleunigt die Ladezeit (na ja, zumindest ein klein wenig).
Um die Steuerfunktionen in der template.htm besser lesbar zu machen (anfänglich realisiert als in HTML eingebetteter PHP-Code in Kurzschreibweise) habe ich die Codierung der Datei sozusagen auf den Kopf gestellt und soweit es sinnvoll war auf PHP-Code mit eingestreutem HTML-Code umgestellt. Da nicht der PHP-Code, sondern der dadurch erzeugte HTML-Code an den Browser ausgeliefert wird, habe ich zur besseren Lesbarkeit die PHP-Kurzschreibweise wieder auf die normale Schreibweise umgestellt.

Zur Steuerung des Templates habe ich folgende Variablen/Parameter eingeführt, die das Verhalten und Aussehen des Templates beeinflussen:

(fast alle einstellbar durch das Plugin Morepagedata_X)

Silbentrennung für das gesamte Web lässt sich aktivieren (sofern der Browser diese für die verwendete Sprache unterstützt), indem man in den CMS-Einstellungen unter Sprach-Datei im Feld Text3 'Silbentrennung' einträgt.

Eine zusätzliche untere Footerzeile für das gesamte Web lässt sich definieren, indem man in den CMS-Einstellungen unter Sprach-Datei im Feld Text2 den gewünschten Text / HTML-Code eingibt. Bleibt der Defaultwert von Text2 erhalten (es wird der deutsche und englische Wert überprüft) erfolgt keine Ausgabe einer dritten Footerzeile.

Für jede Seite des Web lassen sich die nachstehenden Variablen mit Parametern einzeln einstellen:

$keinLogoAnzeige
Die Anzeige des Website-Logos und des Motto-Textes (beides oberhalb der Slideshow) werden ausgeblendet.

$keinLogoTextAnzeigen
Wenn die vorgenannte Option nicht aktiviert ist, wird nur der Motto-Text ausgeblendet.

$MainColor2019
Farbe der horizontalen Linien ober- und unterhalb der Slideshow, die horizontale Linie (<hr>), die Linie unterhalb des Contents und die Linie oberhalb des Footers. Die Defaultfarbe ist ein mittleres Grau.

$MenuBGColor2021
Die Hintergrundfarbe des Menüs wechselt je nachdem ob das Feld von der Maus gehovert wird, der Menüpunkt des Feldes nicht aktiv ist oder das Feld den aktiven Menüpunkt enthält. Die zweite und dritte Farbe werden aus der ersten errechnet. Der Abstand der Farben zueinander ist #222222. Festgelegt wird die hellste Farbe (Hoverfarbe). Der Defaultwert wird in der Datei colordefinition.css festgelegt.

$NoSlideShow
Dadurch wird die Slideshow ausgeblendet.

$SliderFolder2019
Wählt einen Subfolder von /userfiles/images als Quelle der Slideshow-Bilder aus.

$TwoColumn2021
Legt fest, dass die Newsboxen und ein evtl. vorhandenes Submenü unter dem Content angezeigt wird und damit die Seite im 2-Spalten-Layout angezeigt wird.

$SubmenuRight2021
Legt fest, ob das Submenü in der dritten Spalte oben angezeigt wird, wenn 1) die Seite Unterseiten hat und 2) mindestens eine Newsbox definiert ist.

$SnipetsBox2021
Wählt eine versteckte Seite aus, die nur im Editormodus angezeigt wird und zwar in der rechten Spalte als oberstes Element der Spalte als Newsbox formatiert. Diese Box ist für den Artikelautor gedacht als elektronischer Spickzettel / Kopiervorlage für Code-Sequenzen.

$NewsBox2019A
Wählt die versteckte Seite aus, die in der ersten Newsbox angezeigt werden soll.

$NewsBox2019B
Wählt die versteckte Seite aus, die in der zweiten Newsbox angezeigt werden soll.

$GlobaleSilbentrennung
Damit wird für die gesamte einzelne Seite die Fähigkeit moderner Browser aktiviert, die Silbentrennung bei Wörtern vorzunehmen. Dazu muss allerdings im Browser das Wörterbuch der entsprechenden Sprache installiert sein. Oft ist in der Grundeinstellung nur das Wörterbuch für Englisch installiert. Im Gegensatz zu dieser seitenweiten Silbentrennung gibt es auch das Format Silbentrennung für div, p und span.

$Privacy2021
Sorgt dafür, dass das Cookie-Formular von Privacy oberhalb des Content angezeigt wird.

$MembersLogin
Sorgt dafür, dass das Anmeldeformular von Memberspages unter dem Menü angezeigt wird.

$ScriptImporter2021
Ein 16 bit breiter 'DIL-'Schalter, der festlegt, ob das externe (nicht zum CMS gehörend) Script geladen wird, das der Stelle im Schalter entspricht. Die Zählung im Schalter beginnt links bei 1.

Zusätzliche Formatdefinitionen

Die vordefinierten Formate sind um einige interessante Möglichkeiten erweitert worden. Dabei werden einige sehr spezielle Formatierungen (Styleeigenschaften) verwendet, die dazu führen würden, dass sich der zu bearbeitende Text nicht im Editorfenster darstellen läßt oder zumindest den normalen Textfluß verläßt (z. B. 'display: none' oder 'visibility: hidden' oder 'position: absolut').
Durch die Definition von unterschiedlichen Formaten für den Front-End- und Back-End-Bereich (User-Ansicht und Editormodus) können diese speziellen Formate durch 'umschreibende' Darstellung im Editor angezeigt und bearbeitet werden. 

Hinweise zur Verwendung dieser Spezialformate finden Sie unter der Beschreibung der Formate in der stylesheet.css und noeditmode.css.

Fremdsprachen-Tauglichkeit

Das Template gibt ein paar Texte aus, die in keinem Text-Array des CMS enthalten sind. Daher sorgt das Template selbst für die automatische Erzeugung einer Sprachdatei für eine neue Sprache. Dazu wird die englische Sprachdatei kopiert. Der Anwender kann dann den Inhalt der neuen Sprachdatei editieren (Dateinamen: 2-stelliges Länderkürzel + '.php' im Ordner /templates/krl-3col-flex/languages/).

Fremdcode includieren ohne Änderung der Template-Datei

Im Template sind Vorkehrungen getroffen zusätzlichen Code zu integrieren ohne das dazu die template.htm geändert werden müßte (was fehleranfällig ist). Es sind drei Möglichkeiten vorbereitet. Die ersten beiden hängen mit dem Plugin Privacy_XH zusammen.

Wird im Formular von Privacy dem Setzen von Cookies zugestimmt wird die Datei cookie-perm-tools.php im Bereich <head> ... </head> unmittelbar nach den Favicons-Declarationen und die Datei cookie-permission.php unter dem Footer unmittelbar vor dem Script-Bereich eingebunden.
Die Datei scriptimporter.php wird unmittelbar vor dem </head>-Tag eingebunden, wenn im Reiter Mehr im Editorfenster eine Bit-Maske zum Scriptimport definiert wurde.

Wie in diese Dateien der Code eingebaut wird und wie die scriptimporter.php gesteuert wird, ist auf den betreffenden Folgeseiten erläutert.

Style-Modifikationen ohne Bearbeitung der stylesheet.css

Ebenso wie es riskant ist die template.htm zu ändern ist es auch riskant die stylesheet.css zu ändern. Beide Dateien sind relativ umfangreich und komplex. Wenn sich dort ein Fehler einschleicht kann das ganze Temlate crashen. Sicherer ist es für Änderungen am Style separate Dateien zu verwenden. Außerdem ist dadurch das Updaten des Templates erheblich unproblematischer.

Um zusätzliche benutzerdefinierte Formate in das Template einzubinden wird die Datei user.css verwendet. Da diese Datei noch vor der eigentlichen stylesheet.css eingelsen wird ist sicher gestellt, dass keine Formatfestlegung in dieser Datei eine im Template schon festgelegte Formatierung überschrieben wird. Es kann somit davon ausgegangen werden, dass die Formate in der user.css das Template nicht crashen können. Sollte mal etwas wirklich katastrophal schief gehen braucht man lediglich per FTP-Programm die Datei umzubenennen (z.B. user.css -> -user.css) und das Template läuft wieder.
Wichtig: Da diese Datei über einen @import url() - Befehl innerhalb der stylesheet.css geladen wird, stehen diese Formate auch im Editorfenster zur Verfügung!

Möchte man grundlegende Formatierungen des Templates ändern, dann braucht man auch hier nicht an der stylesheet.css Änderungen vorzunehmen. Dafür ist die usermodify.css da. Diese Datei wird in der template.htm nach dem Aufruf der Funktion head() referenziert und überschreibt damit nur im Front-End-Modus die möglicherweise schon in der styleshee.css existierenden Formate. Dies hat zur Folge, dass diese Formate im Editor nicht wirksam werden! Der Editor bringt außer den Styles des CMS nur die Styles aus der stylesheet.css (und wegen dem dortigen Import auch die der user.css) zur Anwendung und bietet unter dem Drop-Down-Element 'Formate' auch nur Formatierungen an, die als Klassen an <span>, <p> oder <div> gebunden sind. Außerhalb des Editorfensters werden die Formatierungen in der usermodify.css voll wirksam.

Möchte man z.B. die Größe der Überschriften ändern, so kopiert man die entsprechenden Formate aus der stylesheet.css und fügt sie in die usermodify.css ein. Dann ändert man dort die Schriftgröße. Im Editor wird wieterhin die alte Größe angezeigt. Im Front-End (das was der Surfer sieht) wird jedoch die geänderte Formatierung angezeigt.

Auch hier gilt: Geht mal etwas fürchterlich schief und das templat crashed, dann reicht es per FTP die Datei usermodif.css umzubenennen und das Template läuft wieder.

Natürlich muß man dann (egal ob bei user.css oder usermodify.css) den Fehler suchen. Da diese Dateien in der Regel erheblich kleiner sind als die stylesheet.css, wird sich die Fehlersuche erheblich einfacher gestalten.

Besonderheit bei Viewports mit mehr als 1920px Breite

Im Normalmodus (Front-End-Mode, Admin ist ausgeloggt) wird die Seite mit einer max. Breite von 1920 px angezeigt und steht vor einem Farb-Verlauf-Hintergrund horizontal zentriert im Viewport. Ist die Seite im Editor-Modus wird die Seite linksbündig und ohne Farbverlauf im Hintergrund ausgegeben.
Vorteil: Wer, so wie ich, gerne das FHS-Admin-Menü verwendet und dieses rechtsbündig eingestellt hat, wird es zu schätzen wissen, dass dann die gesamte Seitenbreite dargestellt werden kann ohne dass das Admin-Menü einen Teil der Seite überlagert.


| Seitenanfang | |  - - - By CrazyStat - - -

Please activate JavaScript in your browser.

» Sitemap