PEAK XOOPS - OSC2006 Spring/Tokyoの発表内容 in englishin japanese

Archive | RSS |
XOOPS
XOOPS : OSC2006 Spring/Tokyoの発表内容
Poster : GIJOE on 2006-03-19 05:30:42 (14906 reads)

in englishin japanese
去る2006年3月17・18日のOSC2006 Spring/Tokyo において、25分間だけお話しをしたのですが、その内容をここに書いておきます。

配布資料のプリント内容は以下の通り。
パワーポイントファイルと、その時に話した内容のあんちょこは下の場所に置いておきます。
http://www.peak.ne.jp/support/OSC200603/

主題

WebデザイナーのワークフローとXOOPSのテンプレートシステムはとても相性が悪い。
デザイナーに気持ちよく働いていただけるような、新しいテンプレートシステムをXOOPSモジュールとして構築する。


(前提知識)「テンプレート」という言葉の定義

テンプレートシステムにとっての「テンプレート」(本来の意味)
XOOPSにおける「テーマ」に対する「テンプレート」


(前提知識)Smartyにおけるテンプレートの保存場所に依存する特性(優位点)

DB - HTTP経由の操作が容易・フラット構造・保存位置が一意
FILE - テンプレート編集を反映させやすい・大規模な変更に強い


(前提知識)現状(XOOPS2.0.x/2.2.x)のテンプレートシステムの標準仕様

DBテンプレートを束ねたものを「テンプレートセット」と呼ぶ
「テンプレートセット」を1セットないし数セット持つ
実際に利用テンプレートは「一般設定」で指定されたもの
標準の「defaultテンプレートセット」は編集不可能
default以外のテンプレートセット(カスタムテンプレートセット)は編集可能
DBテンプレートが利用される時、指定されたカスタムテンプレートセット内に該当テンプレートがなければ、defaultテンプレートセット内のテンプレートが利用される(フォールバック)
モジュールインストール/アップデート時に、モジュールが用意したテンプレートが、defaultテンプレートセットに取り込まれる


XOOPS2.0テンプレートシステムの8つの問題点と、tplsadminによる解決

・defaultセット内のテンプレートは編集不可能
ちょっとだけ変更したい、という場合でも、テンプレートセットまるごとコピーして、利用テンプレートを変更する必要がある。しかもそれをやってしまうと、その後のモジュールアップデート時に、本来デフォルトのままであったはずのテンプレートまでまったく更新されなくなってしまう。

-> defaultテンプレートを編集可能とする (tplsadmin 0.20で実装済)


・テンプレートセットの操作性が劣悪
唯一存在しているのが、テンプレートセット丸ごとのコピーと、テンプレートファイルの個別削除のみ。

-> テンプレートのコピー・削除、空のテンプレートセット生成など、本来用意されるべき機能を実装 (tplsadmin 0.20で実装済)


・テンプレートの変更箇所が判らない
モジュールがアップデートして、defaultテンプレートが差しかわった場合に、自分の変更箇所とのマージをどのようにすべきかが判らない。

-> diff機能の実装で、「テンプレートのどこをいじったか」が一目瞭然となる (tplsadmin 0.20で実装済)


・どのテンプレートをいじるべきかが判らない
かなりの経験を積まない限り、公開サイト画面をいくら凝視しても、どのテンプレートファイルによる出力なのかが想像できない

-> 公開画面側にテンプレート名を出力する機能の実装 (tplsadmin 1.0 の新機能)


・テンプレート内にどの変数がどのようにアサインされているか判らない (Q5)
defaultテンプレートで利用されている変数名は判っても、利用されていないでこっそりアサインされている変数はPHPソースコードを追わない限り見つけられない。しかも、アサインの仕方はバラバラ。パスの最後に/がつくか、htmlspecialchars()がかかっているか、時間表現は整数だったりフォーマット済だったりと、とても想像がつかない。

-> 該当テンプレートにアサインされた変数の情報を一覧できる機能の実装 - Dreamweaver用Extension (tplsadmin 1.0 の新機能)

・バックアップとリストアが不完全
各テンプレートセットについて、バックアップはちゃんと出来るが、すでに存在しているテンプレートセットへのリストアが出来ず、一部のファイルだけを戻す、といったことが不可能。さらに、バックアップはzipでもtgzでも出来るのに、リストアはtgzしか受け付けないという非対称性を持つ。

-> tplsadmin内でのテンプレートセットのバックアップとリストアの実装 (tplsadmin 1.0 の新機能)


・変更すべき箇所がテーマとテンプレートでバラバラ
テーマはtheme/テーマ名、テンプレートは管理画面であり、統一的な編集インターフェースがない。テーマとテンプレートのセットの配布も困難。

-> テーマのサブディレクトリにカスタムテンプレートを記述したファイルを置ける機能の実装 (tplsadmin 1.0 の新機能)


・プレビューが困難
テンプレート管理にもプレビューは一応存在するが、テーマ内でどのように表示されるかが判らないのであまり意味がない。

-> テーマのサブディレクトリ内テンプレートファイルの自動更新(吸い上げ)機能の実装 (tplsadmin 1.0 の新機能)

0 comments
Printer friendly page Send this story to a friend

Comments list

Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!