重度の英語アレルギーなので、Nucleus本家の動向はまったくチェックできていませんが、結構古くから、「Skinnable Admin Area」の話が出ているんですよね。前進してるかどうかはノーチェックなのでわかりません。正直あんまり気にならないのは何故って話はおいといて^^
Twitterで話しに出た、「表スキンで管理ページ」について。
以前、CMSに不慣れな運営者のために、管理画面の一部の機能(ユーザ管理など)を表スキンに実装したことがあって、もうちょっと煮詰めれば 「Skinnable Admin Area」 を実装できるのではないかと、、ちょうど合宿ネタにもピッタリなんじゃないかということで、土台を作り始めました。
Nucleusの管理ページの構造
pagehead()メソッドにハードコードされたhtmlを出力
次に、各actionの結果を出力(各actionの結果もハードコードされている)
最後に、pagefoot()メソッドにハードコードされたhtmlを出力
ちなみに、NP_znCustomAdminってプラグインではハードコードされている、pagehead()、pagefoot()、のhtmlを差し替えています。
NP_AdminSkinの構造
新設したスキンタイプ「admin」の内部の<%AdminSkin(main)%>と記述した箇所に、各actionの結果を出力します。
更に、各actionの結果は、個別のテンプレートファイルを読み込みます。
実際には、ヘッダ内のextraheadや、クイックメニューの構造もあるのですが、おおまかには上記のようなイメージになります。
あと、細かい部分では、
- ?admin=overview といったgetパラメータが存在すると、新設した「admin」タイプのスキンが呼ばれる。(action.php用に「action」パラメータを使われているため「admin」という名前を使用していますが変更可能)
- MVC的には、指定action(model)に紐付くviewを呼び出している。(ちなみにcontrollerはプラグインのdoSkinVar)
- テンプレートファイルではSmartyっぽいループ処理が可能(アイテム一覧にトラックバック数を入れ込んだりできる予定)
- 現状ではできないけど、使用するスキンごとに管理画面の構成を変えられると面白いかもと、妄想
- 現状では、プラグインディレクトリに存在するテンプレートファイルに記述するので、NP_znCustomAdminのようなスキン二次配布のお手軽さがない。
ということで、ExtJSデスクトップ版new Adminは、当面放置の予定^^
↑このフィードをRSSリーダーに登録しておくと、この記事へのコメント追加をチェックすることができます。
コメント追加後の、返事待ちなどにお使い下さい。
なお、コメントチェックの必要がなくなった際には、このRSSを削除して下さいね。
不要なトラフィックを避けるために、ご協力お願いいたします。
でもそうできない理由は、テンプレート数が結構な数になるので、パーツとして管理すると、$manager->getTemplate()で全てのパーツを読み込んでしまうため。
あー、個別に読むメソッド書くだけか・・・。