/** * リンクする側を軸にして逆リンクを更新する。 * * @param Page $linker リンクする側のページ名。 */ function refreshlinker($linker) { //隠しページからのリンク情報は出さない。 if ($linker->ishidden()) { return; } $db = DataBase::getinstance(); $db->begin(); $body = parse_Page($linker); $seeker = new LinkSeeker($linker); $body->accept($seeker); $list = $seeker->getlist(); $_linker = $db->escape($linker->getpagename()); $db->query("DELETE FROM linklist WHERE linker = '{$_linker}'"); foreach ($list as $linkedname => $times) { if ($linker->getpagename() != $linkedname) { $_linked = $db->escape($linkedname); $query = "INSERT INTO linklist (linker, linked, times)"; $query .= " VALUES('{$_linker}', '{$_linked}', {$times})"; $db->query($query); } } $db->commit(); }