ページへ戻る

− Links

 印刷 

正しいテンプレートカスタマイズ方法 :: Xoops Users Group Japan

xpwiki:正しいテンプレートカスタマイズ方法

ページ内コンテンツ
  • 基本知識
    • テンプレートの分類
      • XOOPS_ROOT_PATH/modules/(dirname)/templates/に置かれたファイル群
      • defaultテンプレートセット内のテンプレート
      • カスタムテンプレートセット内のテンプレート
  • ブラウザベースでのカスタマイズ手順
    • 誤った方法
      • テンプレートマネージャ(管理)でテンプレートセットを複製する
    • 正しい手順
      • altsysのインストール
      • 空のテンプレートセット作成
      • テンプレートセットを変更
      • 各テンプレートのカスタマイズ
        • カスタマイズしたいモジュール/テンプレート名が判っている場合
        • カスタマイズしたいモジュール/テンプレート名が判らない場合
  • ファイルベースでのカスタマイズ手順
    • 誤った方法
      • modules/(dirname)/templates以下のテンプレートを書き換え、モジュールアップデート
    • 正しい手順
      • テーマ下テンプレート

基本知識 anchor.png[1]

まずはこのサイトのベーシックマニュアルなどで、XOOPSのテンプレートの原理について理解すること。

特に以下の違いの理解は重要

テンプレート
モジュールの出力で使われる必要な個々の雛形。HTMLが多いが、XMLやCSS、メールの雛形を提供するものもある。
テンプレートセット
実際に利用される雛形を決定するために、テンプレートをまとめたもの。defaultテンプレートセットのみが特別で、全種類のテンプレートを持っている。default以外のテンプレートセットは任意のテンプレートのみを持つことができる。
Page Top

テンプレートの分類 anchor.png[2]

Page Top

XOOPS_ROOT_PATH/modules/(dirname)/templates/に置かれたファイル群 anchor.png[3]

実ファイル。 FTPなどでも確認可能。

あくまで、モジュール作者が提供するデフォルトテンプレートであり、これが直接、テンプレートとして利用されるわけではない。(オリジナルのX2およびXCL2.1)。

ただし、本家版2.0.14以降および、そこからフォークしたImpressCMSでは、一般設定において「defaultテンプレートセット」を選択したままだと、ここに置かれたファイルが、テンプレートとして直接利用されてしまう。

この場所のファイルを書き換えても、モジュールのバージョンアップで上書きアップロードすれば、当然、書き換え結果は消されてしまう。

これは、X2テンプレートの仕組み・意義を理解していない開発者による改悪だと思われる。

Page Top

defaultテンプレートセット内のテンプレート anchor.png[4]

DBテンプレート。ファイルとしては確認できない。 altsysやテンプレート管理などから確認可能。

モジュール管理から、モジュールをアップデートすると、「XOOPS_ROOT_PATH/modules/(dirname)/templates/に置かれたファイル群」から、データベース内にコピーされる。(すでにあった、defaultテンプレートセットのテンプレート内容は上書きされる)

オリジナルのX2およびXCL2.1では、この動作を経てはじめて、上記ファイル群の更新されたテンプレートが反映されることになる。

Page Top

カスタムテンプレートセット内のテンプレート anchor.png[5]

DBテンプレート。ファイルとしては確認できない。 altsysやテンプレート管理などから確認可能。

Page Top

ブラウザベースでのカスタマイズ手順 anchor.png[6]

Page Top

誤った方法 anchor.png[7]

Page Top

テンプレートマネージャ(管理)でテンプレートセットを複製する anchor.png[8]

X2ではこの方法しかなかったため、未だにこの方法で紹介しているサイト・書籍が多いが、今となっては「誤り」と言って良いレベル。

ここでテンプレートセットごと「複製」してしまうと、カスタマイズする予定のないテンプレートまで複製されてしまい、モジュールを上書きアップデートしても、一向に反映されないことになる。

Page Top

正しい手順 anchor.png[9]

Page Top

altsysのインストール anchor.png[10]

何はともあれ、最新版のaltsysをインストールする。 これがなければはじまらない。

Page Top

空のテンプレートセット作成 anchor.png[11]

altsysのテンプレート管理画面、一番下にある「新規にテンプレートセットを作成する」から、ベースに「(空)」を選んで、セット名を入力し、「新規作成」する。 名前は何でも良いが、"custom" や "user" などが判りやすいだろう。 (以下は、customとして説明する)

Page Top

テンプレートセットを変更 anchor.png[12]

X2であれば、「システム管理」「一般設定」「一般設定」から、デフォルトのテンプレート・セットについて、"custom"を選択。

XCL2.1であれば 「互換レンダーシステム」「テンプレート管理」から、さきほど作った"custom"テンプレートセットを "ACTIVE" にする。

Page Top

各テンプレートのカスタマイズ anchor.png[13]

Page Top
カスタマイズしたいモジュール/テンプレート名が判っている場合 anchor.png[14]

altsysから、「テンプレート管理」「(モジュール名)」と進み、カスタマイズしたいテンプレート(複数可)をチェックして、画面下の行先で"custom"を選び、「コピー実行」

あとは、"custom"にある、該当テンプレートを編集する。

Page Top
カスタマイズしたいモジュール/テンプレート名が判らない場合 anchor.png[15]

altsysの「テンプレートの高度な操作」に入り、「テンプレートを枠で囲う」をクリック。 再度、公開側を表示すれば、テンプレート単位で枠が囲ってあるので、編集したい枠内にある "Edit:" リンクをクリックして編集する。

ただしこの場合、defaultテンプレートを直接編集していることになるので*1)、編集終了後に、忘れずに編集したテンプレートについて、defaultからcustomテンプレートにコピーしておくこと。

それを忘れたままでいると、後でモジュールアップデートした時に変更内容が失われて泣くことになる。

Page Top

ファイルベースでのカスタマイズ手順 anchor.png[16]

Page Top

誤った方法 anchor.png[17]

Page Top

modules/(dirname)/templates以下のテンプレートを書き換え、モジュールアップデート anchor.png[18]

これはモジュール作者がデフォルトテンプレートを更新する時に使う手段である。 モジュールユーザがこの手段を使うと、やはりモジュール更新時に泣くことになる。

Page Top

正しい手順 anchor.png[19]

Page Top

テーマ下テンプレート anchor.png[20]


*1 (customが選択されている以上、Editリンクをクリックするだけで、自動的にdefaultからcustomにコピーしてcustomを編集するべきではないかという指摘はもっともだが、それはaltsysの今後の課題である

Last-modified: 2014-01-13 (月) 22:06:02 (JST) (1407d) by GIJOE