====== Blackcat Template erstellen ======
=== Template Struktur erstellen ===
Im Backend unter Addons (1) auf Neues Addon (2) erstellen klicken.
{{:addons:tpl:bild1.jpg?200|}}
- Unter Modultyp - Template auswählen
- Modul-/Sprachname - Den Sprachnamen angeben z.B Lerntemplate
- Verzeichnisname – Den Verzeichnisnamen angeben (Ich nehme immer den Sprachnamen von (2), aber alles klein geschrieben!!!
- Beschreibung zum Template – Was kann das Template, für was ist es gedacht. z.B. // Template mit dem Thema Natur. Das Template hat zwei Menüs und ein News Block auf der linken Seite.//
- Autor – Da schreibst Du Deinen Namen rein
**Speichern klicken nicht vergessen!**
{{:addons:tpl:bild2.jpg?200|}}
So sieht dann die Grundstruktur des Verzeichnisses aus.
{{:addons:tpl:bild3.png?200|}}
=== Dateien/Verzeichnisse bearbeiten und/oder ergänzen ===
* Jeweils einen Ordner mit dem Namen default in den Ordnern css und templates anlegen.
* Im Ordner css\default noch einen Ordner images anlegen
* In den Ordner css\default\images gegebenenfalls die favicon.ico kopieren
* Im Ordner css\default eine Datei template.css anlegen
* Im Ordner template\default eine Datei index.tpl anlegen
// Variablen für Menüs
$menu[1] = 'Hauptnavigation';
Die komplette Datei sieht dann so aus:
.
*
* @author Matthias Blatt
* @copyright 2014, Matthias Blatt
* @link http://blackcat-cms.org
* @license http://www.gnu.org/licenses/gpl.html
* @category CAT_Templates
* @package LernTemplate
*
*/
if (defined('CAT_PATH')) {
if (defined('CAT_VERSION')) include(CAT_PATH.'/framework/class.secure.php');
} elseif (file_exists($_SERVER['DOCUMENT_ROOT'].'/framework/class.secure.php')) {
include($_SERVER['DOCUMENT_ROOT'].'/framework/class.secure.php');
} else {
$subs = explode('/', dirname($_SERVER['SCRIPT_NAME'])); $dir = $_SERVER['DOCUMENT_ROOT'];
$inc = false;
foreach ($subs as $sub) {
if (empty($sub)) continue; $dir .= '/'.$sub;
if (file_exists($dir.'/framework/class.secure.php')) {
include($dir.'/framework/class.secure.php'); $inc = true; break;
}
}
if (!$inc) trigger_error(sprintf("[ %s ] Can't include class.secure.php!", $_SERVER['SCRIPT_NAME']), E_USER_ERROR);
}
$template_name = "LernTemplate";
$template_directory = "lerntemplate";
$template_type = "template";
$template_function = "template";
$template_description = "Was kann das Template";
$template_version = "0.1";
$template_platform = "1.x";
$template_author = "Matthias Blatt";
$template_guid = "42A157F2-55AE-1642-F21D-62F1B51D9705";
$template_license = "GNU General Public License";
// Variablen für Menüs
$menu[1] = 'Hauptnavigation';
Mit den Variablen $menü[x] werden die Menüs die im Frontend verfügbar sein sollen angelegt. Im obigen Beispiel gibt es ein Menü mit dem Namen Hauptnavigation. Die Namen sind frei wählbar.
**Datei index.php:**
Kann so bleiben wie Sie ist!
**Datei icon.png:**
Diese Grafik 32x32 pixel wird im Backend angezeigt.
Sie ist nicht zwingend notwendig!
{{:addons:tpl:bild9.png?200|}}
**Datei header.inc.php:**
Da schreib ich gar nicht viel zu [[addons:tpl:headers|(gibt es ja hier)]], kopiere die Datei aus dem mojito Verzeichnis 'templates/mojito/css/default/template.css' in das Verzeichnis //'templates/lerntemplate/css/default/template.css'// und ändere die Pfadangabe in Zeile 51.
{{:addons:tpl:bild10.png?200|}}
'css' => array(
array(
'media' => 'all',
'file' => 'templates/lerntemplate/css/default/template.css'
)
genauso in Zeile 69 und 73 (Zeilenangabe ohne Gewähr, können sich ja bei Version-updates ändern)
{{:addons:tpl:bild11.png?200|}}
**Anpassung index.tpl**
{get_page_headers()}
Der Aufruf {get_page_headers()} ist ein Platzhalter, der eine Funktion der Template Engine Dwoo aufruft. Diese füllt nun den HTML-Header mit allem, was notwendig ist - dem Seitentitel, dem CSS, den META-Angaben, eventuell zu ladenden JavaScripts, usw.
Der Platzhalter für den Seitentitel heißt {page_title()}
Der Webseiten-Titel kann ebenfalls benutzt werden.
Das Ergebnis sieht also folgendermaßen aus:
{page_title()}
{$WEBSITE_TITLE}
Hier fällt nun ein Unterschied auf: Es gibt eine zweite Art von Platzhaltern, die keine Funktionen der Template Engine aufrufen, sondern Variablen repräsentieren. Grundsätzlich kann man sich folgendes merken:
{show_menu()}
**Den Seiteninhalt ersetzen**
Durch den Aufruf {page_content()}, ebenfalls ein Platzhalter wie schon oben beschrieben wird die Seite mit dem eigentlichen Inhalt befüllt.
{page_content()}
Der Fussinhalt wird mit {page_footer} dargestellt.
{page_footer}
Die komplette index.tpl ohne css Formatierung sieht so aus:
{get_page_headers}
{page_title()}
{$WEBSITE_TITLE}
{show_menu()}
{page_content()}
{page_footer}
**Mit CSS Formatierung**
Die template.css und die index.tpl mit CSS- Formatierung.
Es ist allerdinges eine sehr einfache css Formatierung!
template.css
* {
margin: 0;
padding: 0;
}
#kopf {
width: 100%;
min-height: 100px;
border: 1px solid black;
}
#menü {
position: absolute;
width: 150px;
min-height: 400px;
border: 1px solid black;
padding: 20px;
}
#inhalt {
margin-left: 191px;
width: 1000px;
min-height: 400px;
padding: 2%;
border: 1px solid black;
}
#fuss {
display: flex;
width: 100%;
min-height: 100px;
border: 1px solid black;
}
index.tpl
{get_page_headers}
{page_title()}
{$WEBSITE_TITLE}
{show_menu()}
{page_content()}
{page_footer}