[モジュール][プラグイン] DAAAH - 履歴と承認と差分表示の機能を追加

自作のスニペット・プラグイン・モジュールなどがあればご紹介ください
フォーラムルール
本家フォーラムなどで既に公開されてるものは、当該トピックまたは制作者サイトなどへのリンクを張っていただくだけでも結構です。
新規部品用にトピックを立てる場合は、ここのトピックを参考に必要な情報を入力するようにしてください。
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: [モジュール][プラグイン] DAAAH - 履歴と承認と差分表示の機能を追加

投稿記事 by kazuike »

jeysonさん
ありがとうございます。
よろしくお願いします。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

[モジュール][プラグイン] DAAAH - 履歴と承認と差分表示の機能を追加

投稿記事 by yama »

仕事で使う予定があるので、少し手を入れてみました。

・sqlファイルをインポートせずにインストールできるようにする
・データベースのtableプレフィックスを意識せずにインストールできるようにする
・PHP5.3対応(PHPワーニング表示の抑制とタイムゾーン設定)
・いちおうのclass化(とりあえずモジュール画面だけ。function分割はこれから)
・xampp用の処理を統合(日付の処理の文字化け防止など)

もしjeysonさんのほうで手を入れている最中であれば、もしよければマージさせていただきたいです。

添付ファイル

daaah051.zip
(39.73 KiB) ダウンロード数: 374 回
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: [モジュール][プラグイン] DAAAH - 履歴と承認と差分表示の機能を追加

投稿記事 by kazuike »

DAAAHについて、
最近わかったこと(いっしょにお仕事してる方が見つけてくれました)がありますので報告しておきます。

公開開始予約、公開終了予約の処理は、
DocumentParserの「checkPublishStatus」で行っているかと思いますが、
これが、承認済みデータを処理しないので、予約が反映さません。

あと、
getDocument、getDocuments、getDocument~、get~Children、getTemplateVar~
等のAPIが使えませんので、
必要に応じてスニペット等を改造するとか、
getFullTableNameに手を加えて、対象のテーブルを承認済みデータに切り替えてしまうとか、
そういった対応が必要な感じです。


ついでに、MODxのコアにも、
サイトのリフレッシュ「manager/actions/refresh_site.dynamic.php」で、
unpub_dateが0の際の条件が抜けていて、
公開終了予約をしていないと公開開始予約をしていても公開にならないというバグらしきものがありました。
(閲覧時に前述の「checkPublishStatus」が処理するので、大きな問題にはならないようですが。)
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: [モジュール][プラグイン] DAAAH - 履歴と承認と差分表示の機能を追加

投稿記事 by yama »

yasu さんが書きました:今度は、リソースを新規に作成するときに別のエラーがでてしまいました。

イベントログ

コード: 全て選択

Undefined offset: 0
上記の件、分かりました。OnDocFormRender内の処理で if( $modx->db->getRecordCount( $result ) >= 1 ) という判定がありますが、ページを新規作成する場合はヒストリーデータが一件もないはずなので、その場合の処理を考える必要がありますね。取得できてないのに $publish_history_id = intval($pub_his_contents['editedon']); を実行しようとしてエラーになってました。
また後ほどアップロードします。

追記
http://code.google.com/p/modx-evo-extra ... etail?r=13
とりあえず修正しました
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: [モジュール][プラグイン] DAAAH - 履歴と承認と差分表示の機能を追加

投稿記事 by yama »

http://modx.jp/news/2011/480.html
タイムゾーンまわりのエラーが出る場合は1.0.5J-r2にアップデートすると直ります
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: [モジュール][プラグイン] DAAAH - 履歴と承認と差分表示の機能を追加

投稿記事 by yama »

https://github.com/yama/daaah
事情があって、タブ化を行なわないバージョンを作りました。先日リリースしたタブバージョンとは完全に別ルートで作った別物です。
今後バージョンアップしない可能性が高いですが(DB構造は変えないのでタブバージョンに差し替えることはできますが)、各部の不具合を修正しつつ少し使いやすくしてありますので、興味ある方はどうぞ。バグレポート歓迎です。

https://github.com/yama/daaah/commits/master/
実際に行なった作業については上記で確認できます。たいしたことはやってなくて、ソースフォーマット作業に近いです。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: [モジュール][プラグイン] DAAAH - 履歴と承認と差分表示の機能を追加

投稿記事 by yama »

https://github.com/yama/dha
タブ化を行なったバージョンを、名前を変更して「DHA」としてリリースしました。名前を変更したのは特に深い意味はなく、クライアント様が発音しにくそうにしていたためです。汗

オリジナルのDAAAHと違って、設定はconfig.inc.phpではなく「dha_config」という名前のチャンクに保存することにしています。

基本的にMODXに履歴管理と承認ワークフローの実装を行なうための参考として取り組んでいて、最終的に、このプラグイン単体で実用的なものに仕上げる目標はありません。コアで実装できる見通しが立った時は、簡単に移行できるようにしたいと思います。

今のところDAAAH/DHAで気になっている点は、

・基本的にサイト全体に渡ってキャッシュが無効になるみたい
・$modx->documentObjectなどの基本的なAPIが使えない。これらのAPIを用いる拡張機能(MODXではそういうのは多いですが)を使う場合は改造が必要
・構造的に、日時予約投稿・公開終了日時予約投稿ができなくなる。力技を使えば可能ですが・・
・履歴管理の対象データは承認済みデータ(編集履歴として蓄積するわけではないため、誤操作のために直前の状態に戻したいなどの目的には使えない)

という感じです。もともとMODXはこういった機能を実装するには向いてなくて、本体の仕様を基本からよく考える必要があると思います。
返信する