Personal tools
You are here: Home なごぶろ COREBlogのアイコン設定四苦八苦
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

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>


ちなみにここに書いてあるソースでタグ付けされてるやつの"<"は全部全角になってるので、コピーペーストすると大惨事になります。はい。
The URL to Trackback this entry is:
http://nagosui.org/Nagosui/COREBlog2/19/tbping

icon_pathを使ってみる

Posted by PrinCo. at Aug 06, 2006 05:38 PM
NAGOSUI.ORGさんのところにCOREBlogのアイコン設定四苦八苦って記事がΣ(・д・) 象歩さんのところにもカテゴリのロゴを表示って記事があるよ!PrinCoでは下みたいな感じ(アンカーとイメージタグは表示の都合で改行入れたけれどほんとは一行)。 NAGOSUI.ORGさんのところにCOREBlogのアイコン設定四苦八苦って記事がΣ(・д・) 象歩さんのところにもカテゴリのロゴを表示って記事があるよ!PrinCoでは下みたいな感じ(アンカーとイメージタグは表示の都合で改行入れたけれどほんとは一行)。
Add comment

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

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