More Related Content
Similar to 2006 03 18_osc2006_x_cube_template (20)
More from Tom Hayakawa (20)
2006 03 18_osc2006_x_cube_template
- 1. XOOPS Cube テンプレート仕様 Malaika System 早川知道 (Tom_G3X ) 2006.3.18
Editor's Notes
- よいこのみなさんであれば、御理解いただけると思いますが・・・・。
- XOOPS Cube 2.1alpha1 の時点における、テーマ・テンプレート関連の仕様などについて説明いたします。
- Smarty バージョンは、 XOOPS2.0.9 ( 2004.12.26 )で、 2.6.5-dev に更新されて以来、 XOOPS 2.0.13a-JP まで更新されていませんでした。 それで、 XOOPS Cube 2.1 alpha1 では、 2.6.12 にバージョンアップされています。 Smarty の主な変更点は、バグフィックスなどで、目立った追加機能や拡張などは無いようです。
- Smarty 変数への定数のアサインは、 XOOPS 2.0.3 ( Smarty 2.5.0 )あたりから可能になっていたようだが、 XOOPS 2.0.3 以前のバージョンとの互換性などの問題から、最近まであまり使われてませんでした。 今回、 Legacy 関連モジュールでは、これらを多用しています。 メリットとして、プログラム内での記述を簡略化出来るので、 実行ファイルのコーディングの省力化とか、効率良くメンテナンス出来る事などが期待出来ます。
- 従来の XOOPS2.0 系では、テンプレートを DB に登録する際にエラーチェックの為に毎回コンパイルしおり、 オブジェクトを変数アサインしてると、必ずエラーになった。 それで XC2.1 は、インストール時に DB にテンプレートを保存するが、コンパイルはしなくした。 (その為、テンプレートのプレビュー機能も働きません) XC2.1 では実際にテンプレートが使われるまで、コンパイルを行わないので、オブジェクトをアサインしても使えるようになった。
- 今までプログラム上でサニタイズしていたものを、 テンプレートでサニタイズを行なうように統一した。 プログラム上では、特に必要なければ変数をサニタイズする必要も無く、 生の値を変数として与え、テンプレートでサニタイズする。 従来、多くのモジュールは、プログラム側で行っていたが、それをテンプレートで行うようにした。 (処理分担の正常化。) 以前の XOOPS テンプレートと比較すると、テンプレートが複雑化してるようにも思えるが、 本来の処理分担のあり方と考えてます。また、色々な意味で拡張性が高まったとも思います。
- Xcube 2.1 alpha1 では、これらの独自プラグインを追加している。
- <{assign name=id value=$obj->get(id’)}> <input name=“hoge[<{$id}>]”>
- 時々、タイムアウトする時があるので注意。
- このへんで、ちょっと休憩でもするべぇ~か? ファイルベースのテンプレートシステム ・管理画面という特殊性 ・変更頻度は少ないと思われる
- 実際には、こんな画像の呼び出しはしてません。
- 通常、CSSでは、 Smarty 変数は使えません。 ところが、上記の style モデファイの様に、CSSにおいても、オーバーライド機能を使った場合に、画像などの相対パスを変わりなく実行する必要があります。 それを実現する為に、管理画面の style.css は、一旦、テンプレートとして扱い、 /modules/base/admin/css.php の位置から表示させています。 ですので、表面上は、CSSファイルでありながら、実質はテンプレートとして扱われてますので、 Smarty 変数を使用する事が可能です。
- ● 管理画面テンプレート HTML&CSS のコーディング指針 モジュール開発者が、管理画面のテンプレートを作成するに当たって、 それぞれ好き勝手に記述しては、管理画面全体としての統一性や操作性が失われてしまいます。 その為、ある程度、標準となる記述方法を提示する事で解決できないかと考えます。 ● HTML タグ・ CSS の記述ルール XOOPS のテーマ・テンプレート・システムの性格上、各テーマ・テンプレートファイルは別々の開発者が作成する事が、ほとんどです。 ですので、ある程度の記述指針が無いと、予期せぬ表示の乱れや、トラブルが発生する可能性がありえます。 また、重複が好ましくないタグなどの使用指針も必要になります。 その為に、テーマ・テンプレート作成時の簡単なコーディング指針を示しておきます。 CSSにおいては、基本的に class だけを使用します。 id は、その表示ページ内において、ユニークな存在でなければなりませんので、 XOOPS のテーマ・テンプレート・システムのように別々の開発者が作成する場合は、特に注意が必要です。 ですので、基本的に id に関する指針は、示しません。 もし、テーマ・テンプレート・システム内で、 id を使われたい場合は、テーマ内で使用される事を推奨します。
- 見出しタグについては、 XOOPS のテーマ・テンプレートの性格上、 テーマとテンプレートで住み分けするのが良いと考えています。
- 本日は、どうもありがとうございました。