file.php の 以下の動作ってなんか違っているような気がするんですけど.. 他のページから呼ぶとおかしくなると思う -- merlin
//あるページの関連ページを得る
function links_get_related($page)
{
global $vars, $related;
static $links = array();
if (isset($links[$page])) return $links[$page];
// 可能ならmake_link()で生成した関連ページを取り込む
$links[$page] = ($page == $vars['page']) ? $related : array();
// データベースから関連ページを得る
$links[$page] += links_get_related_db($vars['page']);
return $links[$page];
}
- links_get_related_db の引数は$vars['page']ではなく、$page とちゃう?って事ですよね?
確かに怪しげだと思います。links_get_related の引数が$vars['page'] 以外で呼び出されるパターンがなかったので、今まで顕在化しなかったのでしょう。 -- にぶんのに
- もうちょい追跡。1.13と1.14
の間で該当部分が入れ替わっています。1.13より前で実験的に導入されたDB対応のロジックが1.14で取り去られています。1.13のSQLが$pageを相手にしている所からみても取り去る際に間違えた可能性が高いのではないでしょうか。 -- にぶんのに
- links_get_related_db()を分離したときに起きたみたいですね。ところで links_get_related()って繰り返し呼ばれるのかな? そんな風に書いてあるけど -- merlin
- BugTrack/735って関係ないですか? -- teanan
- 可能ならmake_link()で生成した関連ページを取り込む の部分を無くして $vars['page'] を$pageにすると 大丈夫みたいです> BugTrack/735。 この周辺 プロシージャの起動タイミングなど再検討する必要性がありそうですね。 -- merlin
- 新規なのを立てるより BugTrack/735あたりに送った方がいいかな? -- merlin