Category::Plugin

rename.inc.phpでキャッシュが更新されないため、変更前のページへのリンクが残る

  • ページ: BugTrack
  • 投稿者: reimy
  • 優先順位: 重要
  • 状態: 完了
  • カテゴリー: プラグイン
  • 投稿日: 2003-05-07 (水) 11:18:17
  • バージョン: 1.3.4
  • リリース予定バージョン: 1.5.2

メッセージ

rename.inc.phpでページ名を変更した場合、キャッシュが更新されないため、変更前のページへのリンクがそのまま残る(hogehoge?にならず、hogehogeのまま)。そして、変更前のページへのリンクの更新時間が(12180d)と表示される。

手動でキャッシュを更新すれば正常になる。


  • 修正しました。 cvs:plugin/rename.inc.php(v1.4:r1.5) -- ぱんだ 2003-05-07 (水) 13:22:49
  • 直っていないと思ったので、自分で直してみました。 filerename_links_update.diff -- 志田 2006-04-23 (日) 09:43:04
  • こんにちは。パッチをありがとうございます。実際にどんな事があって、原因が何だったかという苦労話を語って戴く事はできますか? -- henoheno 2006-04-27 (木) 23:56:42
  • 説明不足ですみません。症状としては、ページ「A」からページ「B」にリンクを張ると、「B」の「cache/B.ref」の中に、「A」からリンクされた、という情報が記録されますが、
    その後、「A」のページ名を「C」に変更しても、cache/B.refの中は、「A」からリンクされた、と書いてあるままです。
    このため、「B」のページの内容として
    #related
    を書いておくと、「A」を「C」にrenameした後なので、「A」というページは存在しないのに、関連ページとして、「A」が表示されていました。
    パッチの内容はこんな感じです。
    *** rename.inc.php~     2004-12-07 10:24:44.000000000 +0900
    --- rename.inc.php      2006-04-23 09:35:05.000000000 +0900
    ***************
    *** 426,433 ****
                           rename($old, $new);
     
                            // linkデータベースを更新する BugTrack/327 arino
    !                       links_update($old);
    !                       links_update($new);
                    }
            }
      
    --- 426,438 ----
                            rename($old, $new);
      
                            // linkデータベースを更新する BugTrack/327 arino
    !                       if (preg_match("@^". DATA_DIR . "(.*)\.txt@", $old, $old_match) &&
    !                               preg_match("@^". DATA_DIR . "(.*)\.txt@", $new, $new_match)) {
    !                               $d_old = decode($old_match[1]);
    !                               $d_new = decode($new_match[1]);
    !                               links_update($d_old);
    !                               links_update($d_new);
    !                       }
                    }
            }
    $old,と$newは、wiki/A.txtのように、既にエンコードされて、実際のファイルのパスになっていましたが、links_updateが要求している引数はページ名のようだったので、正規表現でページ名の部分のみとりだして、decodeしてlinks_updateにページ名を渡すように修正しました。 -- 志田 2006-04-28 (金) 21:31:15
  • BugTrack/2196 -- 2007-09-20 (木) 21:22:46
  • 志田さんご指摘の問題について、パッチを更に改変して適用しました commit:a2999d0c58 -- umorigu 2018-12-21 (金) 02:15:11


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-12-21 (金) 02:19:38
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.290 sec.

OSDN