内容が変更されていないときのファイル更新について

メッセージ

現状、編集画面で内容を一切変更していなくても、
更新ボタンを押すと、各種更新処理がおこなわれてしまいます。
これは無駄な処理であるとともに、変更がないにもかかわらず、最終更新が書き換えられるので、
管理する側にとってもユーザー側にとってもあまり良くないように思います*1
ソースを見るためにプラグインのsource を使わずに編集(edit)で代用している人がいる*2ので、キャンセルではなく間違って更新を押しているせいだとは思うのですが。


そこで、このような改造はどうでしょうか?
見出しから見出しまでの編集などの自作系への影響は、まだ確認してないので参考までにどうぞ。

// $Id: file.php,v 1.78 2007/02/11 05:53:30 henoheno Exp $
(変更点がないため、中略)
// Put a data(wiki text) into a physical file(diff, backup, text)
function page_write($page, $postdata, $notimestamp = FALSE)
{ 
  global $autoalias, $aliaspage;

  if (PKWK_READONLY) return; // Do nothing

  $postdata = make_str_rules($postdata);

  // Create and write diff
  $oldpostdata = is_page($page) ? join('', get_source($page)) : '';

  //分岐を追加
  if ($oldpostdata == $postdata) return; // Do nothing

  $diffdata    = do_diff($oldpostdata, $postdata);
  file_write(DIFF_DIR, $page, $diffdata);
(変更点がないため、以降省略)

ファイルの更新処理をしてしまうのは、バグと言ってしまう程のものではないので、
現状のままにするというのもありなのかもしれません*3
なので、上にも書きましたが参考意見のひとつとしてみてください。

実装




*1 これが悪意のある攻撃ならば、話は別ですが
*2 私もコマンド入力が面倒なので、ソースが必要なときは、基本的に編集ボタンからソースを見ています。人のことを言える立場ではないです。
*3 悪意ある攻撃に対するログを取るという意味で
*4 たしか1つのページが更新されるとすべてのページに影響があったような

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-02-09 (火) 23:03:03
Site admin: PukiWiki Development Team

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

SourceForge