* ページ削除を記録したい [#fa438a2d] - ページ: [[BugTrack2]] - 投稿者: [[umorigu]] - 優先順位: 低 - 状態: 完了 - カテゴリー: 本体新機能 - 投稿日: 2016-01-29 (金) 02:06:33 - バージョン: 1.5.0 - リリース予定バージョン: 1.5.1 ** メッセージ [#q98aaedb] backupにて、編集の履歴は残るが、ページが削除されたことは残らない。 バックアップからは履歴「a -> ab -> abc -> (削除) -> (復活)abcd」と「a -> ab -> abc -> abcd」の違いを表せない 削除された記録及び日時を記録したい。 *** 実装 [#c7ca1330] - [[commit:224fbbe95290f77ab522f5819316c9e7aaf42887]] -------- - lib/file.phpのfile_write()で if ($dir == DATA_DIR && $str === '') { の時に、ファイルを削除してからもう1度バックアップを実行するようなかんじでしょうか?page_write()の時点では、変更前のデータを使って記録するだけのはずなので。修正がそれだけだとlib/backup.phpのmake_backup()で止められそうなので、 if (! is_page($page)) return; や $need_backup_by_time = $lastmod == 0 || UTIME - $lastmod > 60 * 60 * $cycle; の条件に新しいフラグ引数でも噛ませて強制的に記録フェーズを実行させる必要がありそうですけれど。($delete フラグだけだと、削除時点と削除済みのNULLポストを切り分けられない) -- &new{2016-02-03 (水) 22:36:15}; -- それとも、変更はlib/backup.phpのmake_backup()だけにとどめて、$delete がFALSEの時はいままでどおり、$delete がTRUEの時はis_page($page) もTRUEの時に$cycle を無視して削除直前のデータを記録&実行時刻のスプリッター+空のwikiソースデータも続けて記録、のほうが手っ取り早いかな? -- &new{2016-02-03 (水) 22:36:15}; - ご提案のように file_write() と make_backup() の中で削除時点の空コンテンツ([[BugTrack2/374]]により #author 行の1行)をbackup fileに追加するようにしました -- [[umorigu]] &new{2016-02-03 (水) 23:38:42}; #comment