rename.inc.phpでページ名を変更した場合、キャッシュが更新されないため、変更前のページへのリンクがそのまま残る(hogehoge?にならず、hogehogeのまま)。そして、変更前のページへのリンクの更新時間が(12180d)と表示される。
手動でキャッシュを更新すれば正常になる。
#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