コード例 #1
0
ファイル: outline.inc.php プロジェクト: riaf/kinowiki
 function do_block($page, $param1, $param2)
 {
     $nest = max((int) trim($param1), 1);
     $body = parse_Page($page);
     $list = array();
     foreach ($body->getelements() as $e) {
         if (get_class($e) == 'T_Heading') {
             $str = $e->getelem()->getsource();
             $id = 'id' . substr(md5($e->getlevel() . $e->getsource()), 0, 6);
             if ($e->getlevel() <= $nest) {
                 $list[] = str_repeat('-', $e->getlevel()) . "&anchor({$id}){{$str}}";
             }
         }
     }
     return convert_block(join("\n", $list), $page->getpagename());
 }
コード例 #2
0
ファイル: backlink.inc.php プロジェクト: riaf/kinowiki
 /**
  * リンクする側を軸にして逆リンクを更新する。
  * 
  * @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();
 }
コード例 #3
0
ファイル: parser.inc.php プロジェクト: riaf/kinowiki
/**
 * Pageの内容ををhtmlに変換する。
 * 
 * @param	Page	$page
 * @return	string	HTML形式の文字列。
 */
function convert_Page($page)
{
    return HTMLConverter::visit(parse_Page($page));
}