そのシステムに対応するエクステンションを作成する。システムによって、プラグインであったり、モジュールと呼んだり、アドオンだったりします。PHPのコード自体は、PHPなので同じですが、それをそのシステムで動くようにするために、どれだけそのシステム専用のコードを書かなければいけないかは、そのシステムに依存します。
例えば、Joomla!なら
Joomla!1.0.xの時は構造は単純でした。1.5になってどうかというと特別変わっていないが、フレームワークを使う事(使わなくてもできる)で、より簡単に書ける。
テンプレートも同様に専用のタグをHTMLに挿入する事で簡単にできる。
他のシステムで、XMLファイルにPHPコードを書き、さらにphpファイルを用意して定義するというものがあった。さらにテンプレートはというより、ただの画像置き換え、システムの管理画面でテンプレートを編集・変更するというものでした。
私としては、オリジナル色が薄い方がありがたいし、テンプレートも使い慣れたHTMLエディタで編集したいものです。もちろん、エディタで編集して貼り付ければ良い事はわかっていますが。
独自のタグを使い独自のメソッドを使わなければならない制約は、そのシステムを使っていない人にとっては、わかりづらく理解に時間がかかりますね。
やっぱJoomla!が良いよ。
Joomla!1.5でエラーページをどうにかしたいと検索していたら、forum.joomla.orgに投稿を見かけたので・・・。
以下のように説明されていました。phpファイルをincludeと説明にはありましたが、わかりやすいようにHTMLを直接書くように変更しました。元ネタはこちら。
root/templates/あなたが使っているテンプレート/error.php
を設置します。
<?php
switch ($this->error->code) {
case '404':
?>
ここに好きな404用HTML
<?php
break;
case '500':
?>
ここに好きな500用HTML
<?php
break;
case '403':
?>
ここに好きな403用HTML
<?php
break;
default:
?>
ここに好きなデフォルトHTML
<?php
break;
}
?>
ちなみにサイトのホームURLへのリンクは、以下のように書けばOKです。
<a href="/<?php echo $this->baseurl; ?>" title="HOME">戻って</a>
オーバーライドって便利ですね。
Joomla!1.5は、大抵のことがエクステンションを作成せずともできそうな感じですね。テンプレートにパラメータをエクステンションのように割り当てることができるので自由度の高いそれだけでアプリケーションとも言えそうなテンプレートができそうですね。
以前からテンプレートの開発を数多くされているところのテンプレートを見るとJoomla!1.0.xのものであってもメニューを独自にテンプレート内で作成したりして大変参考になったりでしたが、Joomla!1.5ではもうひとつ考え方を変えなきゃならないようです。でも、まだフリーのテンプレートは数少ないみたいですね。
以前からたまに使ったりしている。たとえばPHPファイルを読み込み行番号付きでHTMLにしたり、XMLファイルにしたりすることができます。日本語が入ったものでもHighlightで表示するときは文字化けしていたりしますが、出力すると化けていないので大丈夫です。UTF-8なファイルでないといけない(他のフォーマットは試していない)と思いますが。
これは、最近気づいたのですがNotepad++のプラグインがあることを知りませんでした。Notepad++でソースを表示させ、Highlightプラグインをクリックすればそのファイルの場所に指定したフォーマットで出力されます。見た目はNotepad++で表示されたまま出力されます。