* ページ削除を記録したい [#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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.027 sec.

SourceForge