過去の更新状況
BBSのスレッドを削除するにあたり、過去の更新情報を記録にとっておきます。
07.04.04 12:39 am
共有変数、マネージャをStaticにコールするのをやめました。
Sjamクラスを作成して、色々やらせる事に。
Sjam_Controller::getCommonVar();
Sjam_Controller::getManager();
↓
$this->jam->getCommonVar();
$this->jam->getManager();
Sjamクラスは今後SjamAPIに発展する予定。しないかも。
プラグインインストール時に実行イベントと実行エキストラフォームを登録するようにしました。
(いままではとりあえず全部呼んでいた)
Ajaxとか色々テスト中ヽ(・ω・)ノ
メディアファイルとDLファイルの記事への関連付けあたりが出来たらビルドしようと思います。
キャッシュ関係は当分先になりそう・・・。
07.04.05 08:26 pm
とりあえず、メディアファイルの記事への関連付けを記事登録時に自動的に行うようにした。
しかし、まだ関連付けの整合性のチェックが甘いので、メディアファイルの更新から直接関連IDを書き換えたりすると、存在しない記事へ関連づいてたりする場合があります。これは今後チェック処理をいれます。
プラグインタイプの登録方法を変更。
基底クラスで全てのメソッドを実装するのはやめて、プラグイン自体で特定メソッドが実装されている場合に自動的に登録するようにした。
記事投稿する際に、内容を編集したあとページ外に移動しようとするとJavascriptで確認ダイアログを出すようにした。
アップロードで画像を更新する際、自動作成もサムネイルのアップロードもない場合で
古いファイルと新しいファイルの名前が別の場合は古いサムネイル情報をクリアするようにした。
(ようするに、元々画像だったファイル情報のところに、更新で新しく”Flash”をUPするとサムネイルをクリアするという感じです。その際サムネイル画像が別途UPされていればそれが使用される)
その他ロジックもろもろ修正。
・お絵かきアップレット
・モバイルモード(表示、受信等)
はプラグインで実装しようかと考えているので当分先くさいです。
07.04.11 05:16 am
システムイベントを大幅に追加。
40ぐらいだったシステムイベントの数を73に増やしました。
あらゆるイベントで拡張可能をめざす(`・ω・´)
さらに更新されて87に。
'onAfterInitAction',
'onLogin',
'onLogout',
'onBeforeUpdateSystemConfig',
'onAfterUpdateSystemConfig',
'onBeforeAddBlog',
'onAfterAddBlog',
'onBeforeUpdateBlog',
'onAfterUpdateBlog',
'onBeforeRemoveBlog',
'onAfterRemoveBlog',
'onBeforeUpdateBlogOption',
'onAfterUpdateBlogOption',
'onBeforeAddUser',
'onAfterAddUser',
'onBeforeUpdateUser',
'onAfterUpdateUser',
'onBeforeRemoveUser',
'onAfterRemoveUser',
'onBeforeAddRole',
'onAfterAddRole',
'onBeforeUpdateRole',
'onAfterUpdateRole',
'onBeforeRemoveRole',
'onAfterRemoveRole',
'onBeforeAddCategory',
'onAfterAddCategory',
'onBeforeUpdateCategory',
'onAfterUpdateCategory',
'onBeforeRemoveCategory',
'onAfterRemoveCategory',
'onBeforeCatSortkeyMove',
'onAfterCatSortkeyMove',
'onBeforeAddFilter',
'onAfterAddFilter',
'onBeforeUpdateFilter',
'onAfterUpdateFilter',
'onBeforeRemoveFilter',
'onAfterRemoveFilter',
'onBeforeAddPlugin',
'onAfterAddPlugin',
'onBeforeRemovePlugin',
'onAfterRemovePlugin',
'onBeforeUpdatePluginOption',
'onAfterUpdatePluginOption',
'onBeforeAddTheme',
'onAfterAddTheme',
'onBeforeRemoveTheme',
'onAfterRemoveTheme',
'onBeforeAddEntry',
'onAfterAddEntry',
'onBeforeUpdateEntry',
'onAfterUpdateEntry',
'onBeforeRemoveEntry',
'onAfterRemoveEntry',
'onBeforeAddFile',
'onAfterAddFile',
'onBeforeUpdateFile',
'onAfterUpdateFile',
'onBeforeRemoveFile',
'onAfterRemoveFile',
'onBeforeAddMedia',
'onAfterAddMedia',
'onBeforeUpdateMedia',
'onAfterUpdateMedia',
'onBeforeRemoveMedia',
'onAfterRemoveMedia',
'onBeforeMoveDirMedia',
'onAfterMoveDirMedia',
'onBeforeMediaWebImport',
'onAfterMediaWebImport',
'onBeforeMediaMkDir',
'onAfterMediaMkDir',
'onBeforeMediaRmDir',
'onAfterMediaRmDir',
'onBeforeAddComment',
'onAfterAddComment',
'onBeforeUpdateComment',
'onAfterUpdateComment',
'onBeforeRemoveComment',
'onAfterRemoveComment',
'onBeforeAddTrackback',
'onAfterAddTrackback',
'onBeforeUpdateTrackback',
'onAfterUpdateTrackback',
'onBeforeRemoveTrackback',
'onAfterRemoveTrackback',
07.04.06 11:42 pm

メディアファイルのサムネイルは「_thum」ディレクトリではなく同じディレクトリにプリフィックス「__」をつけて保存するようにした。
07.04.07 07:13 pm
XML-RPC作業中。
自前でパーサーから作るの大変なのでPEAR:XML_PRCを使う事にしました ひらめき
とりあえず手始め手に
metaWeblog.newPost
だけ対応してみます。
おいおい
metaWeblog.newPost
metaWeblog.editPost
metaWeblog.getPost
metaWeblog.getRecentPosts
metaWeblog.newMediaObject
blogger.deletePost
blogger.getUsersBlogs
アタリを対応する予定。
モバイルからの投稿(メールでの投稿)については、前々から
http://www.ubicast.com/mailblogger/
こちらのサービスを利用しようと考えていたので、コアに携帯からの投稿機能をつける予定はありません。
閲覧については、携帯閲覧用のプラグインを作成中。
07.04.11 04:51 am

今、ロール(役職)とグループ機能の導入中です。
これによりメンバーランク制は廃止されます。
メンバーランクも単純な分メリットあったんですけど。
というか、ランク制でできていた事が、ロール制でできなくなる部分も・・・。
ここらへんはまだ仕様考え中です。
メンバーランクについては根深く絡んでいたので結構修正するのが大変。
グループ機能についてはどうしようかなぁと考えてたんですけど、結局導入する事に。
個人で使う分にはまっさきに不要な機能なんですよね、ロールとこれ。
しかし、複数ブログ管理&複数人管理と言うことは前提にしているので、やはりここはあったほうがあれでしょう。
プライベートメッセージ機能とかまではつけるつもりはないですが。(つけるとすればプラグインで可能かも)
一応現段階の考えとしては、
・1人のユーザーに対して1つのロールのみ設定可能。(複数予定なし)
・グループは掛け持ち可能。
・グループは1人~複数のユーザーのかたまり。
・ブログにはオーナーとしてグループを1つ(複数にするとまたテーブルが増えるのよね・・・)割り当てる事が出来る。
例として、複数ブログの作成についてどんなかんじか説明。
1:ロールの作成
ロール「国民(オーナーブログのみ適用)」を作成
2:グループの作成
グループ「ネツ国民」とグループ「ゲブ国民」を作成
3:ブログの作成
ブログ「ネツァワル王国のブログ」を作成しオーナーを「ネツ国民」に。
ブログ「ゲブランド帝国のブログ」を作成しオーナーを「ゲブ国民」に。
4:ユーザーの作成
ユーザー「ヒュンケル」を作成してロールを「国民」にし、グループ「ネツ国民」に参加させる。
ユーザー「エリス」を作成してロールを「国民」にし、グループ「ネツ国民」に参加させる。
ユーザー「ライル」を作成してロールを「国民」にし、グループ「ゲブ国民」に参加させる。
で、ヒュンケルとエリスは「ネツァワル王国のブログ」だけ更新する事が出来る。
ライルは「ゲブランド帝国のブログ」だけ更新する事が出来る。
と言う感じになります。
・・・(´^ω^`)めんどくせえ。
まぁ、ロールは1度しか作らなくてもいいのでまだ良いですけど、複数ブログを作成して、そのブログだけを編集できるユーザーを作りたい場合、ブログの数だけグループを作成しないといけないんですよね。そしてユーザーをそのグループに参加させると言う感じ。
グループ単位だと1つのブログに対して複数の管理者がいる場合有効的なのですが、
沢山ブログを作って各1人ぐらいしか割り当てないとかだと逆に面倒。
ブログオーナーはグループ1とユーザー1を割り当てられるようにしようかな。
ログインしていないゲストの扱いも悩みどころです。
ウーン
現時点でテーブル数18です(´゚ω゚`)
ダウンロードファイルはなんかもうやめようかなとか思い始めました。
sjam_blog
sjam_blog_option
sjam_categories
sjam_comment
sjam_config
sjam_entry
sjam_entry_cat
sjam_file
sjam_filter
sjam_group
sjam_group_member
sjam_logging
sjam_media
sjam_plugin
sjam_role
sjam_theme
sjam_trackback
sjam_user
07.04.17 09:14 pm

ロール関係は大体終わったのでグループ機能中。
メンバーの追加は今のところグループ操作権限を持ったユーザーしか行えませんが、そのうちグループ内の特定メンバーは追加できるようにしたい所。
Ajaxでスムーズに検索→追加できるようにしてみました。
07.04.18 02:01 am

あんまり進んでません。 ほほえみ
コンパネのメニューはこんな感じになりました。
ほんとは、普通のドロップダウンみたいに下に流す感じにしたかったんですけど、
IE6のzIndexのバグで検索フォームのセレクションが浮きまくりになるのでこうなりました。
Iframeを使うという手もあるみたいですけど、めんどくさそうなので…(´゚ω゚`)
07.04.18 10:28 am
携帯用にはどんな感じにHTML書くのか調べてたんですけど。
特に絵文字対応しているわけではないのに、i-modeからフツーに絵文字を投稿して、フツーに表示されている事に驚いた。さすがに、他のキャリアやPCから見たら表示されませんが。
で、PCから見ると「・・・」と表示されてるんですけど、PCから編集してもi-modeの絵文字コードが破壊されていない事に驚いた。点を一個取ってi-modeで見て見たら絵文字が一個消えてた。
ところで、最近のキャリアは殆どUTF-8に対応してるんですね。
と言うわけで、今作ってる携帯表示用のプラグインもUTF-8で表示させようかと思います(´^ω^`)
AUはOpenwaveSDKとか言う便利なのがあったので落としてきて動作確認中。
07.04.21 10:27 pm
XSS対策考え中。
管理人が信頼の出来る特定多数なら良いんですけど
信頼の出来ない不特定多数の場合、タグを使用できるようにするとXSSの問題が出てくるんですよね・・・。
特定ロールのタグの使用を不許可にしてしまえば一番話は早いのですが。
と言うか、そういう機能もあった方がいいですね。
プラグインを使用すればタグを使用できなくても画像入れたり、コード装飾したりは出来るので。
mod_securityとかも試して見ようと思いますが、使えるサーバーも限られてしまいますね。
もうめんどくさいから不特定多数の利用者は想定しない仕様にしようかな・・・(´゚ω゚`)
07.04.22 08:26 pm
不特定多数で運用する場合はもうあまり考慮しない方向で行こうと思います。
複数設置や、複数管理人や、グループ機能とかロール機能は折角作ったので残しますが、ようは仲間うちグループで利用するとかそんな感じになるかなぁ~と。
プラグイン仕様を若干変更して、ある程度不特定多数での利用も考慮してみます。
プラグインコアにアドミンプロテクトのフラグを設定できるようにして、プロテクトが付いているものはアドミン以外追加・編集・削除出来なくします。
また、プラグインをブログ共通でインストールするか選択できるようにします。但し共通プラグインとしてインストールしたものはブログ毎にプラグインオプションを設定する事は出来ません。
んで、セーフモードプラグインと言うのを作り、ブログ設定(否、ブログオプション)でセーフモードで動かすか選択します。
セーフモードプラグインの内容は、入力された文字列から害悪となるコードを除去すると言う感じです。
サブドメイン対応化一応やってみたけど、サーバーごとにディレクトリの形とか結構違ってくるのでちゃんと上手くいくのか不明。
そんな感じ。
07.04.24 03:46 am
StyleJamのコントロールパネル設計(と言うか、全体的なブログの判別方法)は、ブログエントリポイントでBLOGIDを定数宣言し、そこから起動したブログを判断しています。(?blog=1とかにするのが嫌だったから。(´・ω・`))
内部的な処理は全ブログ同じで、画面的にも殆ど変わりません。コントロールパネルも同様。
ようするに、システム設定等だけをするための、管理者モードのエントリポイントというものが存在しません。
ここら辺各アクションで慎重に権限のチェックを行う事でセキュリティを保っています。
んで、今の状態はどのブログIDから起動されたコントロールパネルでもシステム関係の設定が可能になっているんですけど、(もちろん、その権限を持っていなければ実行できませんが)今後はシステム関係の設定などは標準ブログからしか動作できないようになります。
ブログごとのコントロールパネルの違い。


07.04.25 05:05 am
テストバージョンビルドしましたヽ(・ω・)ノ
ダウンロードURLとDLキーは以前にメールでお送りしているものと同じです。
細かい事は明日書こうと思いますが、インストール方法や操作方法が分からない場合は聞いてください。
最終チェックPHP5でしかやってなかったので4でエラー出るかも・・・。
グループとかDLファイルとかロールあたりチェックしてなかた。
あと、グループの追加メンバーの検索Ajaxですが、IEだと動かないようなので後で修正します。
マルチブログはサブドメインとサブディレクトリに両対応してみましたが、ちゃんと動くかいまいちよく分からないッス。
ブログの設定でセーフモードを選択し、プラグインから「P_SafeMode」を共通プラグインでインストールすると、適当なイベントでの入力値をフィルタリングします。
07.04.25 05:26 pm
管理モードのエントリ、コメント、トラックバック、ロールのキーワード検索でエラーが出る模様です。
只今修正中。
sjam-system/app/manager/Sjam_Manager.php Line:547
Code:
$WHERE[] = sprintf("`%s` %s %s", $key, $sign, $value);
↓
Code:
$WHERE[] = sprintf("%s %s %s", $key, $sign, $value);
で回避可能です。
O/Rマッパーはまだ改善したい・・・。
07.04.25 07:24 pm
ブログオプションのクエリに不具合がありました。
修正中です。
07.04.25 07:47 pm
StyleJamのテーマ・テンプレート編集について。
StyleJamでは、一般画面用のテンプレートの塊をテーマファイルと呼んでいます。
テーマの中の個々のデザインリソースをテンプレートと呼びます。
StyleJamのテンプレートファイルはSmartyを使用していて、Smartyにコアのオブジェクト{$jam}を渡しています。
テンプレートファイルの{$jam}オブジェクトのメソッドやプロパティをコールする事で直接コアにアクセスできます。
ようするに、テンプレートからでもスクリプト動作に関する情報を書き換える事が可能なので、テンプレート内容編集は「管理者しか出来ない」と言うことを想定した設計になっています。
同梱のテーマエディタープラグインも管理者プロテクトがかかっていて、管理者以外テンプレート内容を編集する事は出来ません。
誰でもテンプレートを編集出来るように。。。と言うのは現在考えていません。
やるとなるとテンプレート仕様を作り直すか、ユーザーにはSmartyベースではないテンプレートを作らせて、Smartyベースにコンバートする形になるかなぁ・・と。
ついでに、インストール可能なテーマを増やせるのも管理者のみです。
Trackbacks
- No Trackbacks
| [TrackbackURL:] | |
| [EntryURL:] |