OpenPNEのテンプレートをカスタマイズしたい時

投稿者: | 2009年4月10日

OpenPNEでは、ページのデザインと,ロジックのコーディングを分離する目的で、SmartyというPHPプログラムのテンプレートエンジンを使用しています。
Smartyを使用していることにより、アプリケーションのロジックが分からない人でも、ある程度のHTMLの知識があれば、OpenPNEのレイアウトを変更(カスタマイズ)することができます。

具体例を示しながら、実際に進めていく手順を説明

レイアウトを修正したいページを表示させるURLが以下の場合
http://iphone-sns.com/?m=pc&a=page_fh_diary&target_c_diary_id=2

レイアウトテンプレートの場所は
(config.phpがあるディレクトリ名)/webapp/modules/pc/templates/
ディレクトリ内にある、
fh_diary.tpl
となる。
これに習えば、修正・レイアウト変更・カスタマイズしたいページの引数の文字を見れば、他のテンプレート名が分かる。

さて、一番簡単なのは、このテンプレートファイルをFTP等でダウンロードし、エディターで修正し、再びアップロードすれば良いのだが、修正に失敗したりした場合や、元に戻したい時に問題がある。

OpenPNEは、その点も良く考えられており、
・webapp
・webapp_ext
という二つのディレクトリが用意されている。

先ほどダウンロードしたテンプレートファイルはwebappにあったものだが、修正したテンプレートファイルをアップする場所を元の場所では無く、webapp_ext内にあるtemplatesの中にアップする。
OpenPNEは、webapp_extに同ディレクトリ同名のファイルが存在した場合、webapp_ext内にあるファイルの方が処理される。

このことにより、元のテンプレートファイルをそのままにして、レイアウトの修正・カスタマイズが可能となる。
修正に失敗したり、レイアウトが崩れてしまったりしたら、webapp_ext内のテンプレートファイルを削除してしまえば、デフォルトのテンプレートファイルを読み込み表示される。

なお、このwebapp_extの機能を使いたい場合は、config.phpを開き

///
// webapp_ext ディレクトリ使用設定
///

define(‘USE_EXT_DIR’, false);

define(‘USE_EXT_DIR’, true);

falseをtrueにする。

これをしないと、webapp_extを使用しないので注意。