Smarty Templates

Befehle

Hinweis: in eckigen Klammern angegebene Parameter sind optional


Einbinden der Systemskripte:
{include_sys id="script_header"}
(dieser Befehl **muss** in jedem Template genau einmal vorkommen - am besten direkt vor dem </head>-Tag)

Einbinden der Navigation (Menü):
Beispiele:
{include_navigation levels="a-b"}
{include_navigation levels="a-b" view="all" assign="varName"}
optionale ParameterstandardwertBedeutung
assignnicht zugewiesen
viewnicht zugewiesen
activeClass'active'CSS-Klasse für li und a der aktuellen Seite oder einer ihrer Elternseiten
currentClass'active'CSS-Klasse für li und a der aktuellen Seite
subMenuBefore'<ul>'HTML-Tag vor einem Untermenü
subMenuAfter'</ul>'HTML-Tag nach einem Untermenü
itemBefore'<li class="{class}">'
itemAfter'</li>'
linkItem'<a href="{url}" class="{class}">{text}</a>'
textItem'<span>{text}</span>'


Seiteninhalt editierbar einbinden:
{editable id="main"}{include_content id="main"}{/editable}
Für weitere Inhaltsbereiche können andere IDs vergeben werden.

Hinweis: Alle include_...-Befehle geben ihre Rückgabe normalerweise direkt aus. Mit dem optionalen Parameter assign="varName" kann die Rückgabe stattdessen in eine Variable umgeleitet werden.


Seiteninhalt nicht editierbar einbinden:
{include_content id="..." [page="..."]}



{include_pages src="subpages" [order="columnName"] [assign="varName"]}
{include_pages src="urlfilter" filter="..." [order="columnName"] [assign="varName"]}
{include_pages tag="meinTag" [assign="varName"]}
Der "filter" wird mit LIKE mit dem Pfad der Seite verglichen (Bsp. filter="/blog/%/")

{include_subpages ... [order="columnName"] [assign="varName"]}
shortcut for {include_pages src="subpages"}

{include_dirlist src="assets|docs" [folder="..."] [id="..."] ...}
{include_textfile src="assets|docs" [folder="..."] [id="..."] file="..." ...}

{include_breadcrumb [assign="varName"]}
{include_tags [assign="varName"]}
{include_tagcloud [assign="varName"]}


Variablen


{$page.title} Titel der aktuellen Wikiseite

{$wiki.sitetitle} Titel des Wikis
{$wiki.domain} Domain des Wikis
... Liste aller $wiki.something Variablen

{$main_content} Hauptinhalt
{$menuSteps}
{$permissions.pageEdit}
{$permissions.pageCreate}
{template_folder_url} URL des Verzeichnisses template/#MYTHEME#/


Ordnerstruktur für Wikis

wikis/
  #ID#/
    themes/
      #MYTHEME#/
				default.layout
				aaa.layout
				bbb.layout
				xxx.ptype
				yyy.ptype
				zzz.ptype
    webspace/
      template/
        #MYTHEME#/
          preview.jpg     <-- wird als Vorschaubild angezeigt
          style.css
          abc.css
          def.css
          xyz.jpg
					

Der Unterordner von "themes" und "template" muss für ein Template den gleichen Namen haben.

Im Unterordner von themes:
  • default.layout (muss existieren) - Standard-HTML-Layout des Wikis
    Minimalvorlage für ein Smarty/HTML-Layout
  • *.layout (optional) - weitere Layouts mit beliebigen Namen
  • *.ptype (optional) - eigene Seitentypen oder überschreiben von System-Seitentypen
    • z.B. error_403.ptype oder error_404.ptype um eigene Fehlerseiten zu erstellen

Im Unterordner von template:
Dieser Ordner ist später unter http://meinedomain/docs/template/#MYTHEME#/ erreichbar
Die URL dieses Ordners kann über den Befehl {template_folder_url} im Layout abgerufen werden.


  • preview.jpg (optional) - wird im Designer als Vorschaubild angezeigt
  • Stylesheets, Javascripts, Bilder, etc.


Kommentarfunktion

...die Kommentarfunktion wird über das Javascript-API eingebunden
<div id="commentBox"></div>
<script> qqTW.api.commentBox("#commentBox"); </script>


Empfehlung für die Kommentarfunktion


alter Vorschlag für Kommentar-API


HTML/Smarty-Code für ein Formular zum Hinzufügen von Kommentaren

<form action="/ajax/page_comment_add/{$page.id}" method="post">
<input type="hidden" name="redirect" value="_back">
<table>
{if !login_ok()}
<tr><td>Name: </td><td><input type="text" name="guest_name" value=""></td></tr>
<tr><td>E-Mail: </td><td><input type="text" name="guest_name" value=""></td></tr>
{/if}

<tr><td>Nachricht: </td><td><textarea name="body" style="width: 100%; height: 200px; "></textarea></td></tr>

<tr><td></td><td><input type="submit" name="post" value=" Kommentar hinzufügen "></td></tr>
</table>
</form>


Smarty-Befehl zur Anzeige der Kommentare

{include_comments}




Smarty-Befehl zur benutzerdefinierten Anzeige der Kommentare

{include_comments assign="myComments"}

{foreach item=comment from=$myComments}
<h2>Kommentar von {$comment.from}</h2>
<p>{$comment.body}</p>

{/foreach}









Kommentare