Template-Referenz

Version 1.7.1

1 Aktuelle Seite

Über das Objekt $this->page kann auf die aktuelle Seite zugegriffen werden. Anbei finden Sie eine Liste mit den wichtigsten Seiteneigenschaften, alle Eigenschaften können Sie in der Konfigurationsdatei config/system/nodes.ini.php, bzw. config/custom/nodes.ini.php nachlesen.

1.1 Seiteneigenschaften

Eigenschaften Beschreibung
Integer $this->page->uid->value() UID der Seite
String $this->page->title->value() Seitentitel
Array $this->page->meta->value() Metatags
String $this->page->tags->value() Gespeicherte Tags
Boolean $this->page->nosearch->value() Seite ist nicht durchsuchbar
Boolean $this->page->isActive->value() Seite ist nicht aktiv
Boolean $this->page->isHidden->value() Seite ist in der Navigation versteckt

1.2 Seitenstruktur

Die Seiteneigenschaften repräsentieren die Datenbanktabelle si_nodes. Um auf Eigenschaften der Seite innerhalb der Seitenstruktur (also z.B. Sortierung,...) zugreifen zu können, müssen Sie die Tabelle si_tree heranziehen. Die entsprechenden Eigenschaften erhalten Sie über die Methode $this->page->getTree().

Eigenschaften Beschreibung
Object $this->page->getTree() Liefert das Objekt der Seitenstruktur zurück
Integer $this->page->getTree()->level->value() Gibt die Ebene in der die Seite liegt zurück. Die Root-Ebene, also die oberste Seite, beginnt dabei bei 0.
Integer $this->page->getTree()->sorting->value() Liefert die Sortierung der Seite innherhalb der Ebene zurück.

1.3 Übergeordnete Seiten

Auf übergeordnete Seiten (Eltern) können sie wie folgt zugreifen:

Methode Beschreibung
Object $this->page->getParent()
Liefert die direkt übergeordnete Seite zurück.
Object $this->page->getParent(Integer $i)
Liefert die übergeordnete Seite aus der Ebene $i zurück.
Array $this->page->getAllParents()
Liefert alle übergeordneten Seiten in einem Array zurück. Der Array-Schlüssel entspricht dabei der Ebene.

 

2 Aktueller Inhalt

Über $this->content können Sie manuell auf den Inhalt der aktuellen Seite zugreifen. Wollen Sie lediglich den Inhalt normal ausgeben, verwenden Sie bitte den View Helfer $this->content(). Dennoch gibt es Situationen in denen Sie manuell auf den Inhalt zugreifen müssen.

2.1 Inhaltsliste

Befinden Sie sich auf einer normalen Seite, enthält $this->content einen Array mit den unterschiedlichen Inhaltselementen. Sie können dieses durchlaufen und auf die entsprechenden Eigenschaften des jeweiligen Inhaltselementes zugreifen.

2.2 Einzelner Inhalt

Befinden Sie sich auf einer Seite, in der eine Detailsansicht eines Inhaltselementes dargestellt wird (z.B. Sie haben auf eine News geklickt und lassen sich diese in der Detailansicht anzeigen), enthält die Variable $this->content nicht einen Array, sondern das angeklickte Inhaltselement als Objekt. Sie können dann direkt auf die verfügbaren Eigenschaften zugreifen. Eine detaillierte Auflistungen aller Inhaltseigenschaften erhalten Sie in der Konfigurationsdatei config/system/content.ini.php.

Eigenschaften Beschreibung
Mixed $this->content->EIGENSCHAFT->value() Liefert den Wert der gewünschten EIGENSCHAFT zurück
Integer $this->content->uid->value() UID des Elementes
String $this->content->tags->value() Gespeicherte Tags
Boolean $this->content->isHidden->value() Seite ist auf der Seite versteckt

3 Eingeloggter Benutzer

Über $this->user kann auf den aktuell eingeloggten Benutzer zugegriffen werden. Ist kein Benutzer eingeloggte ist die Variable mit null belegt. Folgende Eigenschaften stehen über das Benutzerobjekt zur Verfügung:

 

Eigenschaften Benschreibung
Integer $this->user->uid->value() UID des Benutzers
String $this->user->alias->value() Benutzername
String $this->user->firstname->value() Vorname
String $this->user->lastname->value() Nachname
String $this->user->email->value() E-Mail

 

4 Seiten und Menüs

4.1 Navigationsmenüs

Navigationsmenüs können über folgenden View-Helfer ausgegeben werden:

  • $this->menu($template = 'menu.phtml', $key = 'si_menu')

Als Standard-Template wird die Datei sibase/navigation/menu.phtml verwendet. Das Standard-Template kann im eigenen Design-Ordner entsprechend überschrieben werden. Zusätzlich kann eine optionale Template-Datei als Parameter $template übergeben werden, die anstelle der menu.phtml zur Ausgabe verwendet wird.

Es können mehrere Menü-Aufrufe (z.B. Hauptmenü, Untermenü, Footer-Navigation) auf einer Seite verwendet werden. Die umgebende ungeordnete HTML-Liste erhält dabei die ID si_menu. Sollten Sie mehrere Menüs auf einer Seite verwenden, ändern Sie den zweiten Parameter $key bitte beliebig ab.

4.1.1 Konfiguration

Jedes Navigationsmenü kann über folgende Methoden konfiguriert werden. Diese Methoden können dabei auch kombiniert werden (siehe Beispiele).

Methode Benschreibung
->setLevel(Integer $level)
Konfiguration ab welcher Ebene $level das Menü ausgegen werden soll. Die oberste Root-Seite liegt dabei auf $level="0. Für ein Standard-Menü sollten Sie mit $level="1" beginnen.
->setDepth(Integer $depth)
Anzahl der Ebenen die ausgegeben werden sollen. Bei einer Tiefe von 1 wird nur die aktuelle Ebene, ab $depth="2 werden auch Unterebenen zum entsprechend ausgewählten Navigationspunkt dargestellt.
->getUidArray(Array $uids) Ausgabe eines Menüs mit den nur über $uids angebenen Seiten. Die Methoden setLevel() und setDepth() haben keine Auswirkung. Anstatt die einzelnen UIDs der Seiten fest vorzugeben, sollte aber besser der Weg über getByTag() gewählt werden.
->getByTag(String $tag) Ausgabe eines Menüs mit den Seiten, die das Tag $tag besitzen. Damit können relativ einfach Footer- und Headernavigationen umgesetzt werden. Die Methoden setLevel() und setDepth() haben keine Auswirkung.
->excludeTags(Array $tags) Seiten, die die Tags $tags besitzen werden im Menü nicht angezeigt. So können Seiten lediglich z.B. in einer Headernavigation und nicht in der Hauptnavigation angezeigt werden.
->doExpandAll(Boolean $doExpand)
Alle über setDepth() gesetzten Ebenen werden standardmäßig aufgeklappt. Diese Option kann für Sitemap-Anzeigen oder dynamische Javascript-Menüs verwendet werden.

4.1.2 Beispiele

Ausgabe eines normales Menüs mit zwei Ebenen (eine Unterebene)

<?php echo $this->menu()->setLevel(1)->setDepth(2);?>

Ausgabe eines normales Menüs mit zwei Ebenen (eine Unterebene), ohne Seiten mit dem Tag "footer":

<?php echo $this->menu()->setLevel(1)->setDepth(2)->excludeTags(array('footer'));?>

Ausgabe eines Menüs von Seiten mit dem Tag "footer":

<?php echo $this->menu()->getByTag('footer');?>

Ausgabe eines komplett aufgeklappten Menüs mit drei Ebenen:

<?php echo $this->menu()->setLevel(1)->setDepth(3)->doExpandAll(true);?>

4.2 Klickbarer Seitenpfad

Von vielen Webseiten dürften Ihnen die klickbaren Seitenpfade (auf Neudeutsch Breadcrumbs) bekannt sein. Meist unter dem Hinweis "Sie befinden sich hier: Seite 1 -> Seite 1.1 -> Seite 1.1.1" werden die jeweiligen übergeordneten Seiten ausgegeben, um per Klick darauf jeweils auf die entsprechende Ebene zu kommen. Mit dem Simploo CMS können Sie solche klickbaren Seitenpfade über folgenden View-Helfer realisieren:

  • $this->rootline($template = 'rootline.phtml')

Als Standard-Template wird die Datei sibase/navigation/rootline.phtml verwendet. Das Standard-Template kann im eigenen Design-Ordner entsprechend überschrieben werden. Zusätzlich kann eine optionale Template-Datei übergeben werden, die anstelle der rootline.phtml zur Ausgabe verwendet wird.

Zu diesem View-Helfer stehen keine weiteren Konfigurationsmöglichkeiten zur Verfügung.

4.2.1 Beispiel

<?php echo $this->rootline();?>

5 Inhalte auslesen

Wollen Sie in Ihrem Template bestimmte Inhalte (z.B. News) auslesen und anzeigen, können Sie auf folgenden View-Helfer zurückgreifen:

$this->fetchContent($content, $limit, $order, $inRootline, $tag, 
$offset, $excludeTags, $uids, $uidsExclude)

5.1 Parameter

Name
StandardOptionalBeschreibung
String $content
--
neinGibt den Inhaltstyp an, der ausgelesen werden soll. Die verfügbaren Standard-Inhaltstypen sind:
  • news
  • gallery
  • _Text
  • _Infoblock
Eigene Inhaltstypen können ebenfalls über den Gruppierungsname aus der Konfigurationsdatei content.ini.php angegeben werden. Haben sie beispielsweise ein Inhaltstyp [referenz] erstellt, können Sie diese Inhaltselemente durch die Übergabe von referenz auslesen.
Integer $limit10jaBegrenzung der auszulesenden Inhaltselementen analog zum MySQL-Befehl LIMIT x
String $order
null
ja
Sortierung der Inhaltselemente, standardmäßig erfolgt die Rückgabe unsortiert. Folgende Angaben sind möglich:
  • RAND
    für zufällige Sortierung
  • SORTING
    für auf/-absteigende Sortierung anhand der Inhaltsposition (Datenbankfeld "si_tree.sorting")
Zusätzlich kann nach allen Feldern der Tabelle si_nodes über folgende Angabe sortiert werden, z.B.
  • n.added
    für Sortierung nach dem Einstelldatum
  • n.string1
    für Sortierung nach dem Feld "string1"
Alle Parameter können durch ein angehängtes ASC oder DESC für die Richtung der Sortierung ergänzt werden.
Integer $inRootline
nulljaÜbergabe einer Seiten-UID innerhalb oder unterhalb die Inhaltselemente gespeichert sein müssen. So können Sie beispielsweise nur Inhaltselemente aus einem bestimmten Seitenbereich auslesen.
String $tagnulljaAngabe eines Tags, das jedes Inhaltselement haben muss
Integer $offset
0
jaNur in Verbindung mit $limit sinnvoll, analog zum MySQL-Befehl LIMIT x,y, bzw. OFFSET x
String $excludeTags
nulljaKommagetrennte Liste von Tags, die das Inhaltselement nicht enthalten darf.
String $uids
null
jaKommagetrennte Liste von Inhalts-UIDs, die ausgelesen werden sollen
String $uidsExclude
nulljaKommagetrennte Liste von Inhalts-UIDs, die nicht ausgelesen werden sollen

5.2 Beispiele

Auslesen und anzeigen der letzten 3 News aus der Seite "Aktuelles" (UID = 20):

<?php foreach($this->fetchContent('news', 3, 'sorting', 20) as $news):?>
<h2><?php echo $news->text1->value();?></h2>
<p><?php echo $this->shorten($news->text2->value(), 100);?></p>
<?php endforeach;?>

Auslesen von News aller Seiten mit dem Tag "topnews":

<?php foreach($this->fetchContent('news', null, 'sorting', null, 'topnews') as $news):?>
<h2><?php echo $news->text1->value();?></h2>
<p><?php echo $this->shorten($news->text2->value(), 100);?></p>
<?php endforeach;?>

6 Verlinkungen

6.1 Verlinkung auf Seiten und Inhalten

echo $this->link($page = null)

6.1.1 Parameter

Der einzigste Parameter $page kann auf zwei verschieden Arten gesetzt werden. Wird der Parameter weggelassen, wird ein Link auf die Startseite erstellt.

Name
TypBeschreibung
$page
Integer
Übergabe einer Seiten-UID
Sicore_Models_Node_PageÜbergabe eines Seiten-Objektes


6.2.1 Zusätzliche Methoden

Methode
Beschreibung
->addParam(String $key, String $value)
Hängt einen zusätzlichen Parameter an die generierte URL an
->setParams(Array $params)
Setzt die URL-Parameter über ein Array.
->resetParams()Löscht alle angehängten URL-Parameter.

6.2.2 Beispiele

Verlinkung auf die Seite mit der ID = 43:

<a href="<?php echo $this->link(43);?>">zum Impressum</a>

Verlinkung auf die aktuelle Seite, mit zusätzlichem Parameter (z.B. Ausgabe der aktuellen Seite als RSS-Feed):

<a href="<?php echo $this->link($this->page)->addParam('format', 'rss');?>">RSS-Feed</a>

6.3 Verlinkung auf Dateien und Bilder

echo $this->linkFile($file, $imageSize = null)

6.3.1 Parameter

Der erste Parameter $file kann auf zwei verschieden Arten gesetzt werden. Über den zweiten Parameter kann bei Bildern noch eine Größe angegeben werden.

Name
TypBeschreibung
$file
Integer
Übergabe einer Datei-UID
Sicore_Models_FSO_FileÜbergabe eines Datei-Objektes
$imageSizeStringGröße des Bildes, wie in der Konfigurationsdatei base.ini.php hinterlegt. Wird keine Größe angegeben, wird auf die Originaldatei verlinkt.


6.4.1 Zusätzliche Methoden

Methode
Beschreibung
->addParam(String $key, String $value)
Hängt einen zusätzlichen Parameter an die generierte URL an
->setParams(Array $params)
Setzt die URL-Parameter über ein Array.
->resetParams()Löscht alle angehängten URL-Parameter.

6.4.2 Beispiel

<img src="<?php echo $this->linkFile(123, 'header');?>" />

6.5 Verlinkung auf Designbilder und -Ressourcen (CSS, JS)

echo $this->layout($file)

6.5.1 Parameter

Name
TypBeschreibung
$file
String
Relativer Pfad zur Datei innerhalb des Designordners. Der absolute Pfad wird entsprechend gesetzt.


6.5.3 Beispiel

Einbindung einer CSS-Datei

<link rel="stylesheet" type="text/css" media="screen" 
href="<?php echo $this->layout('_css/design.css');?>" />

Innerhalb des href-Attributes wird dann folgender Link als Beispiel ausgegeben:

templates/frontend/customdesign/_css/design.css

7 Suchformular

Das Suchformular kann über folgenden View-Helfer eingebaut werden. Das Standard-Template liegt im Design-Ordner frontend/sicore/search/form.phtml und kann entsprechend überschrieben werden:

<?php echo $this->searchform();?>

8 Loginformlar

Das Login-Formular kann über folgenden View-Helfer eingebaut werden. Das Standard-Template liegt im Design-Ordner frontend/sicore/user/login.phtml und kann entsprechend überschrieben werden:

<?php echo $this->loginform();?>