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

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

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

投稿記事 by jeyson »

MODxへ履歴と承認と差分表示の機能を追加するモジュール&プラグイン
「DAAAH」(DiffAndApprovalAndHistory) ver0.5をリリースします。


「DAAAH」はMODxにはなかった履歴と承認と差分表示の機能を追加する
モジュール&プラグインです。
次のような機能があります。

・更新履歴の管理
・現在のデータと更新前データの差分表示(Diff機能)
・いじって保存してしまったデータを更新前データへ復帰(ロールバック機能)
・一般公開のための承認ワークフロー

ぶっちゃけ、eZ Publishのような気合の入ったロールバック&ワークフロー機能ではないですが、MODxをビジネスベースで使う場合の不満点だった機能を一応補完できます。

詳しくはダウンロードして、説明文を読んでください。

※動作テストは1.0.4Jで行っていますが、たぶん0.9系でも使用できると思います。

↓↓ダウンロードとスクリーンショットはこちら
http://jeyson.eshizuoka.jp/e606304.html
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

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

投稿記事 by yama »

便利なモジュールをありがとうございます

http://forum.modx.jp/viewtopic.php?f=54&t=362
phpMyAdminを使わずに手軽にインストールできればと思い、支援モジュールを作ってみました
(いちおう汎用的に使えますが)
jeyson
メンバー
メンバー
記事: 26
登録日時: 2010年7月20日(火) 11:31

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

投稿記事 by jeyson »

yama 様 ありがとうございます。

良く考えてみればMODxのセットアップは
SEの人たちだけが行うものではないので
確かにphpMyAdminを使える人ばかりではないですからね。

ありがとうございます。

※ただ、このSQL実行モジュールは使いようによっては破壊力があるので、
 使用後はモジュールの使用停止をしたほうがよいモジュールですね。
jeyson
メンバー
メンバー
記事: 26
登録日時: 2010年7月20日(火) 11:31

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

投稿記事 by jeyson »

下記のように少しだけ調整と修正しました。

・XAMPPで動かしたとき日付が変だったので訂正
・PHP5.3でPEAR/Diffが怒られたのでclassの呼び出し方を訂正
・画像が一部欠けていたので訂正

現在は修正版となっています。
yasu
メンバー
メンバー
記事: 103
登録日時: 2009年9月09日(水) 17:54

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

投稿記事 by yasu »

こんばんは

DAAAHを導入していたのですが、エラーが出てページが真っ白になり表示されません。
イベントログをみると、タイムゾーン関係のエラーのようですが、どこを修正すればいいのか分からないので、
教えていただけないでしょうか?

・自分の環境が、テーブル名が「mod_ 」なので「DAAAH.sql 」の「modx_ 」を→「mod_ 」にすべて変更
・「DAAAH.sql 」は、yamaさんのモジュールを使ってDBへ投入。
yama さんが書きました: http://forum.modx.jp/viewtopic.php?f=54&t=362
phpMyAdminを使わずに手軽にインストールできればと思い、支援モジュールを作ってみました
・リソースの編集画面では承認の表示も出て、「ドキュメントの更新履歴/差分表示」へも入れます。
・承認する/承認しないを選んで保存をクリックすると、管理画面の右側が真っ白です(ツリーは表示されています)
・「config.inc.php」の設定は、単純設定にしています。
・マニュアルどおり、「Wayfinder2.0」の設定を変えています。


エラー表示
DAAAH - OnDocFormRender
An error occurred while loading. Please see the event log for more information.
エベントログ
strftime() [function.strftime]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead

[modx] バージョン:1.0.4J
[サーバ]
 ホスト:エックスサーバー
 PHPバージョン:5.2.14
 DB:5.0.77

以上です。
よろしくお願いします。


追記です:
モジュール → モジュール管理 → DAAAH で、DAAAHの管理画面に行けるのですが、
モジュール → (上のツールバーのような所から直接)DAAAH をクリックして管理画面に入ろうとすると
処理を停止しました。本機能は編集画面より呼び出してください。
のエラーがでるのに気付きました。
jeyson
メンバー
メンバー
記事: 26
登録日時: 2010年7月20日(火) 11:31

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

投稿記事 by jeyson »

下記のところでもコメントさせていただきましたが
http://jeyson.eshizuoka.jp/e606304.html#comments

PHP5では時間の把握にタイムゾーンを明確にして置く必要があります。
よって、
.htaccess

php_value date.timezone Asia/Tokyo
という記述を追加してください。

なお、モジュールのDAAAHは
モジュールからではなく
実は編集画面から呼び出すようにしています。

ページの編集画面の下部で表示されるボタンが
モジュールの呼び出しボタンです。
yasu
メンバー
メンバー
記事: 103
登録日時: 2009年9月09日(水) 17:54

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

投稿記事 by yasu »

返信ありがとうございます。

モジュールをダウンロードしただけで、下のコメントに気付きませんでした。
失礼しました^^;

私の環境では、.htaccessに「php_value date.timezone Asia/Tokyo」を記述では
「500 Internal Server Error」が出てしまいましたが、「php.ini」にてタイムゾーンの設定ができました。

無事に解決です。
ありがとうございました。
yasu
メンバー
メンバー
記事: 103
登録日時: 2009年9月09日(水) 17:54

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

投稿記事 by yasu »

すみません。
解決したと思ったのですが・・・
再度、質問させてください。


今まであるリソースの編集は、承認も問題なく動作したのですが、
今度は、リソースを新規に作成するときに別のエラーがでてしまいました。

イベントログ

コード: 全て選択

Undefined offset: 0
警告がでても無視してリソースを作成しようと保存してみたのですが、やはり無理でした^^;
その時にでたエラーメッセージです。

コード: 全て選択

Warning: Cannot modify header information - headers already sent by (output started at /home/inpres/inpres.jp/public_html/manager/includes/document.parser.class.inc.php:757) in /home/inpres/inpres.jp/public_html/manager/processors/save_content.processor.php on line 408
どのように修正すれば良いのでしょうか?
よろしくお願いします。
jeyson
メンバー
メンバー
記事: 26
登録日時: 2010年7月20日(火) 11:31

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

投稿記事 by jeyson »

同梱のXAMPP用修正版を上書きしてください。

このエラーは
PHPがいろいろな処理結果を出力する前に
すでになんかのデータを出力すると発生します

たぶん、XAMPP以外ならばphp.iniの設定を
見直して解消できると思いますが
あれこれ探って時間を使うよりも
とりあえず上記で問題解決できるかと思います。
yasu
メンバー
メンバー
記事: 103
登録日時: 2009年9月09日(水) 17:54

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

投稿記事 by yasu »

返信遅くなりました。

回答ありがとうございます。
今回は、XAMPPではないのでphp.iniを探ってみたいと思います。

解決したら、ご報告いたします。
jeyson
メンバー
メンバー
記事: 26
登録日時: 2010年7月20日(火) 11:31

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

投稿記事 by jeyson »

ここを参考にしてください。

http://jeyson.eshizuoka.jp/e607397.html

これで多分直ります。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

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

投稿記事 by yama »

http://modxcms-jp.com/news/2010/1004.html
1.0.4J-r3リリースしましたが、該当ファイルの変更ないためjeysonさんのパッチ使えます。
検証先送りで、すみません orz
yasu
メンバー
メンバー
記事: 103
登録日時: 2009年9月09日(水) 17:54

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

投稿記事 by yasu »

お世話になります。
jeysonさん、yamaさん、ご支援ありがとうございます。


php.iniから解決を図ろうと思いいろいろ調べたのですが、
私の知識では何も解決できずにいました。

とりあえず1.0.4J-r3にアップデートして、XAMPP環境ではないのですが、http://jeyson.eshizuoka.jp/e607397.html を
参考に修正してみました。

しかし問題は改善されず、相変わらず「リソースの新規作成」時に
DAAAH - OnDocFormRender
An error occurred while loading. Please see the event log for more information.

のシステム警告と、イベントログでは 「Undefined offset: 0」 が出てしまいます。


タイムゾーンのエラーの時に、サーバー会社から「php_value」等のPHPに対する設定は.htaccessでは行えないとの
回答をいただいたので、「php.ini」にてタイムゾーンの設定をしたのですが、この辺りが何か関係するのでしょうか?

承認機能はぜひ使いたいので、よろしくお願いします。
jeyson
メンバー
メンバー
記事: 26
登録日時: 2010年7月20日(火) 11:31

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

投稿記事 by jeyson »

現在、私事ですが、抱えている仕事が立て込んでおりまして
土日あたりに確認させていただきたいと思います。

エラーの行数は分かりますか?
イベントログのメッセージを丸ごとコピペしていただけると助かります。
(apacheのerror_logも見れたら、もっと素敵ですが…)
yasu
メンバー
メンバー
記事: 103
登録日時: 2009年9月09日(水) 17:54

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

投稿記事 by yasu »

お忙しいのに申し訳ありません。

エラー行数とか出ずに、これだけの情報しかありません。
もっと他に確認すべき箇所があればおっしゃってください。

システム警告のコピペ
システム警告
DAAAH - OnDocFormRender
An error occurred while loading. Please see the event log for more information.

イベントログのコピペ
DAAAH - Plugin - イベントログ
エラー
イベントID: 1 ソース: DAAAH - Plugin
日付: 2010/10/06 19:52:28 ユーザー: admin
Undefined offset: 0

apacheのerror_logはこれで良いのでしょうか?
サーバーのエラーログをダウンロードすると、以下のログが残っていました。毎回、このエラーのようです。
[Wed Oct 06 19:52:10 2010] [error] [client 000.0.000.171] File does not exist: /home/inpres/inpres.jp/public_html/assets/templates/manager/images/input-bg.gif, referer: http://×××.jp/manager/
少ない情報ですが、よろしくお願いします。
jeyson
メンバー
メンバー
記事: 26
登録日時: 2010年7月20日(火) 11:31

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

投稿記事 by jeyson »

正直、当方の環境では全く発生しないため
エラー内容からの推測による調整ですが
下記のファイルを試していただけますか?

一応、当方の環境で動作テストを行い
動くことは確認済みです。

ちなみにいただいたapacheログだと
今回の問題となるようなエラーらしいエラーはないようですね。
添付ファイル
plugin_DAAAH_053.zip
(6.62 KiB) ダウンロード数: 1383 回
yasu
メンバー
メンバー
記事: 103
登録日時: 2009年9月09日(水) 17:54

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

投稿記事 by yasu »

解決しました。

jeysonさん、お忙し中ありがとうございます。
上記ファイルに変えたところ、細かく動作テストはしていませんが、
今まで出ていたエラーは出なくなりました。

私の力量では、いったい何が原因だったのかは分かりませんが、
これで前に進むことができます。
ありがとうございました。

今後とも、よろしくお願いします。
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

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

投稿記事 by kazuike »

承認関連の機能は、MODxの大きな弱点の一つだと思っていますので、
このような拡張機能を提供していただいて、大変ありがたく思っています。

実は、現在開発中のサイトで、はじめてDAAAHを使わせていただいているのですが、
以下の現象がおきておりまして、どのように対処すべきか悩んでおります。
おそらく、何らかの手を加える必要があるのではないかと思いますが、
修正箇所のヒントだけでもいただけるとありがたいです。
(MODxのバージョンは、1.0.5Jです。)

▼現象
テンプレート変数について、一度既定値以外の値で保存(承認)してしまうと、
既定値に戻すことができなくなるという現象が起きています。
管理画面上は戻るのですが、
承認済みデータとしては、前の既定値以外の値が残っています。

▼ちょっと考えてみました
MODxのコアは、テンプレート変数の値が、既定値である場合や未入力の場合、
テンプレート変数の値をデータベースに記録しませんね。
変更時、既に既定値以外のテンプレート変数のデータがある場合は、それを削除しますが、
このあたりの仕様が、DAAAH側で反映されていないのかな?と想像しています。
(間違っていたらごめんなさい)

ちなみに、
既定値での保存(承認)と、既定値以外での保存(承認)を繰り返すと、
「<prefix>_approvaled_site_tmplvar_contentvalues」の中に、
「tmplvarid」と「contentid」が同じ組み合わせのレコードが重複して増えていくようです。

以上、よろしくお願いいたします。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

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

投稿記事 by kazuike »

取り急ぎの対応として、
プラグインコードの373行目に以下を入れて、当該リソースの承認済みテンプレート変数をいったんクリアするようにしました。
--------
$modx->db->delete($contentvalues_approval_table_name, $sql_string_where);
--------

あと、
OnLoadWebPageCache、OnLoadWebDocument
の時の、
テンプレート変数の既定値を入れる処理は、入れなくても大丈夫かな?
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
jeyson
メンバー
メンバー
記事: 26
登録日時: 2010年7月20日(火) 11:31

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

投稿記事 by jeyson »

本件、了解です。
改良版の制作を行います。
が、すみません。
現在、仕事が立て込んでおりまして
3月の中旬ぐらいまでお待ちください。

ごめんなさい。(泣)
kazuike さんが書きました: ▼現象
テンプレート変数について、一度既定値以外の値で保存(承認)してしまうと、
既定値に戻すことができなくなるという現象が起きています。
管理画面上は戻るのですが、
承認済みデータとしては、前の既定値以外の値が残っています。
返信する