Inhaltsverzeichnis
Die hier gelisteten Anwendungsbeispiele dienen als Blaupausen für Ihre Abschnitt 7.3, „Seitenvorlagen“. Nachdem Sie die entsprechenden inhaltlichen Seiten angelegt haben, kopieren Sie die folgenden Anwendungbeispiele und fügen sie in Ihre jeweiligen Seitenvorlagen ein. Nach dem Speichern der Vorlage kann die korrespondierende Ausgabeseite im Browser aufgerufen werden.
Wo es erforderlich ist auf Besonderheiten in der Beziehung zwischen Seitenvorlage und den Seiteninhalten einzugehen, finden Sie in den Quelltextdateien detaillierte Kommentare. Die Anwendungsbeispiele für die Seitenvorlagen beinhalten dort HTML-Markup, wo es zum Verständnis der Seitenvorlage sinnvoll ist. Dieses HTML-Markup kann (und sollte) von Ihnen an Ihre Bedürfnisse angepasst werden.
|
Anmerkung |
|---|---|
|
Beachten Sie, dass die Beispiele nur die Bereiche umfassen, die für die jeweilige Vorlage spezifischen Variablen und Abfragen enthält. Das für eine Webseite notwendige HTML-Gerüst ist nicht Teil dieser Beispiele. Ausgenommen hiervon sind sämtliche Vorlagenbeispiele, die Feeds (RSS 2.0, Atom 1.0) abbilden. Diese fügen Sie bitte ohne weiteren HTML-Kontext in Ihre Vorlagen ein. |
Beispiel: Einfügen der Anwendungsbeispiele in einem HTML-Kontext
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
{* Einfügen der Vorlagenbeispiele *}
</body>
</html>
Seiten vom Typ stellen die typische Funktionalität eines Weblogs bereit. Neben der Verschlagwortung von Beiträgen und der Kommentarfunktion, können Feeds im Format RSS 2.0 und Atom 1.0 für die Besucher der Seiten bereitgestellt werden.
Neben dem Einsatz als klassisches Blog, ist dieser Seitentyp ebenfalls dazu geeignet, um bspw. Newsseiten (deren Einträge als Feed abonnierbar sind) abzubilden.
Vorlagentyp:
{* Wieviel Blog-Beiträge sollen pro Seite angezeigt werden? *}
{assign var="LIMIT" value="8"}
{* Blogbeiträge nachladen *}
{select_named ns="Content" class="BlogPosting" method="selectBlogPostings" var="blog_postings" order_macro="DATE_ADDED:DESC" page=$page.id tag_word_url=$request.tag start=$request.start limit=$LIMIT draft=0}
{* Foreach Schleife zum Auslesen der Blogeinträge *}
{foreach from=$blog_postings item="_blog_posting"}
<h2>{$_blog_posting.title}</h2>
<p>{$_blog_posting.user_name} am {$_blog_posting.date_added|date_format:"%d.%m.%Y"} –
<a href="{get_url page_id=$page.id action=Item posting_id=$_blog_posting.id}">{if $_blog_posting.comment_count == 0}Keine Kommentare{elseif $_blog_posting.comment_count == 1}Ein Kommentar{else}{$_blog_posting.comment_count} Kommentare{/if}</a></p>
{* Wenn Inhalte vorhanden, zeige die Zusammenfassung, sonst den Inhalt des Beitrags *}
{if !empty($_blog_posting.summary_raw)}
{$_blog_posting.summary}
<p><a href="{get_url page_id=$page.id action=Item posting_id=$_blog_posting.id}">mehr zum Thema {$_blog_posting.title}</a></p>
{else}
{$_blog_posting.content}
{/if}
{* Wenn der Beitrag verschlagwortet wurde, werden hier die Tags gelistet *}
{if $_blog_posting.tag_count > 0}
<p>Abgelegt unter:</p>
<ul>
{foreach from=$_blog_posting.tag_array|unserialize item=_tag}
{if $_tag.word_url == $request.tag}
<li>{$_tag.word}</li>
{else}
<li><a href="{get_url page_id=$page.id action=Index tag_word=$_tag.word_url}">{$_tag.word}</a></li>
{/if}
{/foreach}
</ul>
{/if}
{* Ende der Foreach Schleife zum Auslesen der Blogeinträge *}
{/foreach}
{* Pager *}
{select_named ns="Content" class="BlogPosting" method="countBlogPostings"
var="blog_posting_count" tag_word_url=$request.tag draft=0 page=$page.id}
{page_index var="page_index" item_count=$blog_posting_count interval=$LIMIT}
{if !empty($page_index) && $blog_posting_count > $LIMIT}
<ul>
{foreach from=$page_index item=_item}
{if $_item.self == $request.start}
<li>{$_item.page}</li>
{else}
<li><a href="{get_url page_id=$page.id action=Index tag_word=$request.tag start=$_item.self}">{$_item.page}</a></li>
{/if}
{/foreach}
</ul>
{/if}
{* EOF Pager *}
Vorlagentyp:
{* Titel des Beitrags *}
<h2>{$blog_posting.title}</h2>
{* Meta-Daten des Beitrags *}
<p>{$blog_posting.user_name} am {$blog_posting.date_added|date_format:"%d.%m.%Y"} – {if $blog_posting.comment_count == 0}Keine Kommentare{elseif $blog_posting.comment_count == 1}Ein Kommentar{else}{$blog_posting.comment_count} Kommentare{/if}</p>
{* Zeige die Zusammenfassung an, wenn das Feld nicht leer ist *}
{if !empty($blog_posting.summary_raw)}
{$blog_posting.summary}
{/if}
{* Inhalt des Beitrags *}
{$blog_posting.content}
{select_named ns="Community" class="BlogComment" method="selectBlogComments" var="blog_comments" posting=$blog_posting.id order_macro="DATE_ADDED"}
{if !empty($blog_comments)}
{select_named ns="Community" class="BlogComment" method="countBlogComments" var="blog_comment_count"
posting=$blog_posting.id}
<h3>{if $blog_comment_count == 1}{$blog_comment_count} Kommentar{else}{$blog_comment_count} Kommentare{/if}</h3>
{foreach from=$blog_comments item=_comment}
{$_comment.content}
<p>{if !empty($_comment.homepage)}<a href="{$_comment.homepage}">{/if}{$_comment.name|escape:"html"}{if !empty($_comment.homepage)}</a>{/if} am {$_comment.date_added|date_format:"%d.%m.%Y"}</p>
{/foreach}
{/if}
{if $blog_posting.comments_enable == 1}
<h2>Kommentar hinzufügen</h2>
{* Beispiel: XHTML als Textkonverter für Kommentareinträge *}
<p>Bitte füllen Sie alle Felder mit einem * aus. Ihre E-Mail-Adresse
wird nicht veröffentlicht. (X)HTML ist erlaubt.</p>
{* Beispiel: MARKDOWN als Textkonverter für Kommentareinträge *}
<p>Bitte füllen Sie alle Felder mit einem * aus. Ihre E-Mail-Adresse
wird nicht veröffentlicht. HTML ist nicht erlaubt, dafür
<a href="http://daringfireball.net/projects/markdown/syntax">Markdown</a>.</p>
{* Beispiel: TEXTILE als Textkonverter für Kommentareinträge *}
<p>Bitte füllen Sie alle Felder mit einem * aus. Ihre E-Mail-Adresse
wird nicht veröffentlicht. HTML ist nicht erlaubt, dafür
<a href="http://textism.com/tools/textile/">Textile</a>.</p>
{if !empty($form.errors)}
<ul>
{foreach from=$form.errors item="error"}
<li>{$error}</li>
{/foreach}
</ul>
{/if}
{if $session.form_submitted == 1}
<h2>Danke für Ihren Kommentar!</h2>
{/if}
<form {$form.attributes}>
{$form.javascript}
<fieldset>
{$form.hidden}
<label for="name">{$form.name.label}</label> {$form.name.html}<br />
<label for="email">{$form.email.label}</label> {$form.email.html}<br />
<label for="homepage">{$form.homepage.label}</label> {$form.homepage.html}<br />
<label for="comment">{$form.comment.label}</label> {$form.comment.html}<br />
{* Beispiel: Wenn ein numerische Captcha genutzt werden soll *}
<p>Zur Spamvermeidung nutzt das Formular ein sogenanntes
<a title="Externer Link zu Wikipedia - Begriffserklärung" href="http://de.wikipedia.org/wiki/Captcha">Captcha</a>. Bitte tragen Sie das Ergebnis der Rechenaufgabe in das nachfolgende Feld ein (Beispiele: <em>max(3,5)</em> = <strong>5</strong>; <em>min(2,8)</em> = <strong>2</strong>; <em>3 + 5</em> = <strong>8</strong>).</p>
<p><strong>{$captcha}</strong></p>
<label for="_qf_captcha"> </label>{$form._qf_captcha.html}<br />
{* Beispiel: Wenn ein Bild-Captcha genutzt werden soll *}
<p>Zur Spamvermeidung nutzt das Formular ein sogenanntes <a title="Externer Link zu Wikipedia - Begriffserklärung"
href="http://de.wikipedia.org/wiki/Captcha">Captcha</a>. Bitte tragen Sie die Zeichenfolge in das nachfolgende Feld ein.</p>
<p><img src="{$captcha}" width="200" height="60" alt="Captcha" /></p>
<label for="_qf_captcha">{$form._qf_captcha.label}</label> {$form._qf_captcha.html}<br />
{$form.submit.html}
</fieldset>
</form>
{/if}
|
Anmerkung |
|---|---|
|
Für jeden Blog-Eintrag einer Blog-Seite kann festgelegt werden, ob Kommentare zu diesem erlaubt sind oder nicht (). Die Einstellungen für Kommentare von Blog-Beiträgen erreichen Sie über den Navigationsbereich und dort im Unterbereich . Dort legen Sie u.a. fest welcher in den Kommentaren zum Einsatz kommt und ob mit ein Spam-Schutz eingesetzt werden soll. Alle dort gemachten Angaben gelten übergreifend für die Kommentare aller angelegten Seiten vom Seitentyp . |
Vorlagentyp:
{* Nachladen der Blog Einträge nach Monatsvorkommen auf jeweils ein Jahr bezogen *}
{select_named ns="Content" class="BlogPosting" method="selectDifferentMonths" var="months_this_year" year=$request.posting_year_added order_macro="DATE_ADDED" limit=12}
{* Überschrift mit dynamischer Jahresnennung *}
<h2>Archiv {$request.posting_year_added}</h2>
<ul>
{foreach from=$months_this_year item=_month}
{if $_month.month == $request.posting_month_added}
<li>{$_month.timestamp|date_format:"%B %Y"}</li>
{else}
<li><a href="{get_url page_id=$page.id action="ArchiveMonth" posting_year_added=$_month.year posting_month_added=$_month.month}">{$_month.timestamp|date_format:"%B %Y"}</a></li>
{/if}
{/foreach}
</ul>
|
Anmerkung |
|---|---|
|
Hier gibt es eine Ausnahme von der Regel: Im Gegensatz zu den anderen Anwendungsbeispielen, sollte hier auf den HTML-Kontext in der Vorlage verzichtet werden. Das heißt, fügen Sie den Beispiel-Quelltext bitte so ein, wie er hier abgebildet ist. Hintergrund: In der Regel werden Jahresarchive auf der Blog Übersichtsseite angezeigt um direkten Zugriff auf die Beiträge vergangener Jahre und Monate zu haben und werden somit nicht als separate Einzelseite angelegt. Um unsere Jahresarchiv-Vorlage in die Blog Übersichtseite einzubinden, bedienen wir uns der folgenden Syntax. |
Quelltext: Blog Jahresarchiv Vorlage in die Blog Übersichtsseite einbinden
{include file="wcom:blog_archive_year.`$page.id`"}
Vorlagentyp:
{* Jahresarchiv *}
{* Nachladen der Blog Einträge nach Monatsvorkommen auf jeweils ein Jahr bezogen *}
{select_named ns="Content" class="BlogPosting" method="selectDifferentMonths" var="months_this_year" year=$request.posting_year_added order_macro="DATE_ADDED" limit=12}
{* Überschrift mit dynamischer Jahresnennung *}
<h2>Archiv {$request.posting_year_added}</h2>
<ul>
{foreach from=$months_this_year item=_month}
{if $_month.month == $request.posting_month_added}
<li>{$_month.timestamp|date_format:"%B %Y"}</li>
{else}
<li><a href="{get_url page_id=$page.id action="ArchiveMonth" posting_year_added=$_month.year posting_month_added=$_month.month}">{$_month.timestamp|date_format:"%B %Y"}</a></li>
{/if}
{/foreach}
</ul>
{* EOF Jahresarchiv *}
{* Monatsarchiv *}
{* Wieviel Blog-Beiträge sollen pro Seite angezeigt werden? *}
{assign var="LIMIT" value="8"}
{* Überschrift mit dynamischer Monats- und Jahresnennung *}
<h3>Archiv {"`$request.posting_year_added`-`$request.posting_month_added`-15 12:00:00"|date_format:"%B %Y"}</h3>
{* Nachladen der Blog Einträge des angeforderten Zeitraums *}
{select_named ns="Content" class="BlogPosting" method="selectBlogPostings" var="blog_postings"
page=$page.id year_added=$request.posting_year_added month_added=$request.posting_month_added
order_macro="DATE_ADDED:DESC" draft=0 start=$request.start limit=$LIMIT}
{* Foreach Schleife zum Auslesen der Blogeinträge *}
{foreach from=$blog_postings item="_blog_posting"}
<h2>{$_blog_posting.title}</h2>
<p>{$_blog_posting.user_name} am {$_blog_posting.date_added|date_format:"%d.%m.%Y"} –
<a href="{get_url page_id=$page.id action=Item posting_id=$_blog_posting.id}">{if $_blog_posting.comment_count == 0}Keine Kommentare{elseif $_blog_posting.comment_count == 1}Ein Kommentar{else}{$_blog_posting.comment_count} Kommentare{/if}</a></p>
{* Wenn Inhalte vorhanden, zeige die Zusammenfassung, sonst den Inhalt des Beitrags *}
{if !empty($_blog_posting.summary_raw)}
{$_blog_posting.summary}
<p><a href="{get_url page_id=$page.id action=Item posting_id=$_blog_posting.id}">mehr zum Thema {$_blog_posting.title}</a></p>
{else}
{$_blog_posting.content}
{/if}
{* Wenn der Beitrag verschlagwortet wurde, werden hier die Tags gelistet *}
{if $_blog_posting.tag_count > 0}
<p>Abgelegt unter:</p>
<ul>
{foreach from=$_blog_posting.tag_array|unserialize item=_tag}
{if $_tag.word_url == $request.tag}
<li>{$_tag.word}</li>
{else}
<li><a href="{get_url page_id=$page.id action=Index tag_word=$_tag.word_url}">{$_tag.word}</a></li>
{/if}
{/foreach}
</ul>
{/if}
{* Ende der Foreach Schleife zum Auslesen der Blogeinträge *}
{/foreach}
{* Pager *}
{select_named ns="Content" class="BlogPosting" method="countBlogPostings" var="blog_posting_count"
page=$page.id draft=0 year_added=$request.posting_year_added month_added=$request.posting_month_added}
{page_index var="page_index" item_count=$blog_posting_count interval=$LIMIT}
{if !empty($page_index) && $blog_posting_count > $LIMIT}
<ul>
{foreach from=$page_index item=_item}
{if $_item.self == $request.start}
<li>{$_item.page}</li>
{else}
<li><a href="{get_url page_id=$page.id action=ArchiveMonth
posting_year_added=$request.posting_year_added posting_month_added=$request.posting_month_added
start=$_item.self}">{$_item.page}</a></li>
{/if}
{/foreach}
</ul>
{/if}
{* EOF Pager *}
{* EOF Monatsarchiv *}
Vorlagentyp:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>%%%TITEL-DER-IM-NEWSREADER-ANGEZEIGT-WIRD%%%</title>
<link>http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id}</link>
<description/>
<language>de-DE</language>
<generator>Welcompose 0.9.0 (http://welcompose.de/)</generator>
<atom:link href="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action="Rss20"}" rel="self" type="application/rss+xml" />
{select_named ns="Content" class="BlogPosting" method="selectBlogPostings" var="blog_postings" page=$page.id order_macro="DATE_ADDED:DESC" draft=0}
{foreach from=$blog_postings item=_blog_posting}
<item>
<title>{$_blog_posting.title|escape:"html"}</title>
<link>http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action=Item posting_id=$_blog_posting.id}</link>
<description>
{if !empty($_blog_posting.feed_summary)}
{$_blog_posting.feed_summary|escape:"html"}
{else}
{if !empty($_blog_posting.summary)}
{$_blog_posting.summary|escape:"html"}
{/if}
{$_blog_posting.content|escape:"html"}
{/if}
</description>
<pubDate>{$_blog_posting.date_added|date_rss20}</pubDate>
<guid>http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action=Item posting_id=$_blog_posting.id}</guid>
</item>
{/foreach}
</channel>
</rss>
|
Anmerkung |
|---|---|
|
Alle Angaben, die durch die Zeichenfolge %%% umschlossen sind, müssen an Ihre jeweilige Umgebung angepasst und inklusive der Zeichenfolge ersetzt werden. Aus %%%IHRE-DOMAIN.TLD%%% wird beispielsweise welcompose.de. |
Vorlagentyp:
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>%%%TITEL-DER-IM-NEWSREADER-ANGEZEIGT-WIRD%%%</title>
<link href="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action="Atom10"}" rel="self" title="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action="Atom10"}" type="application/atom+xml" />
<generator uri="http://www.welcompose.de/" version="0.9.0">Welcompose</generator>
<id>http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id}</id>
<updated>{$_date.date_modified|date_atom}</updated>
{select_named ns="Content" class="BlogPosting" method="selectBlogPostings" var="blog_postings" page=$page.id draft=0 order_macro="DATE_ADDED:DESC"}
{foreach from=$blog_postings item=_blog_posting}
<entry>
<title type="html">{$_blog_posting.title|escape:"html"}</title>
<link href="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action=Item posting_id=$_blog_posting.id}"/>
<published>{$_blog_posting.date_added|date_atom}</published>
<updated>{$_blog_posting.date_modified|date_atom}</updated>
<content type="xhtml" xml:lang="de" xml:base="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id}">
<div xmlns="http://www.w3.org/1999/xhtml">
{if !empty($_blog_posting.feed_summary)}
{$_blog_posting.feed_summary|escape:"html"}
{else}
{if !empty($_blog_posting.summary)}
{$_blog_posting.summary|escape:"html"}
{/if}
{$_blog_posting.content|escape:"html"}
{/if}
</div>
</content>
<id>http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action=Item posting_id=$_blog_posting.id}</id>
<author>
<name>{$_blog_posting.user_name}</name>
</author>
</entry>
{/foreach}
</feed>
|
Anmerkung |
|---|---|
|
Alle Angaben, die durch die Zeichenfolge %%% umschlossen sind, müssen an Ihre jeweilige Umgebung angepasst und inklusive der Zeichenfolge ersetzt werden. Aus %%%IHRE-DOMAIN.TLD%%% wird beispielsweise welcompose.de. |
Vorlagentyp:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>%%%TITEL-DER-IM-NEWSREADER-ANGEZEIGT-WIRD%%%</title>
<link>http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id}</link>
<description/>
<language>de-DE</language>
<generator>Welcompose 0.9.0 (http://welcompose.de/)</generator>
<atom:link href="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action="CommentsRss20"}" rel="self" type="application/rss+xml" />
{select_named ns="Community" class="BlogComment" method="selectBlogComments" var="blog_comments" page=$page.id order_macro="DATE_ADDED:DESC"}
{foreach from=$blog_comments item=_blog_comment}
<item>
<title>Kommentar von {$_blog_comment.name|escape:"html"} auf Beitrag «{$_blog_comment.blog_posting_title|escape:"html"}»</title>
<link>http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action=Item posting_id=$_blog_comment.blog_posting_id}</link>
<description>
{$_blog_comment.content|escape:"html"}
</description>
<pubDate>{$_blog_comment.date_added|date_rss20}</pubDate>
<guid isPermaLink="false">tag:%%%IHRE-DOMAIN.TLD%%%,{$_blog_comment.date_added|date_format:"%Y-%m-%d"}:{$_blog_comment.id}</guid>
</item>
{/foreach}
</channel>
</rss>
|
Anmerkung |
|---|---|
|
Alle Angaben, die durch die Zeichenfolge %%% umschlossen sind, müssen an Ihre jeweilige Umgebung angepasst und inklusive der Zeichenfolge ersetzt werden. Aus %%%IHRE-DOMAIN.TLD%%% wird beispielsweise welcompose.de. |
Vorlagentyp:
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>%%%TITEL-DER-IM-NEWSREADER-ANGEZEIGT-WIRD%%%</title>
<link href="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action="CommentsAtom10"}" rel="self" title="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action="Atom10"}" type="application/atom+xml" />
<generator uri="http://www.welcompose.de/" version="0.9.0">Welcompose</generator>
<id>http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id}</id>
<updated>{$_date.date_modified|date_atom}</updated>
{select_named ns="Community" class="BlogComment" method="selectBlogComments" var="blog_comments" page=$page.id order_macro="DATE_ADDED:DESC"}
{foreach from=$blog_comments item=_blog_comment}
<entry>
<title type="html">Kommentar von {$_blog_comment.name|escape:"html"} auf Beitrag «{$_blog_comment.blog_posting_title|escape:"html"}»</title>
<link href="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action=Item posting_id=$_blog_comment.blog_posting_id}"/>
<published>{$_blog_comment.date_added|date_atom}</published>
<updated>{$_blog_comment.date_modified|date_atom}</updated>
<content type="xhtml" xml:lang="de" xml:base="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id}">
<div xmlns="http://www.w3.org/1999/xhtml">
{$_blog_comment.content}
</div>
</content>
<id>tag:%%%IHRE-DOMAIN.TLD%%%,{$_blog_comment.date_added|date_format:"%Y-%m-%d"}:{$_blog_comment.id}</id>
<author>
<name>{$_blog_comment.name}</name>
</author>
</entry>
{/foreach}
</feed>
|
Anmerkung |
|---|---|
|
Alle Angaben, die durch die Zeichenfolge %%% umschlossen sind, müssen an Ihre jeweilige Umgebung angepasst und inklusive der Zeichenfolge ersetzt werden. Aus %%%IHRE-DOMAIN.TLD%%% wird beispielsweise welcompose.de. |
|
Tipp |
|---|---|
|
Der Quelltext und die Auswahl der RSS/Atom Tags in den Beispielen sind Vorschläge unsererseits. Mehr zu möglichen Angaben/Tags, die in der Vorlagengestaltung nutzbar sind, erhalten sie unter http://www.rssboard.org/rss-specification und http://www.atompub.org/rfc4287.html |
|
Tipp |
|---|---|
|
Fügen Sie zwischen <head> und </head> Ihrer Vorlage entsprechende Link-Tags ein, registrieren Browser automatisch das Vorhandensein von Feed-Links und symbolisieren dies zumeist mit einem Icon in der Status- oder Adressleiste.
<link rel="alternate" type="application/rss+xml"
title="Aktuelle Artikel im RSS 2.0 Format abonnieren"
href="{get_url page_id="7" action="Rss20"}" />
<link rel="alternate" type="application/rss+xml"
title="Aktuelle Artikel im Atom 1.0 Format abonnieren"
href="{get_url page_id="7" action="Atom10"}" />
<link rel="alternate" type="application/rss+xml"
title="Aktuelle Kommentare im RSS 2.0 Format abonnieren"
href="{get_url page_id="7" action="CommentsRss20"}" />
<link rel="alternate" type="application/rss+xml"
title="Aktuelle Kommentare im Atom 1.0 Format abonnieren"
href="{get_url page_id="7" action="CommentsAtom10"}" />
Hinweis: Das Beispiel geht davon aus,
das die Blogseite die ID |
Der Seitentyp ist prädestiniert um terminliche Inhalte wie Veranstaltungen, Seminare oder sonstige Events, die an ein oder über mehrere Tage stattfinden abzubilden. Wie bei Blogseiten sind hier valide RSS 2.0 oder/und Atom 1.0 Feeds verfügbar.
Vorlagentyp:
{* Wieviel Event-Beiträge sollen pro Seite angezeigt werden? *}
{assign var="LIMIT" value="2"}
{* Eventbeiträge nachladen *}
{select_named ns="Content" class="EventPosting" method="selectEventPostings" var="event_postings" order_macro="DATE_ADDED:DESC" page=$page.id tag_word_url=$request.tag start=$request.start limit=$LIMIT draft=0}
{* Foreach Schleife zum Auslesen der Eventeinträge *}
{foreach from=$event_postings item="_event_posting"}
<h2 id="{$_event_posting.title_url}">{$_event_posting.title}</h2>
<p>{$_event_posting.date_start|date_format:"%d.%m.%Y"}, {$_event_posting.date_start_time_start|date_format:"%H.%M"} Uhr {if !empty( $_event_posting.date_end)} - {$_event_posting.date_end|date_format:"%d.%m.%Y"} , {$_event_posting.date_end_time_start|date_format:"%H.%M"} Uhr{/if}</p>
{* Inhalt *}
{$_event_posting.content}
{* Wenn der Beitrag verschlagwortet wurde, werden hier die Tags gelistet *}
{if $_event_posting.tag_count > 0}
<p>Abgelegt unter:</p>
<ul>
{foreach from=$_event_posting.tag_array|unserialize item=_tag}
{if $_tag.word_url == $request.tag}
<li>{$_tag.word}</li>
{else}
<li><a href="{get_url page_id=$page.id action=Index tag_word=$_tag.word_url}">{$_tag.word}</a></li>
{/if}
{/foreach}
</ul>
{/if}
{* Ende der Foreach Schleife zum Auslesen der Eventeinträge *}
{/foreach}
{* Pager *}
{select_named ns="Content" class="EventPosting" method="countEventPostings"
var="event_posting_count" tag_word_url=$request.tag draft=0 page=$page.id}
{page_index var="page_index" item_count=$event_posting_count interval=$LIMIT}
{if !empty($page_index) && $event_posting_count > $LIMIT}
<ul>
{foreach from=$page_index item=_item}
{if $_item.self == $request.start}
<li>{$_item.page}</li>
{else}
<li><a href="{get_url page_id=$page.id action=Index tag_word=$request.tag start=$_item.self}">{$_item.page}</a></li>
{/if}
{/foreach}
</ul>
{/if}
{* EOF Pager *}
Vorlagentyp:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>%%%TITEL-DER-IM-NEWSREADER-ANGEZEIGT-WIRD%%%</title>
<link>%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id}</link>
<description/>
<language>de-DE</language>
<generator>Welcompose 0.9.4 (http://welcompose.de/)</generator>
<atom:link href="%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action="Rss20"}" rel="self" type="application/rss+xml" />
{select_named ns="Content" class="EventPosting" method="selectEventPostings" var="event_postings" page=$page.id order_macro="DATE_ADDED:DESC" draft=0}
{foreach from=$event_postings item=_event_posting}
<item>
<title>{$_event_posting.title|escape:"html"}</title>
<link>%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action=Index}#{$_event_posting.title_url}</link>
<description>
{$_event_posting.content|escape:"html"}
</description>
<pubDate>{$_event_posting.date_added|date_rss20}</pubDate>
<guid>%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id}#{$_event_posting.title_url}</guid>
</item>
{/foreach}
</channel>
</rss>
|
Anmerkung |
|---|---|
|
Alle Angaben, die durch die Zeichenfolge %%% umschlossen sind, müssen an Ihre jeweilige Umgebung angepasst und inklusive der Zeichenfolge ersetzt werden. Aus %%%IHRE-DOMAIN.TLD%%% wird beispielsweise welcompose.de. |
Vorlagentyp:
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>%%%TITEL-DER-IM-NEWSREADER-ANGEZEIGT-WIRD%%%</title>
<link href="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action="Atom10"}" rel="self" title="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action="Atom10"}" type="application/atom+xml" />
<generator uri="http://www.welcompose.de/" version="0.9.0">Welcompose</generator>
<id>http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id}</id>
<updated>{$_date.date_modified|date_atom}</updated>
{select_named ns="Content" class="EventPosting" method="selectEventPostings" var="event_postings" page=$page.id draft=0 tag_word_url=$request.tag order_macro="DATE_ADDED:DESC"}
{foreach from=$event_postings item=_event_posting}
<entry>
<title type="html">{$_event_posting.title|escape:"html"}</title>
<link href="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action=Item posting_id=$_event_posting.id}"/>
<published>{$_event_posting.date_added|date_atom}</published>
<updated>{$_event_posting.date_modified|date_atom}</updated>
<content type="xhtml" xml:lang="de" xml:base="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id}">
<div xmlns="http://www.w3.org/1999/xhtml">
{$_event_posting.content|escape:"html"}
</div>
</content>
<id>http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action=Item posting_id=$_event_posting.id}</id>
<author>
<name>{$_event_posting.user_name}</name>
</author>
</entry>
{/foreach}
</feed>
|
Anmerkung |
|---|---|
|
Auch hier gilt: Alle Angaben, die durch die Zeichenfolge %%% umschlossen sind, müssen an Ihre jeweilige Umgebung angepasst und inklusive der Zeichenfolge ersetzt werden. Aus %%%IHRE-DOMAIN.TLD%%% wird beispielsweise welcompose.de. |
|
Tipp |
|---|---|
|
Der Quelltext und die Auswahl der RSS/Atom Tags in den Beispielen sind Vorschläge unsererseits. Mehr zu möglichen Angaben/Tags, die in der Vorlagengestaltung nutzbar sind, erhalten sie unter http://www.rssboard.org/rss-specification und http://www.atompub.org/rfc4287.html |
|
Tipp |
|---|---|
|
Fügen Sie zwischen <head> und </head> Ihrer Vorlage entsprechende Link-Tags ein, registrieren Browser automatisch das Vorhandensein von Feed-Links und symbolisieren dies zumeist mit einem Icon in der Status- oder Adressleiste.
<link rel="alternate" type="application/rss+xml"
title="Aktuelle Events im RSS 2.0 Format abonnieren"
href="{get_url page_id="7" action="Rss20"}" />
<link rel="alternate" type="application/rss+xml"
title="Aktuelle Events im Atom 1.0 Format abonnieren"
href="{get_url page_id="7" action="Atom10"}" />
<link rel="alternate" type="application/rss+xml"
Hinweis: Das Beispiel geht davon aus,
das die Eventseite die ID |
Die Anwendung des Seitentyps bietet sich immer dann an, wenn die Möglicheiten der Abschnitt 12.1.6, „Einfache Formulare (WCOM_SIMPLE_FORM)“ nicht komplex genug sind. Mit diesem Seitentyp können Sie individuelle Formulare gestalten. Eine Vielzahl an Feldtypen stehen hierzu zur Verfügung.
Vorlagentyp:
{* Inhalte der Generator Form *}
{$generator_form.content}
{* Validierungsfehler ausgeben, wenn vorhanden *}
{if !empty($form.errors)}
<ul>
{foreach from=$form.errors item="error"}
<li>{$error}</li>
{/foreach}
</ul>
{/if}
{* EOF Validierungsfehler ausgeben, wenn vorhanden *}
{* Wenn das Formular erfolgreich abgeschickt wurde *}
{if $session.form_submitted == 1}
<h2>Danke für Ihre Anfrage</h2>
{/if}
<form {$form.attributes}>
{$form.javascript}
<fieldset id="formular">
{$form.hidden}
{* Beispiele für die Definition von Formularfeldern *}
{* Ein Inputfeld vom Typ 'text' mit der Bezeichnung 'name' *}
{* Diese Syntax beschreibt gleichzeitig auch die Standardangabe für ein Formularfeld *}
<label for="generator_form_name">{$form.name.label}</label>{$form.name.html}<br />
... weitere Formularfelder ...
{* EOF Beispiele *}
{* Wenn ein numerische Captcha genutzt werden soll *}
{if $generator_form.use_captcha == 'numeral'}
<p>Zur Spamvermeidung nutzt das Formular ein sogenanntes
<a title="Externer Link zu Wikipedia - Begriffserklärung" href="http://de.wikipedia.org/wiki/Captcha">Captcha</a>. Bitte tragen Sie das Ergebnis der Rechenaufgabe in das nachfolgende Feld ein (Beispiele: <em>max(3,5)</em> = <strong>5</strong>; <em>min(2,8)</em> = <strong>2</strong>; <em>3 + 5</em> = <strong>8</strong>).</p>
<p><strong>{$captcha}</strong></p>
<label for="generator_form_captcha"> </label>{$form._qf_captcha.html}<br />
{* Wenn ein Bild-Captcha genutzt werden soll *}
{elseif $generator_form.use_captcha == 'image'}
<p>Zur Spamvermeidung nutzt das Formular ein sogenanntes <a title="Externer Link zu Wikipedia - Begriffserklärung"
href="http://de.wikipedia.org/wiki/Captcha">Captcha</a>. Bitte tragen Sie die Zeichenfolge in das nachfolgende Feld ein.</p>
<p><img src="{$captcha}" width="200" height="60" alt="Captcha" /></p>
<label for="generator_form_captcha">{$form._qf_captcha.label}</label>{$form._qf_captcha.html}<br />
{/if}
{$form.submit.html}
</fieldset>
</form>
Um die E-Mails für diesen Seitentyp zu versenden, wird eine korrespondierende E-Mail Vorlage benötigt.
Vorlagentyp:
{$form_data.now|date_format:"%a, %d.%m.%Y, %H:%M"}
{$form_data.<<<name-des-formularfeldes>>>}
{* Ein Beispieleintrag mit dem Feldnamen email *}
{$form_data.email}
Tabelle 12.1. Liste der Feldtypen
| Feld-Typ Name | Beschreibung | Seiten-Typ | URL-Action |
|---|---|---|---|
| blog_archive_month | Monatsarchiv einer Blog-Seite | WCOM_BLOG | ArchiveMonth |
Bis auf die weiter unten aufgeführten Ausnahmen, folgen alle Angaben der Formularfelder in den Seitenvorlagen den hier aufgelisteten Standard.
<label for="generator_form_<<<name-des-formularfeldes>>>">{$form.<<name-des-formularfeldes>>>.label}</label>{$form.<<name-des-formularfeldes>>>.html}
{* Ein Beispieleintrag mit dem Feldnamen email *}
<label for="generator_form_email">{$form.email.label}</label>{$form.email.html}
Für die Feldtypen select, submit und radio gelten einige Besonderheiten in der inhaltlichen Angabe der Werte. Bei Formularfeldern vom Typ radio und submit ist zudem eine von Standard abweichende Syntax in der Seitenvorlage erforderlich.
Inhaltliche Seite: Angaben für den Formulartyp select
Geben Sie hier den Text an, der für das Auswahlmenu angezeigt werden soll. Bsp. Auswahl
Geben Sie hier den Namen für das Formularfeld an. Dieser Name wird als Angabe in den Seitenvorlagen genutzt. Bsp. auswahl
Um mehrere Werte in einem Auswahlmenu anzugeben, geben Sie die einzelnen Werte bitte hintereinander und trennen diese jeweils mit einem Kommata. Bsp. Wert1,Wert2,Wert3
Seitenvorlage: Angabe eines Input-Feldes vom Typ submit
{* Ein Inputfeld vom Typ 'submit' mit dem Namen 'senden' *}
{$form.senden.html}
Inhaltliche Seite: Angaben für den Formulartyp submit
Geben Sie hier den Text an, der für den Submit-Button angezeigt werden soll. Bsp. Senden
Geben Sie hier den Namen für das Formularfeld an. Dieser Name wird als Angabe in den Seitenvorlagen genutzt. Bsp. senden
Geben Sie hier den gleichen Text an, den Sie zuvor für das Feld Beschriftung genutzt haben. Bsp. Senden
Seitenvorlage: Angabe eines Input-Feldes vom Typ radio
{* Ein Inputfeld vom Typ 'radio' mit dem Namen 'radiogruppe' *}
{foreach from=$form.radiogruppe item=_radiogruppe}
{$_radiogruppe.html}
{/foreach}
Inhaltliche Seite: Angaben für den Formulartyp radio
Geben Sie hier den Text an, der für die Radio Felder angezeigt werden soll. Bsp. Radiogruppe
Geben Sie hier den Namen für das Formularfeld an. Dieser Name wird als Angabe in den Seitenvorlagen genutzt. Bsp. radiogruppe
Für jeden gewünschten Radio-Buttons geben Sie die einzelnen Werte bitte hintereinander und trennen diese jeweils mit einem Semikolon. Bsp. Wert1;Wert2;Wert3
Der Seitentyp bietet dem Anwender die Möglichkeit, ein einfaches Gästebuch nativ in die Webseiten zu integrieren.
Vorlagentyp:
{* Inhalte der Gästebuchseite *}
{$simple_guestbook.content}
{* Wieviel Kommentare sollen auf einer Seite angezeigt werden? *}
{assign var="LIMIT" value="8"}
{* Termineinträge nachladen *}
{select_named ns="Content" class="SimpleGuestbookEntry" method="selectSimpleGuestbookEntries" var="guestbook_entries" order_macro="DATE_ADDED:DESC" book=$page.id start=$request.start limit=$LIMIT}
{* Einträge ausgeben *}
{foreach from=$guestbook_entries item="_entry"}
{$_entry.name}
{$_entry.email}
{$_entry.subject}
{$_entry.content}
{/foreach}
{* EOF Einträge ausgeben *}
{* Pager *}
{select_named ns="Content" class="SimpleGuestbookEntry" method="countSimpleGuestbookEntries" var="entries_count" book=$page.id}
{page_index var="page_index" item_count=$entries_count interval=$LIMIT}
{if !empty($page_index) && $entries_count > $LIMIT}
<ul>
{foreach from=$page_index item=_item}
{if $_item.self == $request.start}
<li>{$_item.page}</li>
{else}
<li><a href="{get_url page_id=$page.id action=Index start=$_item.self}">{$_item.page}</a></li>
{/if}
{/foreach}
</ul>
{/if}
{* EOF Pager *}
{* Wenn Einträge erlaubt sind, zeige das Formular an *}
{if $simple_guestbook.allow_entry == 1}
{* Textkonverter auslesen anhand der Grundeinstellungen des Gästebuchs. Es werden die mitgelieferten
Textkonverter berücksichtigt. *}
{select_simple ns="Application" class="Textconverter" method="selectTextConverter" var="_text_converter" id=$simple_guestbook.text_converter}
{if $_text_converter.internal_name == 'textile'}<p>Bitte füllen Sie alle Felder mit einem * aus. HTML ist nicht erlaubt, dafür <a href="http://textism.com/tools/textile/">Textile</a>
{elseif $_text_converter.internal_name == 'markdown'}<p>Bitte füllen Sie alle Felder mit einem * aus. HTML ist nicht erlaubt, dafür <a href="http://daringfireball.net/projects/markdown/syntax">Markdown</a>
{elseif $_text_converter.internal_name == 'xhtml'}<p>Bitte füllen Sie alle Felder mit einem * aus. HTML ist nicht erlaubt.{/if}
</p>
{* Validierungsfehler ausgeben, wenn vorhanden *}
{if !empty($form.errors)}
<ul>
{foreach from=$form.errors item="error"}
<li>{$error}</li>
{/foreach}
</ul>
{/if}
{* EOF Validierungsfehler ausgeben, wenn vorhanden *}
{* Wenn das Formular erfolgreich abgeschickt wurde *}
{if $session.form_submitted == 1}
<h2>Danke für Ihren Eintrag!</h2>
{/if}
<form {$form.attributes}>
{$form.javascript}
<fieldset>
{$form.hidden}
<label for="guestbook_entry_name">{$form.name.label}</label> {$form.name.html}<br />
<label for="guestbook_entry_email">{$form.email.label}</label> {$form.email.html}<br />
<label for="guestbook_entry_subject">{$form.subject.label}</label> {$form.subject.html}<br />
<label for="guestbook_entry_content">{$form.content.label}</label> {$form.content.html}<br />
{* Wenn ein numerische Captcha genutzt werden soll *}
{if $simple_guestbook.use_captcha == 'numeral'}
<p>Zur Spamvermeidung nutzt das Formular ein sogenanntes <a title="Externer Link zu Wikipedia - Begriffserklärung" href="http://de.wikipedia.org/wiki/Captcha">Captcha</a>. Bitte tragen Sie das Ergebnis der Rechenaufgabe in das nachfolgende Feld ein (Beispiele: <em>max(3,5)</em> = <strong>5</strong>; <em>min(2,8)</em> = <strong>2</strong>; <em>3 + 5</em> = <strong>8</strong>).</p>
<p><strong>{$captcha}</strong></p>
<label for="simple_form_captcha"> </label>{$form._qf_captcha.html}<br />
{* Wenn ein Bild-Captcha genutzt werden soll *}
{elseif $simple_guestbook.use_captcha == 'image'}
<p>Zur Spamvermeidung nutzt das Formular ein sogenanntes <a title="Externer Link zu Wikipedia - Begriffserklärung"
href="http://de.wikipedia.org/wiki/Captcha">Captcha</a>. Bitte tragen Sie die Zeichenfolge in das nachfolgende Feld ein.</p>
<p><img src="{$captcha}" width="200" height="60" alt="Captcha" /></p>
<label for="simple_form_captcha">{$form._qf_captcha.label}</label>{$form._qf_captcha.html}<br />
{/if}
{$form.submit.html}
</fieldset>
</form>
{/if}
{* EOF Wenn Einträge erlaubt sind, zeige das Formular an *}
Ist auf inhaltlichen Seite des Gästebuchs die Option aktiviert, wird eine Seitenvorlage zum Versenden der E-Mail benötigt.
Vorlagentyp:
{$form_data.book} ({$form_data.now|date_format:"%a, %d.%m.%Y, %H:%M"})
{$form_data.name}
{$form_data.email}
{$form_data.subject}
{$form_data.content}
Der Seitentyp ist bis Version 0.9.2 die bevorzugte Wahl gewesen, um Termine und Verwandtes auf einer Seite abzubilden.
|
Warnung |
|---|---|
|
Der Einsatz diesen Seitentyps wird ab Welcompose Version 0.9.4 nicht mehr empfohlen! Stattdessen sollten Sie den mit der o.g. Version eingeführten Seitentyp (s. Abschnitt 12.1.2, „Termine (WCOM_EVENT)“) nutzen, um termingebundene Inhalte abzubilden. Der Seitentyp WCOM_SIMPLE_DATE wird nicht mehr weiterentwickelt. |
Vorlagentyp:
{* Wieviel Termine sollen auf einer Seite angezeigt werden? *}
{assign var="LIMIT" value="8"}
{select_named ns="Content" class="SimpleDate" method="selectSimpleDates" var="dates" order_macro="DATE_START" page=$page.id start=$request.start limit=$LIMIT draft=0}
{* Termineinträge ausgeben *}
{* In diesem Beispiel wird der Text 'KARTEN NUR NOCH AN DER ABENDKASSE' alternativ dann angzeigt, wenn das jeweilige Feld 'Verweis' einen Eintrag hat UND die korrespondierende Checkbox 'Ausverkauft' aktiv ist *}
{foreach from=$dates item="_date"}
<h3>{$_date.date_start|date_format:"%a, %d.%m.%Y, %H:%M"}{if !empty($_date.date_end)} - {$_date.date_end|date_format:"%a, %d.%m.%Y, %H:%M"}{/if} <a id="{$_date.id}"></a></h3>
<ul>
<li>{$_date.location}</li>
{if !empty($_date.link_1)}<li>{if $_date.sold_out_1 == '1'}KARTEN NUR NOCH AN DER ABENDKASSE{else}<a href="{$_date.link_1}">Tickets</a>{/if}</li>{/if}
{if !empty($_date.link_2)}<li>{if $_date.sold_out_2 == '1'}KARTEN NUR NOCH AN DER ABENDKASSE{else}<a href="{$_date.link_2}">Tickets</a>{/if}</li>{/if}
{if !empty($_date.link_3)}<li>{if $_date.sold_out_3 == '1'}KARTEN NUR NOCH AN DER ABENDKASSE{else}<a href="{$_date.link_3}">Tickets</a>{/if}</li>{/if}
</ul>
{/foreach}
{* EOF Termineinträge ausgeben *}
{* Pager *}
{select_named ns="Content" class="SimpleDate" method="countSimpleDates" var="dates_count" page=$page.id}
{page_index var="page_index" item_count=$dates_count interval=$LIMIT}
{if !empty($page_index) && $dates_count > $LIMIT}
<ul>
{foreach from=$page_index item=_item}
{if $_item.self == $request.start}
<li>{$_item.page}</li>
{else}
<li><a href="{get_url page_id=$page.id action=Index start=$_item.self}">{$_item.page}</a></li>
{/if}
{/foreach}
</ul>
{/if}
{* EOF Pager *}
Vorlagentyp:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>%%%TITEL-DER-IM-NEWSREADER-ANGEZEIGT-WIRD%%%</title>
<link>http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id}</link>
<description/>
<language>de-DE</language>
<generator>Welcompose 0.9.0 (http://welcompose.de/)</generator>
<atom:link href="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action="Rss20"}" rel="self" type="application/rss+xml" />
{select_named ns="Content" class="SimpleDate" method="selectSimpleDates" var="dates" page=$page.id order_macro="DATE_START" draft=0}
{foreach from=$dates item=_date}
<item>
<title>{$_date.date_start|date_format:"%a, %d.%m.%Y, %H:%M Uhr"}, {$_date.location|escape:"html"}</title>
<link>http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id}</link>
<description>
{* Bitte entfernen Sie im realen Einsatz das Leerzeichen zwischen '<' und '![CDATA[' sowie diese Kommentarzeile *}
< ![CDATA[
<ul>
{if !empty($_date.link_1)}<li>{if $_date.sold_out_1 == '1'}%%%KARTEN NUR NOCH AN DER ABENDKASSE%%%{else}<a href="{$_date.link_1}">Tickets</a>{/if}</li>{/if}
{if !empty($_date.link_2)}<li>{if $_date.sold_out_2 == '1'}%%%KARTEN NUR NOCH AN DER ABENDKASSE%%%{else}<a href="{$_date.link_2}">Tickets</a>{/if}</li>{/if}
{if !empty($_date.link_3)}<li>{if $_date.sold_out_3 == '1'}%%%KARTEN NUR NOCH AN DER ABENDKASSE%%%{else}<a href="{$_date.link_3}">Tickets</a>{/if}</li>{/if}
</ul>
{* Bitte entfernen Sie im realen Einsatz das Leerzeichen zwischen ']]' und '>' sowie diese Kommentarzeile *}
]] >
</description>
<pubDate>{$_date.date_added|date_rss20}</pubDate>
<guid isPermaLink="false">tag:%%%IHRE-DOMAIN.TLD%%%,{$_date.date_added|date_format:"%Y-%m-%d"}:{$_date.id}</guid>
</item>
{/foreach}
</channel>
</rss>
|
Anmerkung |
|---|---|
|
Alle Angaben, die durch die Zeichenfolge %%% umschlossen sind, müssen an Ihre jeweilige Umgebung angepasst und inklusive der Zeichenfolge ersetzt werden. Aus %%%IHRE-DOMAIN.TLD%%% wird beispielsweise welcompose.de. |
Vorlagentyp:
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>%%%TITEL-DER-IM-NEWSREADER-ANGEZEIGT-WIRD%%%</title>
<link href="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action="Atom10"}" rel="self" title="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id action="Atom10"}" type="application/atom+xml" />
<generator uri="http://www.welcompose.de/" version="0.9.0">Welcompose</generator>
<id>http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id}</id>
<updated>{$_date.date_modified|date_atom}</updated>
{select_named ns="Content" class="SimpleDate" method="selectSimpleDates" var="dates" page=$page.id draft=0 order_macro="DATE_START"}
{foreach from=$dates item=_date}
<entry>
<title type="html">{$_date.date_start|date_format:"%a, %d.%m.%Y, %H:%M Uhr"}, {$_date.location|escape:"html"}</title>
<link href="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id}"/>
<published>{$_date.date_added|date_atom}</published>
<updated>{$_date.date_modified|date_atom}</updated>
<content type="xhtml" xml:lang="de" xml:base="http://%%%IHRE-DOMAIN.TLD%%%{get_url page_id=$page.id}">
<div xmlns="http://www.w3.org/1999/xhtml">
<ul>
{if !empty($_date.link_1)}<li>{if $_date.sold_out_1 == '1'}%%%KARTEN NUR NOCH AN DER ABENDKASSE%%%{else}<a href="{$_date.link_1}">Tickets</a>{/if}</li>{/if}
{if !empty($_date.link_2)}<li>{if $_date.sold_out_2 == '1'}%%%KARTEN NUR NOCH AN DER ABENDKASSE%%%{else}<a href="{$_date.link_2}">Tickets</a>{/if}</li>{/if}
{if !empty($_date.link_3)}<li>{if $_date.sold_out_3 == '1'}%%%KARTEN NUR NOCH AN DER ABENDKASSE%%%{else}<a href="{$_date.link_3}">Tickets</a>{/if}</li>{/if}
</ul>
</div>
</content>
<id>tag:%%%IHRE-DOMAIN.TLD%%%,{$_date.date_added|date_format:"%Y-%m-%d"}:{$_date.id}</id>
<author><name>{$_date.user_name}</name></author>
</entry>
{/foreach}
</feed>
|
Anmerkung |
|---|---|
|
Auch hier gilt: Alle Angaben, die durch die Zeichenfolge %%% umschlossen sind, müssen an Ihre jeweilige Umgebung angepasst und inklusive der Zeichenfolge ersetzt werden. Aus %%%IHRE-DOMAIN.TLD%%% wird beispielsweise welcompose.de. |
|
Tipp |
|---|---|
|
Der Quelltext und die Auswahl der RSS/Atom Tags in den Beispielen sind Vorschläge unsererseits. Mehr zu möglichen Angaben/Tags, die in der Vorlagengestaltung nutzbar sind, erhalten sie unter http://www.rssboard.org/rss-specification und http://www.atompub.org/rfc4287.html |
Formulare des Seitentyps bieten zwei vorkonfiguierte Formulare an, die sich nur in den zur Verfügung stehenden Formularfelder unterscheiden. Eine große Anzahl an Anwendungen sind durch diese beiden Formulartypen bereits abgedeckt. Zur Verfügung stehen die Formulartypen und .
Zur Verfügung stehende Formularfelder der beiden Formulartypen:
Name, E-Mail, Homepage, Nachricht
Anrede, Vorname, Nachname, Adresse, Ort, Rückruf, Telefon, E-Mail, Nachricht
Vorlagentyp:
{* Inhalte der Simple Form *}
{$simple_form.content}
{* Validierungsfehler ausgeben, wenn vorhanden *}
{if !empty($form.errors)}
<ul>
{foreach from=$form.errors item="error"}
<li>{$error}</li>
{/foreach}
</ul>
{/if}
{* EOF Validierungsfehler ausgeben, wenn vorhanden *}
{* Wenn das Formular erfolgreich abgeschickt wurde *}
{if $session.form_submitted == 1}
<h2>Danke für Ihre Anfrage</h2>
{/if}
<form {$form.attributes}>
{$form.javascript}
<fieldset id="formular">
{$form.hidden}
{* Zur Verfügung stehende Formularfelder, wenn als Formulartyp 'Privates Formular' ausgewählt wurde *}
<label for="simple_form_name">{$form.name.label}</label>{$form.name.html}<br />
<label for="simple_form_email">{$form.email.label}</label>{$form.email.html}<br />
<label for="simple_form_homepage">{$form.homepage.label}</label> {$form.homepage.html}<br />
<label for="simple_form_message">{$form.message.label}</label>{$form.message.html}<br />
{* Wenn ein numerische Captcha genutzt werden soll *}
{if $simple_form.use_captcha == 'numeral'}
<p>Zur Spamvermeidung nutzt das Formular ein sogenanntes
<a title="Externer Link zu Wikipedia - Begriffserklärung" href="http://de.wikipedia.org/wiki/Captcha">Captcha</a>. Bitte tragen Sie das Ergebnis der Rechenaufgabe in das nachfolgende Feld ein (Beispiele: <em>max(3,5)</em> = <strong>5</strong>; <em>min(2,8)</em> = <strong>2</strong>; <em>3 + 5</em> = <strong>8</strong>).</p>
<p><strong>{$captcha}</strong></p>
<label for="simple_form_captcha"> </label>{$form._qf_captcha.html}<br />
{* Wenn ein Bild-Captcha genutzt werden soll *}
{elseif $simple_form.use_captcha == 'image'}
<p>Zur Spamvermeidung nutzt das Formular ein sogenanntes <a title="Externer Link zu Wikipedia - Begriffserklärung"
href="http://de.wikipedia.org/wiki/Captcha">Captcha</a>. Bitte tragen Sie die Zeichenfolge in das nachfolgende Feld ein.</p>
<p><img src="{$captcha}" width="200" height="60" alt="Captcha" /></p>
<label for="simple_form_captcha">{$form._qf_captcha.label}</label>{$form._qf_captcha.html}<br />
{/if}
{$form.submit.html}
</fieldset>
</form>
Um die E-Mail des Typs Privates Formular zu versenden, wird eine korrespondierende E-Mail Vorlage benötigt.
Vorlagentyp:
{$form_data.now|date_format:"%a, %d.%m.%Y, %H:%M"}
{$form_data.name}
{$form_data.email}
{$form_data.homepage}
{$form_data.message}
Vorlagentyp:
{* Inhalte der Simple Form *}
{$simple_form.content}
{* Validierungsfehler ausgeben, wenn vorhanden *}
{if !empty($form.errors)}
<ul>
{foreach from=$form.errors item="error"}
<li>{$error}</li>
{/foreach}
</ul>
{/if}
{* EOF Validierungsfehler ausgeben, wenn vorhanden *}
{* Wenn das Formular erfolgreich abgeschickt wurde *}
{if $session.form_submitted == 1}
<h2>Danke für Ihre Anfrage</h2>
{/if}
<form {$form.attributes}>
{$form.javascript}
<fieldset id="formular">
{$form.hidden}
{* Zur Verfügung stehende Formularfelder, wenn als Formulartyp 'Geschäftliches Formular' ausgewählt wurde *}
<label for="simple_form_salutation">{$form.salutation.label}</label>{$form.salutation.html}<br />
<label for="simple_form_first_name">{$form.first_name.label}</label>{$form.first_name.html}<br />
<label for="simple_form_last_name">{$form.last_name.label}</label>{$form.last_name.html}<br />
<label for="simple_form_address">{$form.address.label}</label>{$form.address.html}<br />
<label for="simple_form_location">{$form.location.label}</label>{$form.location.html}<br />
<label for="simple_form_call_back">{$form.call_back.label}</label>{$form.call_back.html}<br />
<label for="simple_form_phone">{$form.phone.label}</label>{$form.phone.html}<br />
<label for="simple_form_email">{$form.email.label}</label>{$form.email.html}<br />
<label for="simple_form_message">{$form.message.label}</label>{$form.message.html}<br />
{* Wenn ein numerische Captcha genutzt werden soll *}
{if $simple_form.use_captcha == 'numeral'}
<p>Zur Spamvermeidung nutzt das Formular ein sogenanntes
<a title="Externer Link zu Wikipedia - Begriffserklärung" href="http://de.wikipedia.org/wiki/Captcha">Captcha</a>. Bitte tragen Sie das Ergebnis der Rechenaufgabe in das nachfolgende Feld ein (Beispiele: <em>max(3,5)</em> = <strong>5</strong>; <em>min(2,8)</em> = <strong>2</strong>; <em>3 + 5</em> = <strong>8</strong>).</p>
<p><strong>{$captcha}</strong></p>
<label for="simple_form_captcha"> </label>{$form._qf_captcha.html}<br />
{* Wenn ein Bild-Captcha genutzt werden soll *}
{elseif $simple_form.use_captcha == 'image'}
<p>Zur Spamvermeidung nutzt das Formular ein sogenanntes <a title="Externer Link zu Wikipedia - Begriffserklärung"
href="http://de.wikipedia.org/wiki/Captcha">Captcha</a>. Bitte tragen Sie die Zeichenfolge in das nachfolgende Feld ein.</p>
<p><img src="{$captcha}" width="200" height="60" alt="Captcha" /></p>
<label for="simple_form_captcha">{$form._qf_captcha.label}</label>{$form._qf_captcha.html}<br />
{/if}
{$form.submit.html}
</fieldset>
</form>
Um die E-Mail des Typs Geschäftliches Formular zu versenden, wird eine korrespondierende E-Mail Vorlage benötigt.
Vorlagentyp:
{$form_data.now|date_format:"%a, %d.%m.%Y, %H:%M"}
{$form_data.salutation}
{$form_data.first_name}
{$form_data.last_name}
{$form_data.address}
{$form_data.location}
{$form_data.call_back}
{$form_data.phone}
{$form_data.email}
{$form_data.message}
Der Seitentyp ist sicherlich der am häufigsten genutzte Typ in der Erstellung von Webseiten. Während die sonstigen Seitentypen dezidierten Einsatzzwecken dienen und darum spezielle Variablen bereitstellen, liegt der Schwerpunkt bei einer inhaltlichen Seite, die dem Seitentyp zugeordnet wird, ganz auf die Gestaltung im Inhaltsbereich.
Vorlagentyp:
{* Name der Seite (Name, der für die Navigation verwendet wird) *}
{$simple_page.page_name}
{* Titel der Simple Page (Inhaltsfeld) *}
{$simple_page.title}
{* Inhalte der Simple Page *}
{$simple_page.content}
{* Um herauszufinden, welche Variablen für den Seitenyp WCOM_SIMPLE_PAGE
zur Verfügung stehen, nutzen Sie bitte die Smarty-Debug Konsole. Nach
Aufruf der unten stehenden Anweisung, speichern Sie die Vorlage und rufen
die Ausgabe-Seite in Ihrem Browser auf. Da die Konsole als Popup definiert
ist, achten Sie bitte auf mgl. Sperren in ihrem Browser. *}
{* Smarty-Debug Konsole aufrufen *}
{debug}
Weitere, detailierte Informationen zur Nutzung der Smarty Debug Konsole finden Sie unter Abschnitt 7.3.3.2, „Vorhandene Daten auslesen“.
Der Seitentyp benötigt keine dezidierte Seitenvorlage. Er dient zu Referenzierung von absoluten oder/und externen HTTP Adressen. Fragen zu diesen Seitentyp beantworten wir gerne im Forum von Welcompose.