ページ 12

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

Posted: 2010年7月20日(火) 11:34
by jeyson
MODxへ履歴と承認と差分表示の機能を追加するモジュール&プラグイン
「DAAAH」(DiffAndApprovalAndHistory) ver0.5をリリースします。


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

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

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

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

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

↓↓ダウンロードとスクリーンショットはこちら
http://jeyson.eshizuoka.jp/e606304.html

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

Posted: 2010年7月20日(火) 14:22
by yama
便利なモジュールをありがとうございます

http://forum.modx.jp/viewtopic.php?f=54&t=362
phpMyAdminを使わずに手軽にインストールできればと思い、支援モジュールを作ってみました
(いちおう汎用的に使えますが)

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

Posted: 2010年7月20日(火) 14:41
by jeyson
yama 様 ありがとうございます。

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

ありがとうございます。

※ただ、このSQL実行モジュールは使いようによっては破壊力があるので、
 使用後はモジュールの使用停止をしたほうがよいモジュールですね。

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

Posted: 2010年7月21日(水) 14:46
by jeyson
下記のように少しだけ調整と修正しました。

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

現在は修正版となっています。

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

Posted: 2010年9月24日(金) 21:36
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 をクリックして管理画面に入ろうとすると
処理を停止しました。本機能は編集画面より呼び出してください。
のエラーがでるのに気付きました。

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

Posted: 2010年9月25日(土) 01:10
by jeyson
下記のところでもコメントさせていただきましたが
http://jeyson.eshizuoka.jp/e606304.html#comments

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

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

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

ページの編集画面の下部で表示されるボタンが
モジュールの呼び出しボタンです。

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

Posted: 2010年9月25日(土) 11:29
by yasu
返信ありがとうございます。

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

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

無事に解決です。
ありがとうございました。

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

Posted: 2010年9月25日(土) 19:27
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
どのように修正すれば良いのでしょうか?
よろしくお願いします。

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

Posted: 2010年9月25日(土) 22:02
by jeyson
同梱のXAMPP用修正版を上書きしてください。

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

たぶん、XAMPP以外ならばphp.iniの設定を
見直して解消できると思いますが
あれこれ探って時間を使うよりも
とりあえず上記で問題解決できるかと思います。

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

Posted: 2010年9月28日(火) 09:28
by yasu
返信遅くなりました。

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

解決したら、ご報告いたします。

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

Posted: 2010年9月28日(火) 09:50
by jeyson
ここを参考にしてください。

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

これで多分直ります。

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

Posted: 2010年10月05日(火) 00:48
by yama
http://modxcms-jp.com/news/2010/1004.html
1.0.4J-r3リリースしましたが、該当ファイルの変更ないためjeysonさんのパッチ使えます。
検証先送りで、すみません orz

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

Posted: 2010年10月05日(火) 16:12
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」にてタイムゾーンの設定をしたのですが、この辺りが何か関係するのでしょうか?

承認機能はぜひ使いたいので、よろしくお願いします。

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

Posted: 2010年10月06日(水) 09:47
by jeyson
現在、私事ですが、抱えている仕事が立て込んでおりまして
土日あたりに確認させていただきたいと思います。

エラーの行数は分かりますか?
イベントログのメッセージを丸ごとコピペしていただけると助かります。
(apacheのerror_logも見れたら、もっと素敵ですが…)

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

Posted: 2010年10月06日(水) 20:27
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/
少ない情報ですが、よろしくお願いします。

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

Posted: 2010年10月10日(日) 18:09
by jeyson
正直、当方の環境では全く発生しないため
エラー内容からの推測による調整ですが
下記のファイルを試していただけますか?

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

ちなみにいただいたapacheログだと
今回の問題となるようなエラーらしいエラーはないようですね。

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

Posted: 2010年10月12日(火) 17:50
by yasu
解決しました。

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

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

今後とも、よろしくお願いします。

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

Posted: 2011年2月28日(月) 21:23
by kazuike
承認関連の機能は、MODxの大きな弱点の一つだと思っていますので、
このような拡張機能を提供していただいて、大変ありがたく思っています。

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

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

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

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

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

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

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

あと、
OnLoadWebPageCache、OnLoadWebDocument
の時の、
テンプレート変数の既定値を入れる処理は、入れなくても大丈夫かな?

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

Posted: 2011年3月01日(火) 19:59
by jeyson
本件、了解です。
改良版の制作を行います。
が、すみません。
現在、仕事が立て込んでおりまして
3月の中旬ぐらいまでお待ちください。

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