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"

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

カテゴリ
COREBlog2 COREBlog2
Plone Plone
トラックバック用URL:
http://nagosui.org:8080/Nagosui/COREBlog2/coreblog2-comment-preview-on-plone-2.5.1/tbping
コメントを追加

下のフォームに記入してコメントを追加できます。平文テキスト形式。

(必須)
(必須)
(必須)
(Required)
Enter the word

このBlogについて
Plone, Zope, Pythonなどのトピックについてのメモです。
カテゴリ
Plone (98)
Plone Products (23)
COREBlog2 (31)
COREBlog1 (29)
ReadingCOREBlog (7)
Zope (66)
Turbogears (18)
Django (12)
Python (25)
Linux (30)
Nagosui (12)
Design (33)
Misc (48)
moblog (5)
最近のエントリ
浜松ブラスバンド定期演奏会2008 nyusuke 2008年11月24日
Glossy Horizontal Menuを使う nyusuke 2008年11月17日
第3回Python東海終了 nyusuke 2008年11月17日
Universalじゃない件 nyusuke 2008年11月15日
最近のコメント
Re:WebデザイナーのためのDjangoはじめの一歩 nyusuke 2007年06月01日
Re:WebデザイナーのためのDjangoはじめの一歩 pateo 2007年05月31日
Re:東海Python Workshop 01終了 nyusuke 2007年05月31日
Re:東海Python Workshop 01終了 kfuruhata 2007年05月30日