Comments
Comments ist für die Kommentare zuständig und nimmt auch Trackbacks an. Der Aufruf ist einfach:
{execmacro="comments"}

Wobei auch noch ein Parameter möglich ist. Dieser enthält 4 Buchstaben: ctmf
Diese geben die Ausgabe an.
c: Kommentare
t: Trackbacks
m: Message
f: Formular

Will man Beispielsweise zuerst das Formular und dann die Kommentare und Trackbacks benutzt man:
{execmacro="comments" param="mfct"}
(Das m für Message gibt dem Anwender wichtige Hinweise, z. B. ob sein Kommentar gespeichert wurde und sollte nicht fehlen)

Eine weitere Möglichkeit ist die Abfrage auf einer Seite abgegebener Kommentare. Dazu benutzt man
{execmacro="comments" param="info=pos:1.2.3"}

Man enthält die Anzahl der Kommentare auf der Seite 1.2.3 zurück. Das  ist nützlich, wenn man z. B. auf der Übersichtsseite gleich die Anzahl  der Kommentare anzeigen will.

Das Modul benötigt eine ganze Reihe von Vorlagen. Ich liste diese nachfolgend auf, so wie sie hier im Blog benutzt werden.

comment/error/captcha
<a name="message"></a>
<span class="headline" style="font-size:24px;">Falscher Code. Bitte versuchen Sie es erneut.</span><br />
Diese Vorlage wird ausgegeben, wenn der CAPTCHA-Code falsch angegeben wurde.

comment/error/twice
<a name="message"></a>
<span class="headline" style="font-size:24px;">Ihr Kommentar wurde bereits gespeichert. </span><br />
Falls der Anwender versehentlich einen Kommentar doppelt absendet, erhält er diese Antwort.

comment/form
<span class="headline">Neuen Kommentar verfassen:</span>
<form action="{action}&#message" method="POST">
<table callpadding="0" cellspacing="0" border="0">
<tr><td>Name:</td><td><input type="text"  id="fieldName" name="Name" value="{Name}"></td></tr>
<tr><td>Email:</td><td><input type="text"  id="fieldMail" name="Mail" value="{Mail}"> <span  class="small">(wird nicht  veröffentlicht)</span></td></tr>
<tr><td>Website:</td><td><input type="text"  id="fieldWebsite" name="Website"  value="{Website}"></td></tr>
<tr><td valign="top">Text:</td><td><textarea  name="text:Text" rows="5"  cols="40">{Text}</textarea></td></tr>
<tr><td>&nbsp;</td><td><input  type="checkbox" name="InformAboutNewComments"  {InformAboutNewComments}> Bei neuen Kommentaren per Email  benachrichtigen</td></tr>
<tr><td>&nbsp;</td><td><input  type="checkbox" name="store" {store}> Angaben (Name, Email, Website)  speichern</td></tr>
<tr><td  valign="top"><br>Code:</td><td>{captchaimage}<br  /><input type="text" name="captcha"> (Bitte Code von oben  eingeben)</td></tr>
<tr><td>&nbsp;</td><td><input  type="submit" name="send" value="Absenden"></td></tr>
</table>
</form>
<script>
function getCookie(name){
// Cookie-Wert auslesen
  var i=0
  var suche = name+"="
  while (i<document.cookie.length){
    if (document.cookie.substring(i, i+suche.length)==suche){
      var ende = document.cookie.indexOf(";", i+suche.length)
      ende = (ende>-1) ? ende : document.cookie.length
      var cook = document.cookie.substring(i+suche.length, ende)
      return unescape(cook)
    }
    i++
  }
  return ''
};

  if  (document.getElementById('fieldName').value+document.getElementById('fieldMail').value+document.getElementById('fieldWebsite').value==''){
    document.getElementById('fieldName').value=getCookie('cName');
    document.getElementById('fieldMail').value=getCookie('cMail');
    document.getElementById('fieldWebsite').value=getCookie('cWebsite');
  }
</script>
Das ist das eigentliche Formular. Wie üblich  enthält es Platzhalter, um bei einer Wiederholung (falls z. B. das  CAPTCHA falsch angegeben wurde) die Felder gleich wieder befüllen zu  können. Das Script am Schluss befüllt die Felder aus einem evtl.  vorhandenen Cookie. Das muss an dieser Stelle per Javascript passieren,  weil ewm komplett mit statischen Seiten arbeitet und die Werte so nciht  dynamisch pro Benutzer einfügen kann.
Genau gesagt: Ich will unbedingt mit statischen Seiten arbeiten. 8-)
Das #message hinter der Form-Action dient  dazu, gleich zur richtigen Stelle nach dem Absenden zu springen. Falls  ein längerer Artikel kommentiert wird, macht das durchaus Sinn.

comment/mail-inform
tdbmail
{Mail}
informer@eforia.de
Neuer Blog-Kommentar auf eforia.de
Hallo {ReceiverName},

Sie haben auf dem Blog von eforia.de kommentiert und möchten über neue  Kommentare informiert werden. Es wurde ein neuer Kommentar verfasst.

Von {Name} ({Date} Uhr):
{Text}

Zum Kommentar geht es mit diesem Link:
{Url}

Falls Sie bei neuen Kommentaren nicht mehr informiert werden möchten, klicken Sie bitte den folgenden Link:
{RemoveUrl}
Wenn jemand über neue Kommentare informiert werden will, erhält er eine Mail mit dieser Vorlage.

comment/mail-inform-admin
tdbmail
{Mail}
informer@eforia.de
Neuer Blog-Kommentar auf eforia.de
Hallo Chef,

es wurde ein neuer Kommentar ({Type}) verfasst.

Von {Name} ({Date} Uhr):
{Text}

Zum Kommentar geht es mit diesem Link:
{Url}
Diese Mail geht an den Admin, wenn er das möchte, bei einem neuen Kommentar oder neuen Trackback.

comment/message
<a name="message"></a>
<span class="headline" style="font-size:24px;">Vielen Dank für Ihren Kommentar.</span><br />
Muss ich diese Vorlage erklären? 8-)

comment/remove-inform
<span class="headline"  style="font-size:24px;">Sie erhalten keine weiteren  Benachrichtigungen per Email bei neuen Kommentaren zu diesem  Artikel.</span><br /><br />
Wenn jemand die Benachrichtigungen abonniert hat und auf den Abbestellen-Link klickt, erhält er diesen Text.

comment/view-comment
<a name="message{lfd}"></a>
{if="'{Website}'#''"}<a href="{Website}"{if="{Nofollow}=1"}  rel="nofollow"{end}>{Name}</a>{else}{Name}{end} sagte am  {[0]write="'{Date}'[1,10]"} um {[0]write="'{Date}'[12,5]"} Uhr:<br  />
<div style="padding:8px;background-color: #eeeeee;">{Text}</div>
<hr width="100%" size="1" color="#FABF84">
So wird ein  kommentar ausgegeben. Man sieht die Felder als Platzhalter. Etwas  kompliziert sind die if-Abfragen, diese dienen einfach dazu  unterschiedliche Ausgaben zu machen, je nachdem ob der Kommentator eine  Website angegeben hat oder nicht. Und wenn eine angegeben ist, ob wir  diese auf Nofollow setzen. {Date} liefert einen String mit Datum und Uhrzeit zurück, deswegen wird dieser per {write...} zerteilt dargestellt.
{lfd} liefert die laufende Nummer des Kommentars. Daadurch ist es möglich zu  jedem Kommentar direkt zu springen. Besonders in den  Mail-Benachrichtigungen macht das Sinn.
Bei der Ausgabe kann man mit {User} abfragen. Beispielsweise kann mit einem Konstrukt wie {if="{User}=0"}background-color: #eeeeee;{end} die Hintergrundfarbe von Kommentaren bei angemeldeten Benutzern farbig hinterlegt werden.

comment/view-trackback
<a name="message{lfd}"></a>
{if="'{Website}'#''"}<a href="{Website}"{if="{Nofollow}=1"}  rel="nofollow"{end}>{Name}</a>{else}{Name}{end} trackbackte am  {[0]write="'{Date}'[1,10]"} um {[0]write="'{Date}'[12,5]"} Uhr:<br  />
<div style="padding:8px;background-color: #eeeeee;">{Text}</div>
<hr width="100%" size="1" color="#FABF84">
Das gleiche wie für Kommentare nun für Trackbacks.

Das waren die Vorlagen. Am besten einfach übernehmen und an die eigenen Bedürfnisse anpassen.

Fehlt noch die comments.ini:
[comments]
moderateall=1
// when 1, all comments are stored with Hidden=1. Admin  has to remove this first before the comment is shown. This is for spam  protection.
moderateunknown=0
// moderate all which not from a known user
allowhtml=0
// when NOT 1 all HTML and eforia tags will be converted when saving a message
// more info: i want use html and eforia tags in comments. Iam the admin  and i know what iam doing. But i dont want that users cant use it. So  it shall not possible to enter html and eforia tags, but it should  possible that i edit comments and use it then.
// so in generall html shall be simply output at viewer, but it should not be entered.
// I think a simple converting < and > to &lt; and &gt; and { to /{ should be help when saving the form.
// when allowhtml=1 this conversion shall not be done
inform=irgendwer@mail.de
// Send a mail to this address, when a new comment is added
informhidden=mail@adresse.de
// Send a mail to this adress, when a new comment is added as hidden
nofollow=0
// New comments get default nofollow=no
doubleoptin=1
// Mail Informer for users requires a double-opt-in

[trackbacks]
moderateall=1
// when 1, all trackbacks are stored with Hidden=1. Admin  has to remove this first before it is shown. This is for spam  protection.
allowmissingbacklink=0
// Normal trackbacks with no backlink get  hidden=1. When allowmissingbacklink=1 then trackbacks with no backlinks  are allowed.
Name={blog_name}
Text=<span class="highlighted">{title}</span><br>{excerpt}
inform=some@mailadress.com
// Send a mail to this address, when a new trackback is added
informhidden=mail@adresse.de
// Send a mail to this adress, when a new trackback is added as hidden
nofollow=1
// New comments get default nofollow=yes

Die Einstellungen sind den Kommentaren bereits zu entnehmen. Lediglich Name und Text bei den Trackbacks ist offen. Wenn ein Trackback empfangen wird, werden die Informationen blog_name, title und excerpt übertragen. Hier wird nun angegeben wie diese Informationen in der  eigenen Datenbank gespeichert werden. Im Beispiel wird also der blog_name als Name übernommen und der Text mit title als Überschrift und excerpt gebildet.

Verwaltet werden die Kommentare und Trackbacks über Tools/Comments.

Double-Opt-In
Benutzt man die Double-Opt-In-Funktion (was dringend empfohlen wird) benötigt man die folgenden Vorlagen:
comment/mail-doubleoptin
Das ist die Nachricht mit dem Bestätigungslink. Diese sollte in etwa so aussehen:
tdbmail
{eMail}
blog@ihre_domain.de
Blog-Name -  Bitte bestätigen Sie die Benachrichtigung über Kommentare
Vielen Dank für Ihren Kommentar im Blog-Name beim Artikel
*{title}*

Sie haben die Option gewählt, dass Sie über neue Kommentare zu diesem  Artikel informiert werden möchten. Da dies das erste Mal ist, müssen Sie  die Benachrichtigung per Klick bestätigen. Für alle weiteren  Kommentare, bei der Sie die gleiche Mail-Adresse verwenden, ist dies  nicht mehr notwendig.

Sie müssen die Benachrichtigungsfunktion mit dem folgenden Link bestätigen.
{linktoactivate}

__________________________________________________________

Rechtlicher Hinweis:
Dies ist keine Werbemail! Der Zweck dieser eMail ist die Überprüfung des Wunsches einer Benachrichtigung bei neuen Kommentaren.
Dieses Verfahren (Double-Opt-In) soll sicherstellen keine unverlangten eMails zu versenden.
Weiterhin wird mit dieser eMail der Informationspflicht laut BDSG § 33 Abs. 1 sowie TDDSG § 4 Abs. 1 nachgekommen.
Ihre eMail-Adresse wurde in unserer Datenbank für Kommentare  gespeichert. Ohne Aktivierung wird sie nach angemessener Zeit  automatisch gelöscht.
Falls Sie nicht wissen, warum Sie diese Mail bekommen haben, hat sich  vermutlich jemand einen Scherz erlaubt und Ihre eMail Adresse  unberechtigt eingetragen.
Solange Sie nicht den obigen Link zum aktivieren benutzen werden Sie keine weiteren eMails erhalten.


comment/message-doubleoptin
Das sieht der Benutzer, wenn er den Link angeklickt hat und alles war OK. Beispiel:
<a name="message"></a>
<span class="headline" style="font-size:24px;">Vielen Dank. Sie  erhalten nun eine Benachrichtigung, falls zu diesem Artikel ein neuer  Kommentar verfasst wird.</span><br />


comment/message-doubleoptin-error
Das wird angezeigt, wenn es Probleme mit dem Bestätigungslink gibt.  Beispielsweise wenn der Geheimcode nicht stimmt. Den brauchen wir ja,  sonst könnte man die Bestätigung für andere übernehmen. Beispiel für die  Vorlage:
<a name="message"></a>
<span class="headline" style="font-size:24px;">Es ist leider ein Problem aufgetreten.</span><br />
Die Bestätigung für den Empfang von Benachrichtigungen bei Kommentaren kann leider nicht akzeptiert werden.
Möglicherweise haben Sie den Link nicht korrekt aufgerufen oder zu lange gewartet.
<br /><br />


Die letzten Kommentare anzeigen
Dazu einfach {execmacro="comments" param="last=5"} um die letzten 5 Kommentare auszugeben. Benutzt wird dazu eine Vorlage
comment/last-comment
<li><span class="small"><a href="{link="lfd:{PageLfd}"}#message{lfd}" class="small">{Name}</a>
bei <a href="{link="lfd:{PageLfd}"}" class="small">{PageTitle}</a>
({SDate} {STime} Uhr)</small></li>

eforia® web manager Dokumentation
Stand V 3.01 / 20.12.2010
© Horst Klier
http://www.klier.net
Impressum