Mit diesem Tag können die Stichworte zu einem Blogeintrag ausgegeben werden bzw. eine Wolke mit allen vorhandenen Stichworten.
Folgender Code gibt gibt eine Liste mit maximal 70 Stichworten aus, von denen jedes mindestens 3 mal verwendet wurde
<ty:blog mode="printkeywords" all="true" limit="70" mincount="3"> <span style="font-size:<ty-blog:keywordfontsize/>px"><ty-blog:keyword/></span> </ty:blog>
Mit diesem Code können alle Stichworte zum Blogeintrag mit der ID 23 ausgegeben werden
<ty:blog mode="printkeywords"><ty-blog:bid>23</ty-blog:bid><ty-blog:keyword/></ty:blog>
Dieses Tag ist notwendig um die Blogeinträge mit <ty:db> geziehlt auszugeben. Es ermöglicht eine Ausgabe nach Stichworten, Suchbegriffen und Kategorien. Es sollte alle <ty:db> Abfragen, die etwas mit dem Blog zu tun haben, umschließen.
Eine Ausgabe der Blogeinträge kann wie folgt realisiert werden, dabei sind alle verfügbar Filter und Suchfunktionen implementiert
<ty:blog mode="replacestuff"> <ty:db table="tyBlogEntries" order="datetime DESC" pages="true" limit="10" rel="<ty-blog-hidden/> <ty-blog-and_get_month/> <ty-blog-and_get_category/> <ty-blog-and_get_keyword/> <ty-blog-search/>" > <ty-db:colvalue col="heading"> </ty:db> </ty:blog>
<ty:blog mode="replacestuff"> <ty:db table="tyBlogEntries" order="datetime DESC" pages="true" limit="10" rel="<ty-blog-allconditions/>" > <ty-db:colvalue col="heading"> </ty:db> </ty:blog>
Seit dem 10.06.08 verwendet das Blog Mailvorlagen und versendet die Mails nicht mehr intern im Textmodus. Es kommen 3 Mailvorlagen zum Einsatz, eine bei neuem Blogeintrag, eine bei neuem Kommentar und eine, wenn ein Blogeintrag auf den Status „Zur Korrektur“ gesetzt wird. Empfänger, Absender und Betreff werden direkt an der Mailvorlage eingestellt.
In der Mailvorlage können einige Ersetzungen verwendet werden um die E-Mail dynamisch mit dem Inhalt des Blogeintrags/Kommentar zu füllen
Bei einem Blogeintrag sind folgende Ersetzungen verfügbar:
Bei einem Kommentar sind zusätzlich zu diesen Ersetzungen noch folgende Ersetzungen möglich:
Achtung: Sollten nach dem Schreiben eines Blogeintrags/Kommentars auf der nachfolgenden Seite die Tags nicht geparst werden, so muss das include_once bei prepend und append durch ein include ersetzt werden. Das ist notwendig, da die prepend bereits beim Versenden der Mails eingebunden wird.
Die Einstellungen für die Feeds können dynamisch im Backend vorgenommen werden, wenn im Feed die folgenden Tags verwendet werden.
Value kann folgende Werte annehmen
Folgender Code ist der allgemeine RSS Feed, der eigentlich immer verwendet werden kann.
<?php
define ("NO_REQUESTHANDLER","1");
include_once('../tycon/prepend.php');
header("Content-Type: text/xml; charset=ISO-8859-1");
?>
<?php echo '<?xml version="1.0" encoding="ISO-8859-1"?>'; ?>
<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<channel>
<title><ty:blog mode="newsfeed" value="title"/></title>
<link><ty:blog mode="newsfeed" value="url"/><ty:blog mode="get" page="start"/></link>
<description><![CDATA[<ty:blog mode="newsfeed" value="description"/>]]></description>
<pubDate><ty:blog mode="newsfeed" value="pubdateRSS"/></pubDate>
<ty:db table="tyBlogEntries" order="id DESC" rel="hidden = 0 <?php if ($_REQUEST[category]) echo "AND category = '$category'"; ?>" limit="50">
<item>
<title><![CDATA[<ty-db:colvalue col="heading" inlineEditing="false"/>]]></title>
<category><![CDATA[<ty:topicinformation key="caption" topic="<ty-db:colvalue col="category" inlineEditing="false"/>"/>]]></category>
<description>
<ty:php>
$myquery = "SELECT content FROM tyBlogEntries WHERE id = '<ty-db:colvalue col="id" inlineEditing="false"/>'";
$myresult = tyDBQuery($myquery);
$myrow = tyDBFetch($myresult);
$x = '<![CDATA['.$myrow['content'].']]>';
echo str_replace('src="/','src="<ty:blog mode="newsfeed" value="url"/>/',$x);
</ty:php>
</description>
<author><![CDATA[<ty-db:colvalue col="author" inlineEditing="false"/>]]></author>
<pubDate><ty-db:date col="datetime" format="%d %b %Y %H:%M:%S %Z" inlineEditing="false"/></pubDate>
<link><![CDATA[<ty:blog mode="newsfeed" value="url"/><ty:blog mode="get" page="detail" blogid="<ty-db:colvalue col="id" inlineEditing="false"/>" />]]></link>
</item>
</ty:db>
</channel>
</rss>
<?php
include_once('../tycon/append.php');
?>
Folgender Code ist der allgemeine Atom Feed, der eigentlich immer verwendet werden kann.
<?php
define ("NO_REQUESTHANDLER","1");
include_once('../tycon/prepend.php');
header("Content-Type: text/xml");
?>
<?php echo '<?xml version="1.0" encoding="ISO-8859-1"?>'; ?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
<title><ty:blog mode="newsfeed" value="title"/></title>
<link href="<ty:blog mode="newsfeed" value="url"/><ty:blog mode="get" page="start"/>" />
<updated><ty:blog mode="newsfeed" value="pubdateAtom"/></updated>
<ty:db table="tyBlogEntries" order="id DESC" rel="hidden = 0 <?php if ($_REQUEST[category]) echo "AND category = '$category'"; ?>" limit="50">
<entry>
<title><![CDATA[<ty-db:colvalue col="heading" inlineEditing="false"/>]]></title>
<category><![CDATA[<ty:topicinformation key="caption" topic="<ty-db:colvalue col="category" inlineEditing="false"/>"/>]]></category>
<content type="html">
<ty:php>
$myquery = "SELECT content FROM tyBlogEntries WHERE id = '<ty-db:colvalue col="id" inlineEditing="false"/>'";
$myresult = tyDBQuery($myquery);
$myrow = tyDBFetch($myresult);
$x = '<![CDATA['.$myrow['content'].']]>';
echo str_replace('src="/','src="<ty:blog mode="newsfeed" value="url"/>/',$x);
</ty:php>
</content>
<author><name><![CDATA[<ty-db:colvalue col="author" inlineEditing="false"/>]]></name></author>
<updated><ty-db:date col="datetime" format="%Y-%m-%dT%H:%M:%S+01:00" inlineEditing="false"/></updated>
<link href="<ty:blog mode="newsfeed" value="url"/><ty:blog mode="get" page="detail" blogid="<ty-db:colvalue col="id" inlineEditing="false"/>" />" />
</entry>
</ty:db>
</feed>
<?php
include_once('../tycon/append.php');
?>
Um Trackbacks zu empfangen benötigt man eine extra Datei. Der Link zur Trackback Datei kann wie folgt generiert werden
<a href="<ty:blog mode="get" page="trackback"/>?b=<ty-db:colvalue col="id" inlineEditing="false"/>">Trackbacklink</a>
Nach dem b= wird die ID des Blogeintrags erwartet, diese kann natürlich auch anders als mit ty-db übergeben werden.
Für die Ausgabe von Trackbacks stehen zwei Tags zur Verfügung
Die Trackback Datei muss im Blogsetup eingestellt werden. Sie sollte folgenden Code enthalten, wobei der Wert bei active eventuell angepasst werden muss
<?php include("../tycon/prepend.php");?>
<ty:blog mode="trackbacksallowed" bid="<?php echo ($_REQUEST["b"]);?>">
<ty:blog mode="trackback" active="0" bid="<?php echo ($_REQUEST["b"]);?>" url="<?php echo($_POST['url']); ?>" blog_name="<?php echo($_POST['blog_name']); ?>" excerpt="<?php echo($_POST['excerpt']); ?>" title="<?php echo($_POST['title']); ?>"/>
</ty:blog>
<?php $target = (tyGetUrlByTopic($tyConfig['modules']['blog']['templates']['detail'])).'&b=';
if (strpos($target,'?') === false) $target = str_replace('&b=','?b=',$target);
header('Location:'.$target.$_REQUEST["b"]);
include("../tycon/append.php"); ?>
Zum Aktivieren der Trackbacks und Kommentare wird eine extra Datei benötigt, welche im Blogsetup eingestellt werden muss. Der Link zur Aktivierung kann in einer E-Mail mit der Ersetzung {commentvalidationlink} eingefügt werden.
Zum Aktivieren von Kommentaren und Trackbacks gibt es das Tag <ty:blog mode=„activation“/>. Übergibt man den Parameter cid wird der Kommentar mit der entsprechenden ID aktiviert, beim Parameter tid der Trackback mit der entsprechenden ID. Der Parameter validation enthält einen Bestätigungscode, ohne den die Aktivierung nicht stattfinden kann.
Folgender Code kann für die Aktivierungsdatei verwendet werden. Das Beispiel hat jedoch keine Ausgabe, zeigt also nur eine weiße Seite an nach der Aktiverung.
<?php include("tyBlog_header.php"); ?>
<ty:blog mode="activation" <?php if ($_REQUEST[cid]) echo 'cid="'.$_REQUEST[cid].'"'; ?> <?php if ($_REQUEST[tid]) echo 'tid="'.$_REQUEST[tid].'"'; ?> validation="<?php echo ($_REQUEST[validation]); ?>" />
<?php include("tyBlog_footer.php"); ?>
Folgende Beispielcode kann dazu verwendet werden um einem Nutzer eine Themenauswahl für den Blognewsletter zu bieten. Der Nutzer erhält dabei entweder einen Newsletter bei allen Themen, gar keinen Newsletter oder nur bei den ausgewählten Themen.
<form method="post" action="">
<ty:siteroles mode="attribut-value" name="blog_newsletter_topics">
<input type="radio" name="<ty-siteroles:name/>" value="{none}" <ty:php>if ('<ty-siteroles:value/>' == '' || '<ty-siteroles:value/>' == '{none}') echo 'checked="checked"';</ty:php>><label>Nie</label><br/>
<input type="radio" name="<ty-siteroles:name/>" value="{all}" <ty:php>if ('<ty-siteroles:value/>' == '{all}') echo 'checked="checked"';</ty:php>><label>Immer</label><br/>
<input type="radio" name="<ty-siteroles:name/>" value="{topics}" <ty:php>if ('<ty-siteroles:value/>' == '{topics}') echo 'checked="checked"';</ty:php>><label>Bei ausgewählten Themen</label><br/>
</ty:siteroles>
<select name="newslettertopic[]" multiple="multiple">
<ty:blog mode="newslettertopics">
<option value="<ty-blog:newslettertopic/>" <ty-blog:newslettertopicselected/>><ty-blog:newslettertopiccaption/></option>
</ty:blog>
</select>
<input type="hidden" name="updatenewslettersettings" value="updatenewslettersettings"/>
<ty:blog mode="updatenewslettersettings"/>
</form>