別にD3モジュールに限らなくても良いのですが、DBテンプレートの特徴であるフラットな構造をより判りやすく体現しているD3モジュールであればこそ、テンプレート命名規則が重要です。
そこで、以下のように命名することにしました。
XOOPS_TRUST_PATH/modules/(trustdirname)/templates/
- main_*
- block_*
- admin_*
- inc_*
それぞれ、メイン用($xoopsOption['template_main']で指定するもの)、ブロック用(show関数の最後にfetch()の引数として渡すもの)、管理画面用(管理画面もブロックと同様に処理する)、他のテンプレートからインクルードされるもの、となります。
なお、main,block,admin等から、inc_*をインクルードする時には、``を利用します。
<{include file=`$mydirname`_inc_*}>
このバッククオート法、bulletin2で使われていたのを見て初めて知りました。めちゃめちゃ便利ですね!(というか、もはやこれなしでSmartyなんて使えません)
もちろん、XOOPSのtpl_fileテーブルに取り込まれてからは、以下の名前がDBテンプレートの識別子となります。
- (dirname)_main_*
- (dirname)_block_*
- (dirname)_admin_*
- (dirname)_inc_*
このように命名規則を共通化すれば、ユーザがテンプレートカスタマイズしやすくなるだけでなく、開発者自身にとってもメンテナンス性の向上、というメリットを享受できるでしょう。