'tree'
や 'sitemap'
型のメニューに使用する。メニューのレベルを入れ子状のタグで表す
このレンダラが作成する出力は HTML_Menu_DirectTreeRenderer によるものと似ていますが、出力を、よりカスタマイズできるようになっています。
このレンダラは、おそらく HTML_Template_IT のインスタンスを渡してもうまく動作するでしょう。 しかし、メニューのテンプレートは多くのブロックで構成されることになりがちです。 HTML_Template_Sigma の キャッシュ機能 により、パフォーマンスの劇的な向上が期待できます。
これが HTML_Menu_SigmaTreeRenderer 用の最低限のテンプレートです。必須ブロックをすべて含んでいます。
<!-- BEGIN mu_tree_loop --> <!-- BEGIN mu_level_open --> <ul> <!-- END mu_level_open --> <!-- BEGIN mu_entry_open --> <li> <!-- END mu_entry_open --> <!-- BEGIN mu_active --> <strong>{mu_title}</strong> <!-- END mu_active --> <!-- BEGIN mu_inactive --> <a href="{mu_url}">{mu_title}</a> <!-- END mu_inactive --> <!-- BEGIN mu_activepath --> <a href="{mu_url}"><em>{mu_title}</em></a> <!-- END mu_activepath --> <!-- BEGIN mu_entry_close --> </li> <!-- END mu_entry_close --> <!-- BEGIN mu_level_close --> </ul> <!-- END mu_level_close --> <!-- END mu_tree_loop -->
カスタマイズの方法を示すもう少し複雑な例が、 パッケージのアーカイブに含まれています。
テンプレート内のブロックやプレースホルダの先頭に
mu_
というプレフィックスがついていることに注目しましょう。
これにより、既存のブロック名やプレースホルダ名との衝突を避けるようにしています。
mu_
がデフォルトのプレフィックスですが、
クラスのコンストラクタ
で別のプレフィックスを指定することもできます。
tree_loop
このブロックは 常に 存在する必要があり、すべてのその他のブロックの親となります。 これは、"flow" を実装してエントリを次々にレンダリングする際に使用します。
level_open
, level_close
これらのブロックを使用して、各メニューレベルの開始と終了を指定します。
レベル固有のブロック %level%_level_open
および
%level%_level_close
が存在する場合は、
代わりにそれが使用されます。
entry_open
, entry_close
これらのブロックを使用して、各エントリの開始と終了を指定します。
レベル固有のブロック %level%_entry_open
および
%level%_entry_close
が存在する場合は、
代わりにそれが使用されます。
inactive
, active
, activepath
これらのブロックはメニューエントリを出力する際に使用され、
それぞれの エントリ型
に対応します。各ブロックには {title}
プレースホルダが存在する必要があり、また {url}
プレースホルダを含むことができます。
通常は、もし他のキーがもとのメニュー配列にあった場合は、
それはテンプレートの対応するプレースホルダに代入されます。
レベル固有のブロック %level%_%entry type%
が存在する場合は、代わりにそれが使用されます。
HTML_Menu_SigmaTreeRenderer
HTML_Menu_SigmaTreeRenderer が継承しているメソッド
メソッド名 | 概要 |
---|---|
HTML_Menu_Renderer::finishLevel() | ツリーのレベルを終了します ('tree' 型および 'sitemap' 型用)。 |
HTML_Menu_Renderer::finishMenu() | メニューを終了します。 |
HTML_Menu_Renderer::finishRow() | メニューの行を終了します。 |
HTML_Menu_Renderer::renderEntry() | メニューの要素をレンダリングします。 |
HTML_Menu_Renderer::setMenuType() | レンダリングするメニューの型を設定します。 |
Prev | HTML_Menu | Next |
constructor HTML_Menu_SigmaRenderer() | PEAR Manual | constructor HTML_Menu_SigmaTreeRenderer() |