Einbinden von Stylesheets
<?php JFactory::getDocument()->addStyleSheet($this->baseurl . '/templates/' .$this->template .'/css/template.css'); ?>
Einbinden des Seitentitels
<?php echo JFactory::getConfig()-> get('sitename'); ?>
Einbinden eines Fotos
<img src="/<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/foto.jpg"/>
Hauptmenü der Modul position-1 zuordnen
<jdoc:include type="modules" name="position-1" />
Suche der Modul position-0 zuordnen
<jdoc:include type="modules" name="position-0" />
Einbinden der Beiträge von Joomla!
<jdoc:include type="component" />
Joomla! Systemmeldungen ausgeben
<jdoc:include type="message" />
Module der position-7 zuordnen
<jdoc:include type="modules" name="position-7" style="html5"/>
Copyright einbinden
<small> © <?php echo date('Y'); ?> <?php echo JFactory::getConfig() ->get('sitename'); ?></small>
Sprache einbinden
<html lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >
Mit Bootstrap lassen sich vorgefertigte Stylesheets einbinden.
Einbinden und laden von Bootstrap
<?php
JHtml::_('bootstrap.framework');
JHtml::_('bootstrap.loadcss', true, $this->direction);
?>
Codes für die templateDetails.xml -> die templateDetails.xml bindet z.B. die Dateien, Ordner und Positionen für das Template ein.
Außerdem enthält sie Namen, Version, Beschreibung usw. des Templates.
Einbinden der Template Informationen
<name>EasyTemplate</name>
<version>1.0</version>
<creationDate>17.05.2017</creationDate>
<author>SYSOPONLINE</author>
<authorEmail>
<authorUrl>http://www.sysop-online.de</authorUrl>
<copyright>Copyright (C) 2017 SYSOPONLINE. All rights reserved.</copyright>
<license>http://www.gnu.org/licenses/gpl.html GNU/GPL</license>
<description>EasyTemplate für einfache Webseiten mit Joomla!</description>
Definiert Files und Folder für das Template
<files>
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
<folder>images</folder>
<folder>css</folder>
</files>
Definierte Positionen für das Template
<positionen>
<position>position-0</position>
<position>position-1</position>
<position>position-7</position>
</positionen>
Einbinden der Zeichencodierung utf-8
<?xml version="1.0" encoding="utf-8"?>
Einbinden der Joomla! Tags
<!DOCTYPE install PUBLIC "-//Joomla! 2.5//DTD template 1.0//EN" "https://www.joomla.org/xml/dtd/2.5/template-install.dtd">
<extension version="3.1" type="template" client="site">
Sprachdateien einbinden
<language folder="language">
<language tag="de-DE">de-DE/de_DE.tpl.easytemplate.ini</language>
<language tag="en-GB">en-GB/en_GB.tpl.easytemplate.ini</language>
</language>
Media Querys: Mit einem Media Query kann man gezielt Stylesheets steuern. Oft wird diese Funtkion verwendet um auf verschiedene Größen von Displays reagieren zu können.
Erst ab 960px werden gewisse Stylesheets beachtet
@media only screen and (min-width: 960px) {
Fehlerseite ausgeben
PHP Script um eine Fehlerseite mittels error.php auszugeben. Zusätzlich ein Button womit man zurück auf die Hauptseite kommt.
<?php echo htmlspecialchars($this->error->getMessage(), ENT_QUOTES, 'UTF-8'); ?> (<?php echo $this->error->getCode(); ?>)
<br><br><br><a href="/<?php echo $this->baseurl; ?>/index.php"><?php echo JText::_('JERROR_LAYOUT_GO_TO_THE_HOME_PAGE'); ?></a>
PHP Script um den aktuellen Benutzer auszulesen und ihn mittels Willkommen und den ausgelesenen Namen zu begrüßen.
weitere Informationen unter: https://api.joomla.org/
<?php
$benutzer = JFactory::getUser();
$benutzer_id = $benutzer->get('id');
if($benutzer_id){
echo 'Willkommen';
echo $benutzer->get('name');
}
?>
Module auslesen und den Contentbereich (Beitrag) auf 100% anpassen.
Auslesen der Module in der rechten Spalte (Position rechts) und in die Variable "anzahl" speichern
<?php $anzahl=$this->countModules('rechts'); ?>
Wenn die Module an der Position rechts 0 ergeben wird aus Klasse "beitrag" die Klasse "beitragfull"
class="beitrag<?php if($anzahl ==0) echo 'full'; ?>"> <jdoc:include type="message" /> <jdoc:include type="component" />
Falls die Anzahl der Module in Position "rechts" 0 ergibt wird die Seitenleiste ausgeblendet
<?php if ($anzahl >0) : ?>
<div class="seitenleiste"> <jdoc:include type="modules" name="rechts" style="html5"/></div>
<?php endif ?>
Den Bereich des Beitrags in der template.css auf 100% anpassen wenn rechts keine Module eingeblendet sind.
.beitragfull{
float:left;
width:100%;
}
Stylesheets für die Fehlerseite einbinden
<link rel="stylesheet"
href="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/css/template.css"
type="text/css" />
Informationen auf der Fehlerseiten.
Die angeforderte Seite konnte nicht gefunden werden!
Während der Anfrage ist ein Fehler aufgetreten!
Die Seite kann nicht angezeigt werden, weil:
- Sie ein veraltetes Lesezeichen aufgerufen haben.
- Sie eine falsche Adresse aufgerufen haben.
- Sie über eine Suchmaschine einen veralteten Index dieser Webseite aufgerufen haben.
- Sie keinen Zugriff auf diese Seite haben.
<p><?php echo JText::_('JERROR_LAYOUT_PAGE_NOT_FOUND'); ?></p>
<p><?php echo JText::_('JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST'); ?></p>
<p><?php echo JText::_('JERROR_LAYOUT_NOT_ABLE_TO_VISIT'); ?></p>
<ul>
<li><?php echo JText::_('JERROR_LAYOUT_AN_OUT_OF_DATE_BOOKMARK_FAVOURITE'); ?></li>
<li><?php echo JText::_('JERROR_LAYOUT_MIS_TYPED_ADDRESS'); ?></li>
<li><?php echo JText::_('JERROR_LAYOUT_SEARCH_ENGINE_OUT_OF_DATE_LISTING'); ?></li>
<li><?php echo JText::_('JERROR_LAYOUT_YOU_HAVE_NO_ACCESS_TO_THIS_PAGE'); ?></li>
</ul>
Eingabemasken für das Backend definieren
Eingabemasken im Backend unter Erweitert definieren
<config>
<fields name="params">
<fieldset name="advanced">
<field name="untertitel" type="text" default="EasyTemplate" label="Untertitel der Webseite" description="Geben Sie hier bitte den Untertitel ein." filter="string" />
</fieldset>
</fields>
</config>
Auslesen des Untertitel aus dem Backend und im Frontend wieder ausgeben.
<?php echo htmlspecialchars$this->params->get('untertitel')); ?>
Ausklappliste (Drop-down-Box) erstellen
<config>
<field name="farbe" type="list" default="grau"
label="Farbe wählen:"
description="Bitte wählen Sie eine Farbe aus" >
<option value="rot">Rot</option>
<option value="grau">Grau</option>
</field>
</fieldset>
</fields>
</config>
Einbinden der StyleSheets entweder template.css oder templaterot.css
<?php
if ($this->direction == 'rtl') {
JFactory::getDocument()->addStyleSheet($this->baseurl . '/templates/' .$this->template .'/css/template_rtl.css');
} else {
$farbe = $this->params->get('farbe');
if($farbe=='grau') {
JFactory::getDocument()->addStyleSheet($this->baseurl . '/templates/' .$this->template .'/css/template.css');
} else {
JFactory::getDocument()->addStyleSheet($this->baseurl . '/templates/' .$this->template .'/css/templaterot.css');
}
}
?>
Checkbox im Backend erstellen
<field name="titelanzeigen"
type="checkbox"
label="Untertitel anzeigen?"
description="Soll der Untertitel angezeigt werden?"
/>
Überprüfen ob die Checkbox ausgewählt ist und dann den Untertitel der Webseite ausgeben
<?php if($this->params->get('titelanzeigen') == 1): ?>
<p><?php echo htmlspecialchars ($this->params->get('untertitel')); ?></p>
<?php endif; ?>
Radio Buttons im Backend erstellen
<field name="titelalternative" type="radio"
default="0"
label="Untertitel anzeigen?"
description="Soll der Untertitel angezeigt werden?">
<option value="0">Nein</option>
<option value="1">Ja</option>
</field>
Überprüfen ob der Radiobutton ausgewählt ist und dann den Untertitel der Webseite ausgeben
<?php if($this->params->get('titelalternative) == 1): ?>
<p><?php echo htmlspecialchars ($this->params->get('untertitel')); ?></p>
<?php endif; ?>
Auswahlmöglichkeit im Backend für ein Bild erstellen (type="media")
<field name="bild"
type="media"
label="Bild auswählen"
description="Wählen Sie ein Bild aus" />
gewähltes Bild im Backend anzeigen, falls keines ausgewählt ist wird das Standartbild angezeigt
<?php if($this->params->get('bild')) {
echo '<img src="' .$this->baseurl .'/'. $this->params->get('bild').'" />';
} else{
echo '<img src="' .$this->baseurl .'/templates/'. $this->template .'/images/foto.jpg" />';
}
?>