/** * Pageの内容をを内部表現形式に変換する。 * * @param Page $page * @return T_Body */ function parse_Page($page) { $_source = mb_ereg_replace('\\r?\\n', "\n", $page->getsource()); return T_Body::parse($_source, new Context($page->getpagename())); }
/** * Move attachiment file to another page. * * @param Page $newpage */ function move($newpage) { $db = DataBase::getInstance(); $from = $this->page->getpagename(); $to = $newpage->getpagename(); $_from = $db->escape($from); $_to = $db->escape($to); $query = "UPDATE attach SET pagename = '{$_to}'"; $query .= " WHERE pagename = '{$_from}'"; $db->fetch($db->query($query)); $this->notify(array('move', $from, $to)); }
/** * リンクされる側を軸にして逆リンクを更新する。 * * @param Page $linked リンクされる側のページ名。 */ function refreshlinked($linked) { $db = DataBase::getinstance(); $db->begin(); $_linked = $db->escape($linked->getpagename()); $db->query("DELETE FROM linklist WHERE linked = '{$_linked}'"); $query = "SELECT pagename FROM page"; $query .= " WHERE (source like '%{$_linked}%')"; $result = $db->query($query); while ($row = $db->fetch($result)) { $this->refreshlinker(Page::getinstance($row['pagename'])); } $db->commit(); }