Ein eigenes Template, basierend auf Atomic

Verfasst von Hagen Graf am 23. February 2011 - 15:33

Das Atomic-Template ist ein Gerüst für Ihr eigenes Template. Es besteht aus:

  • /htdocs/templates/atomic
    component.php – das Template für die Druckansicht
    error.php – das Template für die Fehlerseite
    favicon.ico – das Icon der Website (Favicon)
    index.html eine leere HTML Datei, die eine weisse Seite darstellt, wenn jemand das Verzeichnis direkt aufruft. Damit wird vermieden, dass die Dateien des Verzeichnisses dem Besucher angezeigt werden. Joomla! Nutzt diese Technik in allen Verzeichnissen.
    index.php – das Hauptseiten-Template
    templateDetails.xml – Die Konfigurationsdatei mit allen Informationen über Dateien, Positionen und Optionen ist notwendig, damit das Template im Template-Bereich angezeigt wird und um später ein installierbares Zip-Archiv zu erzeugen.
    template_preview.png – das große Template-Vorschaubild, das im Template-Bereich angezeigt wird
    template_thumbnail.png – das kleine Template-Vorschaubild, das im Template-Bereich angezeigt wird
  • /htdocs/templates/atomic/css
    Das Verzeichnis für CSS-Dateien
  • /htdocs/templates/atomic/html
    Das Verzeichnis für Override-Dateien. Atomic bietet bereits einige Override-Dateien für Module an.
  • /htdocs/templates/atomic/images
    Das Verzeichnis für Grafiken und Fotos
  • /htdocs/templates/atomic/js
    Das Verzeichnis für JavaScript-Dateien
  • /htdocs/templates/atomic/languages
    Das Verzeichnis für Sprachdateien. Atomic enthält bereits die Sprachdateien für Englisch.

Die Haupt-Template-Datei index.php

Der Name dieser Layout-Datei muss index.php lauten, da Joomla! nach eingefügten <jdoc>- und PHP-Befehlen sucht. Die notwendigen HTML-Auszeichnungen sind bereits eingebaut und kommentiert. Sie können den Inhalt der Datei Ihren Bedürfnissen anpassen.

Lassen Sie uns kurz die Datei durchgehen, um einen Überblick zu erhalten:

In Zeile 24 können Sie sich entscheiden, ob Sie mit dem Blueprint-CSS-Framework arbeiten wollen oder nicht. (Zu Blueprint erfahren Sie weiter unten mehr.)

In Zeile 50, 56, 62 und weiteren Zeilen können Sie sehen, dass das Template Positionen mit besonderen Namen (atomic-search, atomic-topmenu, ...) zur Verfügung stellt. Wenn Sie diese Namen benutzen wollen, müssen Sie Ihre Module den vorgegebenen Positionen zuordnen. Wenn Sie die Namen ändern wollen, können Sie das in der templateDetails.xml-Datei tun.

In Zeile 42 sehen Sie den Ausdruck:

echo $this->baseurl ?>/templates/<?php echo $this->template ?>/js/template.js

Die Wert von baseurl (Name des Joomla!-Verzeichnisses) und der Name Ihres Templates sind Joomla! bekannt, und Sie können sie bei Bedarf abrufen.

In Zeile 48 sehen Sie:

echo $app->getCfg('sitename');

Dieser Ausdruck liefert den Namen Ihrer Website.

In Zeile 50 sehen Sie:

if($this->countModules('atomic-search')) ...

Dieser Ausdruck zählt die Module an der Position atomic-search. Sie können das Ergebnis benutzen, um Ihr Layout unterschiedlichen Situationen anzupassen.

In Zeile 52 sehen Sie:

<jdoc:include type="modules" name="atomic-search" style="none" />

Das ist ein <jdoc>-Aufruf, der als Namensraum nur in Joomla! existiert. Er wird genutzt, um die HTML-Ausgabe der in den Attributen angegebenen Typen einzufügen. In diesem Fall betrifft dies die Template-Position atomic search. Das style-Attribut nennt sich Modulechrom und kann die folgenden Werte annehmen:

  • table – Die Ausgabe wird in einer Tabelle dargestellt.
  • horz – Die Ausgabe wird horizontal in einer Zelle innerhalb einer Tabelle dargestellt.
  • xhtml – Die Ausgabe wird XHTML-gemäß in <div>-Tags dargestellt.
  • rounded – Die Ausgabe wird in einem Format dargestellt, sodass runde Ecken dargestellt werden können (geschachtelte <div>-Tags). Die Klasse des Elements wird von moduletable in module umbenannt.
  • none – ohne Formatierung
  • outline – die Ausgabe der Positionsvorschau (?tp=1)
  • Template-spezifische Styles – Das Beez-Template hat weitere Styles (siehe das Kapitel Angie Radtke über Ihr Beez-Template).

Sie finden eine komplette Liste in der Joomla!-Dokumentation (What is module chrome).

Andere <jdoc>-Typen sind:

<jdoc:include type="head" />
<jdoc:include type="message" />
<jdoc:include type="component" style="none" />

Jede Seite benötigt einen head (Kopfbereich mit Meta-Tags), manchmal eine message (beispielweise eine Nachricht nach dem Speichern) und natürlich eine Komponente. Pro Seite ist es möglich, eine Komponente darzustellen. Die Komponente kann ebenfalls mit Modulechrom umgeben werden.

Die Fehler- und die Druckvorschau-Template-Datei arbeitet genau wie die Haupt-Template-Datei.

CSS-Ordner

Sie finden drei Dateien in diesem Ordner:

  1. Die Datei css/template.css mit vordefinierten und kommentierten CSS-Anweisungen. Falls Sie das Blueprint-Framework nicht benutzen, müssen Sie ein paar davon auskommentieren. Die Stellen sind entsprechend markiert.
  2. Die Datei css/template_ie.css ist leer. Sie können hier spezielle CSS-Anweisungen für den Internet Explorer eintragen.
  3. Die Datei css/template_rtl.css ist ebenfalls leer. Sie können spezielle CSS-Anweisungen für Sprachen angeben, die von rechts nach links geschrieben werden.

Das Blueprint-Framework

Blueprint ist ein CSS-Framework, das erstellt wurde, um Entwicklungszeit zu sparen, und das in allen Browsern laufen soll.

Hier folgen ein paar Sätze aus der readme-Datei.

Willkommen bei Blueprint! Dies ist ein CSS-Framework, das erfunden wurde, um Ihre Entwicklungszeit zu minimieren. Es bietet eine solide Basis für Ihre eigenen CSS-Anweisungen. Blueprint bietet folgende Features:
* ein leicht anzupassenden Grid
* behutsame Typographie
* typografische Basis
* verbessertes Browser CSS Reset
* ein Druck Stylesheet
* leistungsfähige, anpassbare Scripte
* definitiv kein aufgeblähter Code!

Sie finden Demos und Anleitungen auf der Projekt-Website unter http://www.blueprintcss.org/.

Das Atomic-Template ist ein Gerüst für Ihr eigenes Template. Es besteht aus:/htdocs/templates/atomiccomponent.php – das Template für die Druckansichterror.php&nbsp;– das Template für die Fehlerseitefavicon.ico – das Icon der Website (Favicon)index.html –p { margeine leere HTML Datei, die eine weisse Seite darstellt, wenn jemand das Verzeichnis direkt aufruft. Damit wird vermieden, dass die Dateien des Verzeichnisses dem Besucher angezeigt werden. Joomla! Nutzt diese Technik in allen Verzeichnissen.index.php – das Hauptseiten-TemplatetemplateDetails.xml – Die Konfigurationsdatei mit allen Informationen über Dateien, Positionen und Optionen ist notwendig, damit das Template im Template-Bereich angezeigt wird und um später ein installierbares Zip-Archiv zu erzeugen.template_preview.png – das große Template-Vorschaubild, das im Template-Bereich angezeigt wirdtemplate_thumbnail.png – das kleine Template-Vorschaubild, das im Template-Bereich angezeigt wird/htdocs/templates/atomic/cssDas Verzeichnis für CSS-Dateien/htdocs/templates/atomic/htmlDas Verzeichnis für Override-Dateien. Atomic bietet bereits einige Override-Dateien für Module an./htdocs/templates/atomic/imagesDas Verzeichnis für Grafiken und Fotos/htdocs/templates/atomic/jsDas Verzeichnis für JavaScript-Dateien/htdocs/templates/atomic/languagesDas Verzeichnis für Sprachdateien. Atomic enthält bereits die Sprachdateien für Englisch.Die Haupt-Template-Datei index.phpDer Name dieser Layout-Datei muss index.php lauten, da Joomla! nach eingefügten &lt;jdoc&gt;- und PHP-Befehlen sucht. Die notwendigen HTML-Auszeichnungen sind bereits eingebaut und kommentiert. Sie können den Inhalt der Datei Ihren Bedürfnissen anpassen.Lassen Sie uns kurz die Datei durchgehen, um einen Überblick zu erhalten:In Zeile 24 können Sie sich entscheiden, ob Sie mit dem Blueprint-CSS-Framework arbeiten wollen oder nicht. (Zu Blueprint erfahren Sie weiter unten mehr.)In Zeile 50, 56, 62 und weiteren Zeilen können Sie sehen, dass das Template Positionen mit besonderen Namen (atomic-search, atomic-topmenu, ...) zur Verfügung stellt. Wenn Sie diese Namen benutzen wollen, müssen Sie Ihre Module den vorgegebenen Positionen zuordnen. Wenn Sie die Namen ändern wollen, können Sie das in der templateDetails.xml-Datei tun.In Zeile 42 sehen Sie den Ausdruck:echo $this-&gt;baseurl ?&gt;/templates/&lt;?php echo $this-&gt;template ?&gt;/js/template.jsDie Wert von baseurl (Name des Joomla!-Verzeichnisses) und der Name Ihres Templates sind Joomla! bekannt, und Sie können sie bei Bedarf abrufen.In Zeile 48 sehen Sie:echo $app-&gt;getCfg('sitename');Dieser Ausdruck liefert den Namen Ihrer Website.In Zeile 50 sehen Sie:if($this-&gt;countModules('atomic-search')) ...Dieser Ausdruck zählt die Module an der Position atomic-search. Sie können das Ergebnis benutzen, um Ihr Layout unterschiedlichen Situationen anzupassen.In Zeile 52 sehen Sie:&lt;jdoc:include type="modules" name="atomic-search" style="none" /&gt;Das ist ein &lt;jdoc&gt;-Aufruf, der als Namensraum nur in Joomla! existiert. Er wird genutzt, um die HTML-Ausgabe der in den Attributen angegebenen Typen einzufügen. In diesem Fall betrifft dies die Template-Position atomic search. Das style-Attribut nennt sich Modulechrom und kann die folgenden Werte annehmen:table&nbsp;– Die Ausgabe wird in einer Tabelle dargestellt.horz – Die Ausgabe wird horizontal in einer Zelle innerhalb einer Tabelle dargestellt.xhtml – Die Ausgabe wird XHTML-gemäß in &lt;div&gt;-Tags dargestellt.rounded – Die Ausgabe wird in einem Format dargestellt, sodass runde Ecken dargestellt werden können (geschachtelte &lt;div&gt;-Tags). Die Klasse des Elements wird von moduletable in module umbenannt.none – ohne Formatierungoutline – die Ausgabe der Positionsvorschau (?tp=1)Template-spezifische Styles – Das Beez-Template hat weitere Styles (siehe das Kapitel Angie Radtke über Ihr Beez-Template).Sie finden eine komplette Liste in der Joomla!-Dokumentation (What is module chrome).Andere &lt;jdoc&gt;-Typen sind:&lt;jdoc:include type="head" /&gt;&lt;jdoc:include type="message" /&gt;&lt;jdoc:include type="component" style="none" /&gt;Jede Seite benötigt einen head (Kopfbereich mit Meta-Tags), manchmal eine message (beispielweise eine Nachricht nach dem Speichern) und natürlich eine Komponente. Pro Seite ist es möglich, eine Komponente darzustellen. Die Komponente kann ebenfalls mit Modulechrom umgeben werden.Die Fehler- und die Druckvorschau-Template-Datei arbeitet genau wie die Haupt-Template-Datei.CSS-OrdnerSie finden drei Dateien in diesem Ordner:Die Datei css/template.css mit vordefinierten und kommentierten CSS-Anweisungen. Falls Sie das Blueprint-Framework nicht benutzen, müssen Sie ein paar davon auskommentieren. Die Stellen sind entsprechend markiert.Die Datei css/template_ie.css ist leer. Sie können hier spezielle CSS-Anweisungen für den Internet Explorer eintragen.Die Datei css/template_rtl.css ist ebenfalls leer. Sie können spezielle CSS-Anweisungen für Sprachen angeben, die von rechts nach links geschrieben werden.Das Blueprint-FrameworkBlueprint ist ein CSS-Framework, das erstellt wurde, um Entwicklungszeit zu sparen, und das in allen Browsern laufen soll.Hier folgen ein paar Sätze aus der readme-Datei.Willkommen bei Blueprint! Dies ist ein CSS-Framework, das erfunden wurde, um Ihre Entwicklungszeit zu minimieren. Es bietet eine solide Basis für Ihre eigenen CSS-Anweisungen. Blueprint bietet folgende Features:* ein leicht anzupassenden Grid* behutsame Typographie* typografische Basis* verbessertes Browser CSS Reset* ein Druck Stylesheet* leistungsfähige, anpassbare Scripte* definitiv kein aufgeblähter Code!Sie finden Demos und Anleitungen auf der Projekt-Website unter http://www.blueprintcss.org/.

4 Kommentare

Hallo, lieber Hagen... ich

Submitted by Guest on 14. August 2011 - 12:13.

Hallo, lieber Hagen... ich habe mir ebenfalls, wie in deinem Video beschrieben ein atomic-based Template angelegt... und ich muss sagen... ES geht doch... nun ja, bei der Ordner erstellung und der inhaltskopie vom atomic-ordner mit entsprechender änderung der templateDetails.xml. Beschriebst du dann via phpmyadmin manuell zu installieren. NEE... im Joomla-backend; bei Erweiterungen --> Überprüfen gibt es ein Symbol, so ein 3/4 in blau, geformter Pfeil... mit Überprüfen... darauf klicken... und das neue Template sowie das style wird dann installierbar ;)
Danke für die einführung und zumindest ein beginn der eigenen Template-Entwicklungsmöglichkeit.

Ich hoffe es wird bals ein ausführliches und aufwändiges Video-Tut geben das sich ausschließlich mit Templates befassen würde (Parameter... etc... erweiterungsmöglichkeiten selber hineinzuprogrammieren etc) wäre echt Toll...

Mit freundlichem Gruß

Danke für den Hinweis.Ja, ein

Submitted by Hagen Graf on 14. August 2011 - 12:20.

Danke für den Hinweis.
Ja, ein Template Video wäre gut!

Es gibt übrigens ein Buch von Angie. Vielleicht hilft dir das?
Joomla!-Templates entwickeln: Barrierefreie & attraktive Designs von Konzept bis Umsetzung

hmm... ups, habe eben noch

Submitted by Guest on 14. August 2011 - 12:45.

hmm... ups, habe eben noch festgestellt, das trotzdem es scheinbar im backend verfügbar ist, leider aber nicht in der DB :( also scheint echt noch ne verbesserung oder bug - report erforderlich zu sein?
also im endeffekt dann doch wie erstmal von dir beschrieben via phpmyadmin zufügen... danke trotzdem, auch das du so schnell geantwortet hast

Mfg

auweia... echt sorry... kein

Submitted by Guest on 17. August 2011 - 20:04.

auweia... echt sorry... kein bug... mein Fehler... ich hatte versehendlich im _bak bereich geguckt gehabt, und da tauchte das template natürlich nicht auf!
echt mein versehen, also der installer funktioniert zumindest bei mir dann doch problemlos und installiert dementsprechend auch den von Hagen beschriebenden händischen weg, problemlos.
alles gut ;) nun erstmal ein erfolgreich erstelltes atomic-basiertes template hat und auch einen eigen definierten bereich... könnte man trotzdem irgendwie einen direkteren nicht so öffentlichen kontakt zu dir (Hagen) haben? ein paar kleinigkeiten wären bestimmt noch interessant zu erfahren ;)
verbesserungsvorschläge bzw. korrekturen für Joomla! 1.6...
oder sollte man sich echt schon voll auf 1.7 konzentrieren?
ich weiss nicht...

Lieben dank... das Video hat mich jedenfalls sehr weit gebracht selbst mit ein paar kleinen umwegen oder kleineren Fehlrn?!... naja...

Mit freundlichem Gruß

Kommentar hinzufügen

  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <br><pre>
  • Zeilen und Absätze werden automatisch erzeugt.

Weitere Informationen über Formatierungsoptionen