Home » Webdesign » CMS MODX » Kommentarfunktion für MODX mit jot nachrüsten
- Anzeige -
Software Asset Management beim Fachmann

Kommentarfunktion für MODX mit snippet JOT nachrüsten

Seiten müssen die Möglichkeit zur User-Interaktion bieten. Ein testhalber eingebautes Facebook-Kommentarfeld wird von meinen Besuchern aber so gut wie nie benutzt. Abhilfe schafft hier das Snippet JOT, was eine MODX eigene Kommentarfunktion ermöglicht.

Zäumen wir das Pferd von Hinten auf, hier mein JOT Aufruf:

[[JotComment? &pagination=`10` &captcha=`1` &moderated=`1` &canmoderate=`Mods` 
&badwords=`scheiss,scheis,fresse,kack,fick,link,http` &bw=`2`]]

Was bedeuten die JOT-Parameter?

&pagination=`10`

Es werden max. 10 Kommentare auf einer Seite angezeigt.

&captcha=`1`

Captchas werden verwendet

&moderated=`1`

Die Kommentarfunktion ist moderiert

&canmoderate=`Mods`

Dies ist die Gruppe, die moderieren darf. Nachzusehen bzw. zu konfigurieren unter Sicherheit, Web-Benutzergruppen

Kommentarfunktion für MODX mit JOT
&badwords=`scheiss,scheis,fresse,kack,fick,link,http`

Dies ist der Verweis auf ein Chunk, das sog. Badwords enthält. Mit diesen lässt sich definieren, dass bestimmte Wörter in Kommentaren gar nicht vorkommen dürfen. Diese Funktion ist sehr nützlich, um Spammer schon recht früh abzuwehren. Ohne hatte ich zum Teil bis zu 10 Spam-Kommentarversuche pro Tag. Im Chunk stehne die Wörter durch Komma getrennt und klein geschrieben (z.B. "scheiss, fresse, link"

&bw=`2`

Definiert, was passiert, wenn ein Badword gefunden wird. Bei 2 wird der Kommentar abgewiesen. Bei 1 nicht publiziert und bei 0 wird das Auffinden ignoriert.

Eine komplette Liste der JOT-Parameter findet sich in der MODX-Wiki unter JOT.

 

Probleme bei der Implementierung von JOT

Captcha erscheint nur auf Englisch

Thomas Jakobi stellt auf seiner Website die deutsche Version zur Verfügung. Zu beachten ist, dass dieser Inhalt ins Verzeichnis assets/snippets/jot/templates kopiert werden muss.

Captcha in MODX JOT erscheint nicht

Seltsamerweise erschien bei mir zunächst das Captcha-Bild nicht. Nach einigem relativ hilflosem Rumgesuche stellte ich fest, dass der Pfad nicht stimmt.

Kommentarfunktion für MODX mit JOT

Er muss veriword.php im Pad manager/includes aufrufen. Bei mir war dieser Pfad falsch. Hier suchte ich sehr lange rum, schliesslich lud ich das Snippet hier frisch herunter und alles funktionierte perfekt.

Schuld ist die Datei...

/assets/snippets/jot/templates/chunk.form.inc.html

Dort ist in der Zeile mit veriword eine Variable für den Managerpfad eingeführt, die es zumindest bei mir nirgendwo gibt.

Aus...

<div style="width:150px;margin-top: 5px;margin-bottom: 5px;"><a href="[+jot.link.current:esc+]"><img src="[(modx_manager_url)]includes/veriword.php?rand=[+jot.seed+]"....

...wird also...

<div style="width:150px;margin-top: 5px;margin-bottom: 5px;"><a href="[+jot.link.current:esc+]"><img src="manager/includes/veriword.php?rand=[+jot.seed+]"... 

Bei der deutschen Variante von Thomas Jakobi ist dieses Problem bereits gelöst.

Kommentare sollen nicht auf allen Seiten eingeblendet werden

Da ich gerne ein Template für alle Seiten benutze will ich das Snippet so modifizieren, dass es nur auf bestimmten Seiten erscheint. Hier ist meine - sicher noch verbesserungswürdige Umsetzung.

<?php
/*####
#
# Name: Jot
# Version: 1.1.4
# Author: Armand "bS" Pondman (apondman@zerobarrier.nl)
# Date: Aug 04, 2008
#
# Latest Version: http://modxcms.com/Jot-998.html
# Jot Demo Site: http://projects.zerobarrier.nl/modx/
# Documentation: http://wiki.modxcms.com/index.php/Jot (wiki)
#
####*/

jotPath = $modx->config['base_path'] . 'assets/snippets/jot/';
include_once($jotPath.'jot.class.inc.php');

Jot = new CJot;
$Jot->VersionCheck("1.1.4");
$Jot->Set("path",$jotPath);
$Jot->Set("action", $action);
$Jot->Set("postdelay", $postdelay);
$Jot->Set("docid", $docid);
$Jot->Set("tagid", $tagid);
$Jot->Set("subscribe", $subscribe);
$Jot->Set("moderated", $moderated);
$Jot->Set("captcha", $captcha);
$Jot->Set("badwords", $badwords);
$Jot->Set("bw", $bw);
$Jot->Set("sortby", $sortby);
$Jot->Set("numdir", $numdir);
$Jot->Set("customfields", $customfields);
$Jot->Set("guestname", $guestname);
$Jot->Set("canpost", $canpost);
$Jot->Set("canview", $canview);
$Jot->Set("canedit", $canedit);
$Jot->Set("canmoderate", $canmoderate);
$Jot->Set("trusted", $trusted);
$Jot->Set("pagination", $pagination);
$Jot->Set("placeholders", $placeholders);
$Jot->Set("subjectSubscribe", $subjectSubscribe);
$Jot->Set("subjectModerate", $subjectModerate);
$Jot->Set("subjectAuthor", $subjectAuthor);
$Jot->Set("notify", $notify);
$Jot->Set("notifyAuthor", $notifyAuthor);
$Jot->Set("validate", $validate);
$Jot->Set("title", $title);
$Jot->Set("authorid", $authorid);
$Jot->Set("css", $css);
$Jot->Set("cssFile", $cssFile);
$Jot->Set("cssRowAlt", $cssRowAlt);
$Jot->Set("cssRowMe", $cssRowMe);
$Jot->Set("cssRowAuthor", $cssRowAuthor);
$Jot->Set("tplForm", $tplForm);
$Jot->Set("tplComments", $tplComments);
$Jot->Set("tplModerate", $tplModerate);
$Jot->Set("tplNav", $tplNav);
$Jot->Set("tplNotify", $tplNotify);
$Jot->Set("tplNotifyModerator", $tplNotifyModerator);
$Jot->Set("tplNotifyAuthor", $tplNotifyAuthor);
$Jot->Set("tplSubscribe", $tplSubscribe);
$Jot->Set("debug", $debug);
$Jot->Set("output", $output);


$top= isset ($top) && intval($top) ? $top : 0;
$id= isset ($id) && intval($id) ? intval($id) : $modx->documentIdentifier;
$topLevel= isset ($topLevel) && intval($topLevel) ? intval($topLevel) : 0;
if ($id && $id != $top) {
$pid= $id;
if (!$topLevel || count($modx->getParentIds($id)) >= $topLevel) {
while ($parentIds= $modx->getParentIds($id, 1)) {
$pid= array_pop($parentIds);
if ($pid == $top) {
break;
}
$id= $pid;
if ($topLevel && count($modx->getParentIds($id)) < $topLevel) {
break;
}
}
}
}
$ultimate = $id;

id="";


$parent = $modx->getParent($modx->documentIdentifier,'','id');
$id = $modx->documentIdentifier


if (($parent != "") && ($id != 338) && ($id != 41) && ($id != 361) && ($parent != 337))
{
return $Jot->Run();
}
?>

Wenn ich mich auf einer Rubrik-Seite befinde (ID = der nächst höheren und auf bestimmten anderen IDs, wird das Snippet verlassen, ohne JOT wirklich aufzurufen.

Download jot

Zur Sicherheit habe ich die JOT-Dateien nochmal bei mir auf dem Server abgelegt, damit nichts verloren geht.



War der Artikel hilfreich? Bitte liken und sharen. Danke!

it-zeugs.de ist auch auf Facebook...

Schreibe einen Kommentar - aber kein SPAM - der wird zuverlässig gefiltert!

  • Erforderliche Felder sind markiert mit *.

If you have trouble reading the code, click on the code itself to generate a new random code.