'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() |