HowTo : 次世代サイトマップ
原文(元ネタ)
まずは目標を決めようか。私が必要としているサイトマップは以下のようなものだ。 (カレントディレクトリに対して)
図 example1
図 example2
図 example3
以前の <dd>, <dt> タグを乱用したものと比較すると、CSSを使用したインデントは見た目にもきれいだ。
じゃあ、コードに進もうか。 6つのPythonコードがサイトマップにのせるべきフォルダのリストを生成する。 スクリプトはロジックだけを扱う。 見た目に関する能力は一切持たない。 ラッパスクリプトが返すリストに含まれるのは、タイトルなどではなくオブジェクトだ。
最初のスクリプトは、バーチャルホストのルートに置かれる。 そこは、Zopeデータベースのルートフォルダの場合もそうでない場合もあるだろう。
コード内コメント文:rootをhere/getSiteRootに変更してテストしてみよう。 もしくは"tal:define vhroot="here/getSiteRoot"として、vhrootに対してテストしてみよう。
そして4つのスクリプトがフォルダを探索する。
コード内コメント文:ルートフォルダ上で"menu_entry"プロパティを持つフォルダを探索する。
コード内コメント文:なし
コード内コメント文:なし
6つ目のスクリプトは先程の4つのスクリプトからの出力を、1つのリストにまとめる。
コード内コメント文:省略
この時点で、あるフォルダでmenu_listを呼び出せば、表示するのに必要なFolderオブジェクトのリストを得ることができる。
では、これがサイト内のページで使われるstandard_template.ptのサイトマップを定義している部分だ。
コード standard_template.pt
最後のpythonスクリプトのコードは、オブジェクトのデプスをURLに応じて決定するものだ。
| Last edited Sun, 10 Sep 2006 20:04:37 +0900 | Edit this page |