2006/02/01
カテゴリ portlet でアイコンとエントリ数表示
作成者 takanori
—
投稿日
2006年02月01日 00時35分
最終変更日時
2006年02月20日 00時52分
さて、左下の「カテゴリ」ポートレットをカスタマイズして、COREBlog のようにそのカテゴリに入っているエントリの数を表示するようにしました。
ついでに、カテゴリの画像が存在する場合はそのアイコンも表示するようにしてみました。
カスタマイズしたポイントはこんな感じです。
portal_skins/COREBlog2/portlet_category を書き換えます。
変更前:
<tal:block tal:repeat="obj results">
<dd class="portletItemSingle"
tal:define="oddrow repeat/obj/odd;"
tal:attributes="class python:test(oddrow,
'portletItem even',
'portletItem odd');">
<a href="#"
tal:attributes="href string:${catfolder_url}/${obj/id};
title obj/Description"
tal:content="obj/Title">
Entry title
</a>
変更後:
<tal:block tal:repeat="obj results">
<dd class="portletItemSingle"
tal:define="oddrow repeat/obj/odd;
category obj/getObject"
tal:attributes="class python:test(oddrow,
'portletItem even',
'portletItem odd');">
<a href="#"
tal:attributes="href string:${catfolder_url}/${obj/id};
title obj/Description">
<img src="#"
tal:condition="category/category_image | nothing"
tal:attributes="src string:${category/absolute_url}/category_image_icon" />
<span tal:replace="obj/Title">
Category Name
</span>
</a>
(<span tal:replace="python:len(here.portal_catalog.searchResults(portal_type='COREBlogEntry', getEntry_categories=str(category.getInternal_id())))" />)
見ての通り、img タグのところで画像が存在すれば icon を表示するようになっています。
そして、最後の行で portal_catalog から現在のカテゴリの記事一覧を取得して、その数を数えて表示しています。
(検索する方法がわからなくて結構てこずりました)
# 英語っぽいエントリ ID 考えるの面倒なので、数字を手で入れようかな...(負け組み)
- カテゴリ
-
coreblog
-
- ¦
- 固定リンク
- ¦
- コメント (4)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://takanory.net/takalog/portlet-category/tbping
鈴木たかのりです。とりあえず日記っぽく雑多なことを書き込んでいこうと思っています。
zope/plone関係の技術的な内容については
ちなみに、カテゴリアイコンを表示してみたら背景色があるところ(moblog とか winds とか)では背景の白が出ちゃったりして、いやーな感じです。
というわけで、ひそかにちょっとずつアイコンをちゃんと透過 png に変えてたりしています。
山下です。お世話になってます。
このエントリを参考にして、私もカテゴリ数を表示してみようとしたのですが、うまくいきません。
"category"が未定義だと怒られてしまいます。
この定義部分を良かったら教えてもらえないでしょうか。
# 私も限定Pinoを買いましたが、当たりは入っていませんでした(^^;
あ、ほんとだ category を定義している部分が抜けてました。
本文の方を直しておきますが、で定義しています。
tal:define="category obj/getObject"
# では pino の「当たり」をひいたってことで喜んでおきます。
おかげ様でできました!
なるほど、こうすればいいんですね。非常に参考になりました。
件数取得する方法がさっぱり分からなくて悩んでました。
# 食べ比べしようと思って、赤と黒のpinoを買いました。
# 赤いほうは出なかったんですが、黒いほうは星型が入ってました。