コメントやトラックバックでのフィルタを掛けると、
モデレートされないゴミが溜ってきます。
これを削除する作業が行ったり来たりで結構面倒ですが、
SiteBytes サイトに
コメント管理の一覧リンクを出す
と云うありがたい記事があります。
ただモデレートされないもの (つまりスパム) が表示されません。
ちょっとだけ COREBlog の本体にパッチを当てることにしました。
--- COREBlog/COREBlog.py.orig
+++ COREBlog/COREBlog.py
@@ -1100,7 +1100,7 @@
security.declareProtected(View, 'rev_comment_items')
- def rev_comment_items(self,start=0,count=-1):
+ def rev_comment_items(self,start=0,count=-1,consider_moderation=1):
"""Return list of Comment(reversed indexing)."""
start = r2i(start,0)
count = r2i(count,-1)
@@ -1115,7 +1115,7 @@
id = self.comment_list[l_e]
obj = self.getComment(id)
l_e = l_e - 1
- if obj.moderated:
+ if obj.moderated or not consider_moderation:
l.append(obj)
count = count - 1
return l
COREBlog の「最近のコメント一覧」を真似て、
以下のような DTML メソッドを作り表示できます。
オブジェクトは COREBlog の
methods
フォルダの中にでも置きます。
<dtml-var standard_html_header>
<h2>最近のコメント一覧</h2>
<ul>
<dtml-in "rev_comment_items(0, -1, 0)">
<dtml-if moderated><li><dtml-else><li style="background-color:#ffa"></dtml-if>
<dtml-var "ZopeTime(created)" fmt="%Y-%m-%d %H:%M">
<a href="<dtml-var blogurl missing="">/<dtml-var parent_id>/manage_comments">
<dtml-if "title==''">(no title)<dtml-else><dtml-var title></dtml-if>
</a>
</li>
<dtml-else>
There are no comments.
</dtml-in>
</ul>
<dtml-var standard_html_footer>
ついでにトラックバックの方も同じ方式でやることにしました。
--- COREBlog/COREBlog.py.orig
+++ COREBlog/COREBlog.py
@@ -1163,7 +1163,7 @@
security.declareProtected(View, 'rev_trackback_items')
- def rev_trackback_items(self,start=0,count=-1):
+ def rev_trackback_items(self,start=0,count=-1,consider_moderation=1):
"""Return list of Trackback(reversed indexing)."""
start = r2i(start,0)
count = r2i(count,-1)
@@ -1178,7 +1178,7 @@
id = self.trackback_list[l_e]
obj = self.getTrackback(id)
l_e = l_e - 1
- if obj.moderated:
+ if obj.moderated or not consider_moderation:
l.append(obj)
count = count - 1
return l
表示する DTML メソッドは以下の通り。
<dtml-var standard_html_header>
<h3>最近のトラックバック一覧</h3>
<ul>
<dtml-in "rev_trackback_items(0, -1, 0)">
<dtml-if moderated><li><dtml-else><li style="background-color:#ffa"></dtml-if>
<dtml-var "ZopeTime(created)" fmt="%Y-%m-%d %H:%M">
<a href="<dtml-var blogurl missing="">/<dtml-var parent_id>/manage_trackbacks">
<dtml-if "title==''">(no title)<dtml-else><dtml-var title></dtml-if>
</a>
</li>
<dtml-else>
There are no trackbacks.
</dtml-in>
</ul>
<dtml-var standard_html_footer>
参考サイト
- COREBlog1 コメント管理の一覧リンクを出す — SiteBytes
- COREBlog 1.2.5 のトラックバックSPAM対策強化 — SiteBytes
- COREBlogのコメントスパム対策 — Days of Liris
というか、全部上記サイト内容の泥棒です。恥ずかしい;;
ご足労かけて恐縮してます;;
トラックバック管理の方は Max さんの rev_trackback_items_nomod() メソッドを使うと全一覧が出ます。
一方コメント管理については DTML で rev_comment_items() になっているので、モデレートされたものしか表示されませんでした。
多分、実際は rev_comment_items_nomod() とか云うメソッドを追加なさったのだと、勝手に想像してました...
御無沙汰です。トラックバックありがとうございました〜。
情けないことに紹介頂いたエントリで自分がどういう作業をしていたかほとんど忘れています(汗
>モデレートされないもの (つまりスパム) が表示されません。
とあったのですが、うちではこのやりかたで全一覧が出てました。なんか他に弄ったかなぁ....