«Prev ||
1 |
2 |
3 |...|
25 |
26 |
27 ||
Next»
ここ数日はデータベース周りを再調整してました。
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関連
- ドキュメント
もう、ロゴ・アイコンは要らないからね(自分


プラグインのベースを簡単に生成するプラグイン。
(引数の解説などを参考に)欲しい機能をチョイスするだけで雛形を作ります。
...続きを読む
「Nucleusのプラグインを作ってみたいけど難しそうだなぁ」「もっと簡単にできないかなぁ」とお嘆きの方に朗報です。
あなたのオリジナルプラグイン作成をお手伝いします。
と、ガラにもなくキャッチーなコピーからはじめてみました。こんにちは、佐藤(な)です。
もう、萎え萎えで崩壊してしまう前に、くぱ(おぃ)公開することにしました。酔っ払ってません。
先にイメージムービーをアップしておきます。
プラグインの名前など必要事項を入力して、使いたい機能をチョイスするだけで、プラグインの雛形を生成します。
各メソッドに引数解説が入ったり、選んだイベントが自動でgetEventListに入ったり、マルチランゲージ機能が標準で組み込まれたりしますので、開発工数を抑えられる事うけあいです。

↑何だかムービーの最後の方、動きがない状態が続いてますが撮り直すの面倒だからいいや...。
近日公開予定です。
合宿中の思いつきだったんですが、意外と便利っぽいので記事にしてみることにしました。
せっかく1ファイルで済んでいるプラグインが、多言語化のためだけに複数ファイルとなってしまうのは、もったいない。
ということで、こんな感じでどうでしょうか。
プラグインファイルは、UTF-8で書きます。(EUC版で使う場合でも)
で、以下のようなメソッドを用意しておいて、必要に応じて呼び出します。
下記例では、EUC版、UTF-8版、英語版の3つに対応していますが、別の言語を追加するのも簡単です。
function defineMultilanguage()
{
$multilang = array(
'_DEFINE_LANGUAGE' => array('English', '日本語'),
'_DEFINE_GOODMORNING' => array('Good morning', 'おっはー'),
'_DEFINE_APPLE' => array('apple', '林檎'),
);
switch (ereg_replace('[\\|/]', '', getLanguageName()))
{
case 'japanese-euc':
foreach ($multilang as $key => $value) define($key, mb_convert_encoding($value[1], 'EUC-JP', 'UTF-8'));
break;
case 'japanese-utf8':
foreach ($multilang as $key => $value) define($key, $value[1]);
break;
default:
foreach ($multilang as $key => $value) define($key, $value[0]);
}
}
別になにも変わったことしてないので、すでにやってる人もいる気がします。(あえてループの外でスイッチしてます)

アイテム投稿で、日付をグラフィカルなカレンダーから入力できるようにします。
...続きを読む
いつの話しやねん、、、まとめ記事書いてませんでした。いや、もう、燃え尽きて、ぶっ倒れておりました。
合宿ってものを一度やってみて、「こうすれば良かったー」ってものが見えてくるわけで、”最初の合宿”(?)としては良かったのではないかと個人的には思ってます。でも、やっぱり成果の発表枠は確保しておいた方が良かったですね。合宿内で
妹認証プラグインを出産・公開までできたセンセーにはビビリまくりです。
ブログで成果を書いている方もいるので、リンクはっておきます。
参加メンバーのブログ記事リンク集(順番は隊長から座席右回り)
隊長:Nucleus開発ガッチュク。その1
若:Nucleus 合宿
しづきさん:Nucleus開発合宿
やまさん:Nucleus開発合宿に参加しました
よたかさん:青春18切符残りの2枚(ナニする?さてナニしよう?)
Andyさん:Nucleusの開発合宿に参加しました
yuさん:Nucleus合宿
センセー:Nucleus合宿・第1夜
kalmさん(テーブル囲まれた中):Nucleus CMS Japan開発合宿
自分は何をやったかというと、、
- 半日近くの貴重な時間、壊れたパソコンと格闘orz
- NP_AddHandler
- プラグイン名ではない名前のスキン変数を自由に追加できるようにするプラグイン。新幹線内で作ったけど、冷静に見るとゴミでした。(涙
- NP_SkinnableAdmin(管理画面も表スキンで自由に作成できるようにするプラグイン。iPhone用とかね。)
- 管理ページをMVCモデルで実装するフレームワークの土台を用意してきましたので、プロジェクタ借りてざっくりと紹介
- overviewアクションしか実装していなかったので、合宿中に上記フレームワークに基づきitemlistアクションを実装しました。
- さて、管理ページは、いったいいくつのアクションがあるのだろうか、、それらすべてを実装するのに、あとどれくらいの日数がかかるのだろうか?
- で、合宿後の課題は、分業(誰が?w)で実装作業ができるように、フレームワークのドキュメントを整備すること。
- 言語ファイル不要のマルチランゲージ対応構造
- NP_SameSubcat の要求仕様確認
- NP_PluginAdmin の構想(簡単管理画面実装)
- NP_PageSwitch テンプレート対応版 フォーラムにアップ
一番の成果は、
想像以上のスーパーサイヤ人達を生で見れた、、ってことかな。
Andyさんの
Foodyn CMSのプレゼン、すばらしかったです。
Nested setや、
RESTfulについての基本概念まで含めながらも短い時間にすっきりまとまった内容でした。脳の構造が違うんだろうなぁ、、どこまでもついていきますw
みなさま、お疲れさまでした。増版分と今回の残りで、またやりたいですねぇ。
«Prev ||
1 |
2 |
3 |...|
25 |
26 |
27 ||
Next»