Personal tools
You are here: Home なごぶろ Plone 2.5.1上のCOREBlog2でコメントを確認する
About this blog
なごすいぶろぐ。「すべてはなごすいのために」。
Categories
COREBlog2 (31)
Zope (61)
Linux (26)
Misc (47)
Nagosui (11)
ReadingCOREBlog (7)
Plone (81)
Python (20)
Turbogears (18)
COREBlog1 (30)
moblog (5)
Django (12)
 
Document Actions

Plone 2.5.1上のCOREBlog2でコメントを確認する

Plone2.5.1-rc1へのアップグレード」というエントリで、Plone 2.5上のCOREBlog2でコメントのあるエントリを表示させたりするために、「cbcomment_view」の32行目および80行目あたりの「comment_body comment_obj/body"」を「comment_body comment_obj/getBody"」に変えたのですが、どうやらこれだとコメントを(「保存」ではなく)「確認」するときにkey errorが出る模様。

コメントを「確認」するときには「cbcomment_preview」というテンプレートが用いられるのですが、この中で「cbcomment_view」を呼び出しています。このとき実際には「comment_obj/body」が期待されているにも関わらず、先のエントリのように「comment_obj/getBody」と書き換えてしまったために「getBodyなんてやつ知らねーよ!」と怒られてしまうと思われます。あくまで予想。ちゃんと調べてないので嘘かもしれません。

まぁ私はそう思うので何らかの対策をしようと思ったのですが、パイプ「|」を使えばいいんじゃないかなと考えました。ZPTにおけるパイプは英語の「or」みたいなもので、代替要素を並べるために使います。例えば変数定義をするときに

tal:define="hoge fuga | hage"

などとすると、「hoge」という変数は「fuga」なんだけど、「fuga」が無かったら代わりに「hage」を使ってね、という意味になります(あんまり自信ないけどたぶんそういう意味っぽくなるハズ)。

ということは、「comment_obj」という変数は「comment_obj/getBody」なんだけど、「comment_obj/getBody」が無かったら代わりに「comment_obj/body」を使ってね、と教えてやれば、

  • cbcomment_view→「comment_obj/getBody」が使われる
  • cbcomment_preview→「comment_obj/body」が使われる

というように両方でうまくいくのではないでしょうか。

ということで、cbcomment_viewの32行目あたりと80行目あたりに以下のような変更を加えてやりました(記述は両方同じ)。

<div tal:define="pss modules/Products/PythonScripts/standard;
                 comment_body comment_obj/getBody | comment_obj/body"

とりあえずうまくいっているような気がします(´ω`)うーん、眠い。

The URL to Trackback this entry is:
http://nagosui.org/Nagosui/COREBlog2/coreblog2-comment-preview-on-plone-2.5.1/tbping
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
Enter the word