COREBlogのアイコン設定四苦八苦

COREBlogのカテゴリータブにはオプションでicon pathというのがある。前々から気にはなっていたがアイコン作るのも面倒なので放置していた。が、Gentooのロゴくらいは付けてみるか、ということでicon pathを設定してみた。

・COREBlog > Contentsタブ > images の中に icon_gentoo という画像を用意
・COREBlog > Categoriesタブ > Gentoo Linux の icon path に images/icon_gentoo を設定

何にも表示されんがや…。iconとcoreblogをキーワードにぐぐってみてもよくわからん。日本語のページだけしか検索しとらんけどさ…。

index_htmlを見てみると、entry_bodyというのをよんでいるようなのでentry_bodyを見てみると…

<dtml-comment>* Show categories.</dtml-comment>
<div class="category">
<dtml-in entry_category_list>
<a href="<dtml-var blogurl missing="">
/categorylist_html?cat_id=<dtml-var id>">
[<dtml-var name missing="category name is missing">]
</a> 
</dtml-in>
</div>

これですなぁ。<dtml-var name missing="category name is missing">でたぶんカテゴリの名前を表示しとるんだろう。名前じゃなくてアイコンが表示したいんだけどな…。うーん。アイコンのパスはどこに保存されとるんやろ。
ということでCOREBlogの中身をのぞいてみた。

zope-instance/Products/COREBlog/ の中にCategory.pyてのがあるぞ。正直PythonのPの字もしらんけど、興味深い記述発見。

def __init__(self,id,name,description,icon_path="",created = -1):
self.id = str(id)
self.name = name
self.description = description
self.icon_path = icon_path

これがたぶんカテゴリのidやらnameやらをいじくってるとこだなと予想する。しかもicon_pathってのがあるじゃないか。
<dtml-var name missing="category name is missing">で名前が設定されるなら、<dtml-var icon_path>とかにすればよろしいのかな?

と、ここでふと立ち止まる。今アイコンが設定されとるのはGentoo Linuxカテゴリだけだ。icon_pathが設定されてるときはアイコン表示して、設定されてないときは名前を表示するようにせんとあかんですな。

ということはdtml-ifを使うのか…。実際に使ったこと無いからよくわからんが、手元にZopeの本があるので調べてみた。説明の言葉がよくわからんけど、

<dtml-if name="title">
The title of this object is: <dtml-var name="title">
<dtml-else>
This object has no title.<br>
The Id of this object is:<dtml-var name="id">
</dtml-if>

うーむ。なかなか興味深い例だ。name="title"のとこは「'title'変数が存在し、真値を返すか?」という意味らしい。よくわからんけど、存在すればいいんだろう。たぶん。

今回のケースでは
・icon_pathが設定されている(存在している)場合:アイコンを表示
・icon_pathが設定されてない(存在していない)場合:名前を表示
だから、

<dtml-if name="icon_path">
<img src="<dtml-var icon_path>">
<dtml-else>
<dtml-var name>
</dtml-if>

こんな感じ?
あとはリンクを貼ればいいのか。ということは、もともとのソースを参考にして、

<dtml-if name="icon_path">
<a href="<dtml-var blogurl missing="">
/categorylist_html?cat_id=<dtml-var id>">
<img src="<dtml-var icon_path>">
</a>
<dtml-else>
<a href="<dtml-var blogurl missing="">
/categorylist_html?cat_id=">
[<dtml-var name missing="category name is missing">]
</a>
</dtml-if>

こんな感じ?
dtml-var icon_path と dtml-var name="icon_path" の違いがよくわからんけど、とりあえずこれでやってみる。

うお。できた。
画像が左よりになって、しかも文字が回り込んでるけど、とりあえず表示はできたぞぅ。あとはcssとかで右よりにして回り込みせんようにすればいいのか。うーむ。ほんとにこれでいいのだろうか…。
とりあえず今のentry_bodyのカテゴリのとこはこうなってます。

<dtml-comment>* Show categories.</dtml-comment>
<div class="category">
<dtml-in entry_category_list>
<dtml-if name="icon_path">
<a href="<dtml-var blogurl missing="">
/categorylist_html?cat_id=<dtml-var id>">
<img src="<dtml-var icon_path>">
</a>
<dtml-else>
<a href="<dtml-var blogurl missing="">
/categorylist_html?cat_id=<dtml-var id>">
[<dtml-var name="name" missing="category name is missing">]</a>
</dtml-if>
</dtml-in>
</div>


ちなみにここに書いてあるソースでタグ付けされてるやつの"<"は全部全角になってるので、コピーペーストすると大惨事になります。はい。
カテゴリ
Zope Zope
COREBlog1 COREBlog1
トラックバック用URL:
http://nagosui.org:8080/Nagosui/COREBlog2/19/tbping

icon_pathを使ってみる

投稿者 PrinCo. 投稿日時: 2006年08月06日 17時38分
NAGOSUI.ORGさんのところにCOREBlogのアイコン設定四苦八苦って記事がΣ(・д・) 象歩さんのところにもカテゴリのロゴを表示って記事があるよ!PrinCoでは下みたいな感じ(アンカーとイメージタグは表示の都合で改行入れたけれどほんとは一行)。 NAGOSUI.ORGさんのところにCOREBlogのアイコン設定四苦八苦って記事がΣ(・д・) 象歩さんのところにもカテゴリのロゴを表示って記事があるよ!PrinCoでは下みたいな感じ(アンカーとイメージタグは表示の都合で改行入れたけれどほんとは一行)。
コメントを追加

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

(必須)
(必須)
(必須)
(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日