«Prev ||
1 |
2 |
3 |...|
25 |
26 |
27 ||
Next»
今まで備忘録は、ローカルPCなどで動作させたNucleusでつけていたんですが、より手書き感覚に近い「wiki」で書いてみることにしてみました。新しいオモチャを使うと、自分仕様にしたくなっちゃうんですよねぇ、ということで、
dokuwikiのプラグインを作ってみました。
見出しにセレクタを指定するプラグイン
見出し(h1からh5)にidやclassを指定できれば、cssでアイコンを指定したりできて、もっと表現の幅が広がるなぁと思いまして。(一人wikiの発想ですけど)
ja:developmentあたりを見たり、既存プラグインを参考にしたりして、なんとなく作ったものなので細かい部分把握しきれてません。
挙動や手法でおかしな点がありましたら、直してやってくださいませ。(dokuwikiのプラグインって
UTF-8で書けば良いのかな)
wikiっていうもの自体、あまり経験がないのですが、いまさらながら面白いですねぇ。dokuwikiのプラグイン構造も素敵です。使っていくうちに不満な点があれば、プラグイン作成にはまりそう(喜)。ただ、不特定多数のユーザが編集するwikiっていうものの特性上、プラグインを公開する場合、脆弱性対策には細心の注意が必要だなぁ。(当たり前か)
...続きを読む
ダウンロードを一旦止めていましたが、修正して
再開しました。2008.12.18 以前にダウンロードしていた方はお手数ですが、再度ダウンロードしてください。(バージョンはあげていません)
SkinnableAdminの開発用Nucleusでは、
スペシャルスキンタイプを動的に変更できるといいのにな。の改造を施しています。公開するにあたって、一応コアの改造が不要なようにしたのですが、公開直前に差し込んだコードのテストが不十分でポカミスしていました。
まだまだ問題は山積、テストも不十分なんですが、構造サンプルということで一旦公開いたします。しょぼくてすみません。
今のところ、、
・管理画面作成フレームワーク(作りかけ)
・overviewアクション
・itemlistアクション
・createitemアクション
・additemアクション
を実装しただけです。プラグインの対応も不十分です。
管理画面作成フレームワーク自体の構造が変わる可能性もありますので、各アクションの実装方法ドキュメントはまだ着手していません。
...続きを読む
#[追記] 動的に指定できるといいのにな。 のほうが適切かな。
スペシャルスキンパーツのことなんですけど、自分の中では「スペシャルスキンタイプ」とよんでます。
使用するスキンはグローバル変数 $skinid を変更することで動的に変えることができますが、スキンタイプは InitSkinParse イベントで値渡しされるため、プラグインで変更することができません。
SKIN.phpの以下の部分、
$manager->notify('InitSkinParse',array('skin' => &$this, 'type' => $type));
リファレンス渡しになれば、夢が広がります。
SkinnableAdminの管理ページは、スペシャルスキンタイプを使っています。URLに任意のパラメータが与えられると発動し、(プラグインオプションで)設定したスキンの「Admin」スキンタイプをパースします。現状では上記箇所をリファレンス渡しに改造するか、InitSkinParse イベント以降の制御を無理やり奪うかのどちらかが必要になります。
スキンタイプがリファレンス渡しになれば、他にも面白いことができるんじゃないかと思います。
ここ数日はデータベース周りを再調整してました。
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記法使いたかったっていうだけで、長い遠回りをしました。
あと、また懲りもせず構造部分の変更を繰り返す日々。これで良いのか?こんな構造で良いのか?って、もういい加減にしておきます。
さぁ、アイテム投稿画面周りの実装に戻ろう。
ほふく前進
アイテム投稿画面は、
skins/choia/admintemplate/item/brogname/admin-add.tpl
(choiaは今回管理画面用に作ったスキン。brognameはブログのショートネーム)
って感じでテンプレートファイルを配置しておくとそれを読み、無い場合デフォルトのテンプレートを読む構造にしました。
ブログのショートネーム別にディレクトリが分かれていますので、ブログごとに違うアイテム投稿画面を持つことができます。
このあいだ、一部画像にパスが通っていなかったのを通るようにしたり、メディアポップアップurlの設定用変数を実装したり、らじば(違
skinnable admin実装するなら、
Jeans CMSや、
Foodyn CMSに実装したほうが建設的な気がしてならない今日この頃。
アイテム新規投稿actionを実装中です。
ざっくり動くようになりました。
ツールバーやヘルプのアイコンのパスが通ってないですね。
スマイリープラグインも無事動いています。
受け口のadditem actionを実装していないので、まだ投稿テストはしてません。
各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関連
- ドキュメント
もう、ロゴ・アイコンは要らないからね(自分


プラグインのベースを簡単に生成するプラグイン。
(引数の解説などを参考に)欲しい機能をチョイスするだけで雛形を作ります。
...続きを読む
«Prev ||
1 |
2 |
3 |...|
25 |
26 |
27 ||
Next»