{"id":284,"date":"2006-07-24T11:58:59","date_gmt":"2006-07-24T09:58:59","guid":{"rendered":"http:\/\/blog.tokbela.de\/2006\/07\/24\/284\/"},"modified":"2006-07-24T11:58:59","modified_gmt":"2006-07-24T09:58:59","slug":"an-unsere-stammleser","status":"publish","type":"post","link":"https:\/\/blog.tokbela.de\/?p=284","title":{"rendered":"An unsere Stammleser"},"content":{"rendered":"<p>bzw. an unsere Stammkommentatoren: Ich habe ein Geschenk fuer euch. Ab jetzt koennt ihr naemlich eure Kommentare selbst editieren. Einzige Voraussetzung ist, dass ihr euch einmalig anmeldet (rechts: Meta -&gt; Register) und eingeloggt seid, wenn ihr ein Kommentar verfasst. Ueber Rueckmeldungen und Meinungen wuerde ich mich freuen.<\/p>\n<p>Nun wird&#39;s knifflig; wer an den Details der Umsetzung nicht interessiert ist, kann ruhigen Gewissens an dieser Stelle mit Lesen aufhoeren (und stattdessen mal lieber die neue Editierfunktion testen ;).<\/p>\n<p>F&uuml;r alle WordPress-Betreiber, die ebenso wie ich nach dieser Funktion gesucht haben, moechte ich hier zwei Loesungswege vorstellen. Zum einen koenntet ihr das Plugin <a href=\"http:\/\/code.jalenack.com\/archives\/edit-comments\/\">Edit Comments<\/a> ausprobieren. Das hat jedoch ein paar Nachteile. Man kann einen Kommentar nur innerhalb einer bestimmten Zeitspanne editieren und die Zugriffspruefung erfolgt recht unsicher ueber die IP. Wahrscheinlich wuerde es sich auch mit <a href=\"http:\/\/somniloquy.org\/blog\/2006\/05\/09\/tinythread-for-wordpress\/\">Tinythread<\/a>  nicht so einfach vertragen, aber ausprobiert habe ich es nicht.<\/p>\n<p>Die zweite Loesung verwendet das in WordPress 2.0 neu eingefuehrte Rechtesystem der Benutzer. Es gibt verschiedene Rollen (roles), die man den Benutzern zuweisen kann. Jede Rolle beinhaltet eine Menge von Kompetenzen (capabilities), die einzelne Aktionen im System erlauben. Mit dem <a href=\"http:\/\/redalt.com\/wiki\/Role+Manager\">Role Manager<\/a> kann man diese Zuordnungen beliebig aendern und sogar neue Kompetenzen anlegen.<\/p>\n<p>Und genau das habe ich getan. Im TokBlog gibt es nun die neuen Kompetenzen edit_comments und edit_other_comments. Diese erlauben das Editieren eigener bzw. beliebiger Kommentare. Intern wird dazu eine meta-capability edit_comment abgefragt. Die wird immer dann erzeugt, wenn der User edit_comments besitzt und mit dem Autor des Kommentars uebereinstimmt oder das umfassendere Recht edit_other_comments erhalten hat. Dazu muss man in der wp-includes\/capabilities.php die Funktion map_meta_cap() analog zu read_post ergaenzen (edit_post geht als Vorlage auch, besitzt aber sehr viel mehr Sonderfaelle).<\/p>\n<p>Nach dieser Aenderung kann man mit current_user_can(&#39;edit_comment&#39;, $comment-&gt;comment_ID) abfragen, ob der aktuelle Benutzer einen Kommentar editieren darf, z.B. in der Funktion edit_comment_link() aus wp-includes\/template-functions-links.php. Wenn nicht die Rechteverwaltung des Adminmenues aus WordPress so kompliziert waere, koennte man an dieser Stelle schon aufhoeren. Doch so braucht man noch einen passenden Menueintrag, der auch dann angezeigt werden kann, wenn der Nutzer nur die Rechte edit_comments und read besitzt. Um meinen ueblen Hack in Grenzen zu halten, habe ich an wp-admin\/post.php nichts geaendert, sondern die fuer Kommentare relevanten Teile ausgelagert und mit einem eigenen Menuepunkt versehen.<\/p>\n<p>Ich finde es seltsam, dass bei WordPress nicht konsequent zwischen Schreiben\/Editieren von Artikeln und Kommentaren unterschieden wird. Dann waere es naemlich auch ein Leichtes gewesen, diese Funktion serienmaessig anzubieten. Denn an der differenzierten Rechtevergabe scheitert es ja eben nicht mehr &#8230;<\/p>\n<p>Auch ein weiteres Problem, welches sicher viele WordPress-Besitzer unter euch kennen, ist die fehlerhafte Behandlung von einfachen und doppelten Hochkommata. Editiert man als Admin ein Kommentar, der diese Zeichen enthaelt, setzt WordPress einmal zu oft ein Backslash als Escapezeichen davor. In Folge davon werden u.a. auch Links total zerstoert &#8211; mehr als nur aergerlich.<\/p>\n<p>Hierfuer gibt es das Plugin <a href=\"http:\/\/txfx.net\/code\/wordpress\/wordpress-203-tuneup\/\">WordPress 2.0.3 Tuneup<\/a>. Dessen Loesungsansatz (Deaktivieren der Sind-Sie-sicher?-Seite) habe ich in meine Anpassungen uebernommen und siehe da, mit diesem Bug ist nun auch endlich Schluss. Manchmal frage ich mich ja, ob die Macher von WordPress ihr Blog vorher ueberhaupt mal getestet haben. Ja, das war boese, aber der Fehler ist ja wohl mehr als <strike>daemlich<\/strike> offensichtlich. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>bzw. an unsere Stammkommentatoren: Ich habe ein Geschenk fuer euch. Ab jetzt koennt ihr naemlich eure Kommentare selbst editieren. Einzige Voraussetzung ist, dass ihr euch einmalig anmeldet (rechts: Meta -&gt; Register) und eingeloggt seid, wenn ihr ein Kommentar verfasst. Ueber Rueckmeldungen und Meinungen wuerde ich mich freuen. Nun wird&#39;s knifflig; wer an den Details der [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-284","post","type-post","status-publish","format-standard","hentry","category-chaos"],"_links":{"self":[{"href":"https:\/\/blog.tokbela.de\/index.php?rest_route=\/wp\/v2\/posts\/284","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.tokbela.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.tokbela.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.tokbela.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.tokbela.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=284"}],"version-history":[{"count":0,"href":"https:\/\/blog.tokbela.de\/index.php?rest_route=\/wp\/v2\/posts\/284\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.tokbela.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.tokbela.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.tokbela.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}