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

