«Prev || 1 || Next»
ダウンロードを一旦止めていましたが、修正して
再開しました。2008.12.18 以前にダウンロードしていた方はお手数ですが、再度ダウンロードしてください。(バージョンはあげていません)
SkinnableAdminの開発用Nucleusでは、
スペシャルスキンタイプを動的に変更できるといいのにな。の改造を施しています。公開するにあたって、一応コアの改造が不要なようにしたのですが、公開直前に差し込んだコードのテストが不十分でポカミスしていました。
まだまだ問題は山積、テストも不十分なんですが、構造サンプルということで一旦公開いたします。しょぼくてすみません。
今のところ、、
・管理画面作成フレームワーク(作りかけ)
・overviewアクション
・itemlistアクション
・createitemアクション
・additemアクション
を実装しただけです。プラグインの対応も不十分です。
管理画面作成フレームワーク自体の構造が変わる可能性もありますので、各アクションの実装方法ドキュメントはまだ着手していません。
...続きを読む
ここ数日はデータベース周りを再調整してました。
Katsumiさん作の
汎用PDOエミュレータのpdo_mysqlドライバ用sql_biosクラスと、スタティックに使うためにPDOエミュレータをラップするクラスを作って、一応dsnから使用するDBドライバ用sql_biosクラスを自動で読む構造にしてみました。
って、まだpdo_mysqlドライバがない環境でテストしてません。普段使わない機能もあって、検証もしてません。
<?php
$stmt = SA_DB::query($query);
$blog = $stmt->fetch(PDO::FETCH_ASSOC);
?>
こんな雰囲気で使用します。
でも本当は、Nucleusの機能(管理画面)作るのに、自前でDB接続する必要ないわけです。ただ、「管理ページ作成フレームワーク」内のaction実装にPDO記法使いたかったっていうだけで、長い遠回りをしました。
あと、また懲りもせず構造部分の変更を繰り返す日々。これで良いのか?こんな構造で良いのか?って、もういい加減にしておきます。
さぁ、アイテム投稿画面周りの実装に戻ろう。
各actionごとの権限確認機能を実装しました。
Nucleus管理画面での(ページ遷移する)操作は、「action」という単位で処理されます。
スキナブルアドミンは、この「action」の、データ処理をModel、表示をViewとして実装するための簡易フレームワークなのですが、各データ処理用Model内で毎回権限確認を行うのはしんどいので、構造体を定義するだけで自動的に例外をthrowする構造にしてみました。権限確認を行う必要が無くなる(減る?)ので、各データ処理用Modelの実装が楽になると思います。全actionに通用するかは未確認。(ひょっとしてこの機能、取っ払うかも...)
Nucleus管理画面のaction名ってば統一感ない気がしますが、気のせいです?
権限確認も余分なものがある気がしますが、気のせいです?
Nucleus合宿後、放置しまくっていたSkinnable Adminの進捗です。
Skinnable Admin wiki のサイトトップにタイトルを付けました。
あ、スキナブルアドミンっていうのは、何かとストレスのもととなるNucleusの管理画面を、Nucleus自体で作って自由にカスタマイズできるようにしちゃおうって計画です。
6000行以上あるADMIN.phpの機能を実装するわけなので、しんどそうなのが目に見えて、それがまた萎える要因のひとつだったりします。一応、各機能(action)を実装するための枠組み(フレームワーク)自体はほぼ完成しています。
あと少し、あと少し、と思いながらも雑念が多くてなかなか進みません。細かいこと気にせず出しちゃえって、自分でも思ってるんですけどねぇ。
TODO(意味不明)
- アイテム投稿関係
- デザイン
- 権限関連
- リスト関連
- メッセージ関連
- extrahead関連
- quickmenu関連
- ドキュメント
もう、ロゴ・アイコンは要らないからね(自分

重度の英語アレルギーなので、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は、当面放置の予定^^
«Prev || 1 || Next»