ややタイミングを逸してしまいましたが、去る7/29、XTC2006に出席してベラベラと喋って参りました。
私のセッションで一部の人に妙に好評だったのが、「そろそろ卒業してください」という下り。
実際、未だにcube.jpなどでは、モジュールのテンプレートカスタマイズ方法として、
「/modules/system/templates/system_userform.html を書き換えてください」
なんて回答が目につきます。
この時点で、XOOPSのテンプレートシステムを理解していないことが一目瞭然です。
DBテンプレートはフラットな構造にその特徴があります。
だから、テンプレート名だけが意味を持つのです。
おそらく、ここでパスを記述している人は、「XOOPSのテンプレートカスタマイズとはモジュール内のファイルを書き換えてモジュールアップデートするものだ」などと未だに考えているのでしょう。
そういう方のための言葉が、XTCで申し上げた「卒業してください」なのです。
ここであらためて、「正しいテンプレートカスタマイズ方法」を書いておきます。
1. altsysをインストール
2. altsysテンプレート管理画面の一番下「新規にテンプレートセットを作成する」で、ベースに(空)を選択し、セット名に[custom]と入力して、「新規作成」
3. システム管理->一般設定でテンプレートセットにcustomを選択
(ここまでが下準備。以下、必要に応じて、4,5を繰り返す)
4. altsysテンプレート管理画面で、カスタマイズすべきテンプレートをDB-default列から選択(チェック)し、同列の行先に「custom」を選択して、「コピー実行」
5. custom列のテンプレートを編集
これは変更部分が少ない時のカスタマイズ方法です。大規模にテンプレートをまるごと書き換える、なんて場合には、以下の手順となります。
0. ローカルなXOOPS環境を用意し、利用テーマの下に、templatesフォルダを作る(例 XOOPS_ROOT_PATH/themes/mytheme/templates)
(1〜3は、上と同じ)
4. カスタマイズする可能性のあるテンプレートを一式ガバっと、defaultからcustomにコピー(モジュールまるまる選択する場合は、「DB-default」の左にあるチェックボックスを押すと便利)
5. altsysの「テンプレートの高度な操作」内の「テンプレートをダウンロードする」において、[custom]を選択し、zipかtar.gzでダウンロード。
6. ダウンロードしたアーカイブに含まれる、各htmlファイルを、0で作ったtemplatesフォルダ内に展開する
7. ローカルXOOPSのmainfile.phpを編集し、こんな感じで1行挿入する。
if (!isset($xoopsOption['nocommon'])) {
include XOOPS_ROOT_PATH."/include/common.php";
include XOOPS_TRUST_PATH."/libs/altsys/include/autoupdate_from_theme.inc.php" ;
}