suin.io

テンプレートの拡張子はやはりtplにしたい

suin2008年7月12日

以前書いた記事『XOOPS(Cube)のテンプレートの命名規則』でテンプレートの拡張子は.htmlにすべきではなく、.tplにすべきと述べた経緯があります。拡張子を.tplにするメリットをもう一度振り返ってみます。

拡張子を.tplにすることのメリット
  1. HTMLに限らずあらゆるものの(JavaScript, CSS, XML, メール)テンプレートとして使える。
  2. Windowsの場合、tpl拡張子をエディタと関連づけして、ダブルクリックで編集できるようになる。
  3. 「これはテンプレートファイルだ」という明確なフラグになる。

これらのメリットが存在することは紛れもない事実だと信じています。今回は、これらのメリットを踏まえて実用的な側面から検討してみたいと思います。

XOOPSがXOOPS2に移行される際に、Smartyが導入されたと聞いています。そこから推測するに、モジュールのテンプレートの仕様はXOOPS2の出現とともに作られたものでしょう。SmartyをXOOPSに取り入れたのは非常に画期的だったと考えます。しかし、そんな革新的な開発を行っていた秀逸たる開発者の方々が、テンプレートの拡張子をhtmlにしたかについての動機付けは、いまいち理解の及ばぬ点です。テンプレートの拡張子をhtmlにするのは、XOOPSにとって有害無益なものだと以前述べました

GIJOEさんがD3モジュールを提唱してから、D3モジュールの開発は活発化しています。それに付随してテンプレートの仕様も若干の修正を迫られています。ブロックテンプレートが下位ディレクトリに置かれる非効率さはGIJOEさんに指摘されているとおりです。

bulletinではRSS用のテンプレートも.html形式にしました。が、これは出力される形式とかなりずれています。よって適切な命名とはいいがたいものです。d3blogでは、出力される形式とテンプレートの形式の有縁関係を明確にすべく、.xml, .html, .js, .cssなどの拡張子を扱えるようカスタムインストーラ側で調整しています。これはXOOPS2の仕様から見ると、非常に進歩した手法だと思います。それでも、形式の種類が増えるとまたその拡張子に対応するために、カスタムインストーラを調整しなければならない手間や、Smartyで記述されたテンプレートがすでに.xml形式や.html形式ではなくなっている問題点はまだ解決されていません。

とは言っても、d3blogの対応方法は、技術的にとても良いヒントになりました。XOOPSのテンプレートは.htmlでなければならないという偏見から脱出させてくれましたし、なによりカスタムインストーラ側で.html以外の拡張子もテンプレートとして扱えることを証明してくれているのです。

そこで、今後の開発ではテンプレートの拡張子を.tplにしようと考えています。現在開発中のモジュールで実用性を検証してみたいと思います。

RELATED POSTS