drupal拡張モジュールとtheme_engine

ふむ。なるほど。Themable functions | drupaldocs.orgにあるような関数をtheme_engine側でオーバーライドして,各テーマでどうにかすることによって初めて各機能に対するテーマの適用が可能になる訳か。 本気で完全な見た目の制御をやろうとしたらテーマエンジンのカスタマイズまでやらないとならないんだな。 例えば一覧ページの個別のエントリはtheme_nodeで,コメントの追加とかのリンクはtheme_linksで,ページナビゲーションはtheme_pagerとかで,ページ全体のフォーマットはtheme_pageで定義されてると。 エンジン側の,例えばsmarty theme engineではsmarty_page, smarty_node, smarty_comment, smarty_block, smarty_boxが定義されてる。で,smarty_pageではpage.tplというようにテンプレートファイルをマッピングして値をぐりぐりって放り込んだ上で(このときに文字列国際化も処理してる),Smartyでレンダリングしてる訳だ。 一方で,上にあげた例ではpager, linksに対応するsmarty_pager, smarty_linksは定義してないから,デフォルトのフォーマットで文字列として変換した後の結果を受け取って処理するだけになってる,と。 ってことはsmarty theme engineのカスタム版(smarty_customとして)を作ってsmarty_custom_pagerとか作って, pager.tplを呼ぶようにすればページング処理の表示方法のテーマ化が可能になる,と。(多分) 拡張モジュールなんかでも,flexinodeとかはtheme_*を定義してるのでこの辺のオーバーライドも可能なんだろうな。多分。 ・・・それにしても読みにくい文だ。眠いのに何を調べてるんだかって状態なのが悪いのか。

Trackback URL for this post:

http://old.typemiss.net/trackback/46