From d54d176b6265b230878d9abfba3bf08c7a4b7d63 Mon Sep 17 00:00:00 2001 From: panda Date: Fri, 7 Mar 2003 16:05:14 +0900 Subject: [PATCH] add forceignorelist to create cache/autolink.dat --- file.php | 7 +++++-- func.php | 47 +++++++++++++++-------------------------------- 2 files changed, 20 insertions(+), 34 deletions(-) diff --git a/file.php b/file.php index 548276a..55ad2dd 100644 --- a/file.php +++ b/file.php @@ -2,7 +2,7 @@ ///////////////////////////////////////////////// // PukiWiki - Yet another WikiWikiWeb clone. // -// $Id: file.php,v 1.12 2003/03/04 06:45:57 panda Exp $ +// $Id: file.php,v 1.13 2003/03/07 07:05:14 panda Exp $ // // ¥½¡¼¥¹¤ò¼èÆÀ @@ -167,10 +167,13 @@ function put_lastmodified() // for autolink if ($autolink) { + list($pattern,$forceignorelist) = get_autolink_pattern($pages); + $fp = fopen(CACHE_DIR.'autolink.dat','w') or die_message('cannot write autolink file '.CACHE_DIR.'/autolink.dat
maybe permission is not writable'); flock($fp,LOCK_EX); - fputs($fp,get_autolink_pattern($pages)); + fputs($fp,$pattern."\n"); + fputs($fp,join("\t",$forceignorelist)); flock($fp,LOCK_UN); fclose($fp); } diff --git a/func.php b/func.php index d67f27b..74698bc 100644 --- a/func.php +++ b/func.php @@ -2,7 +2,7 @@ ///////////////////////////////////////////////// // PukiWiki - Yet another WikiWikiWeb clone. // -// $Id: func.php,v 1.26 2003/03/06 05:42:21 panda Exp $ +// $Id: func.php,v 1.27 2003/03/07 07:04:44 panda Exp $ // // ʸ»úÎó¤¬InterWikiName¤«¤É¤¦¤« @@ -410,16 +410,18 @@ function drop_submit($str) function get_autolink_pattern(&$pages) { global $WikiName,$autolink,$nowikiname; - global $ignorelistpage,$forceignorelistpage; - $auto_pages = array_merge( - get_autolink_ignorepages($ignorelistpage), - get_autolink_ignorepages($forceignorelistpage) - ); + $config = &new Config('AutoLink'); + $config->read(); + $ignorepages = $config->get('IgnoreList'); + $forceignorepages = $config->get('ForceIgnoreList'); + unset($config); + $auto_pages = array_merge($ignorepages,$forceignorepages); + foreach ($pages as $page) { - $match = preg_match("/^$WikiName$/",$page); - if($match ? $nowikiname : strlen($page) >= $autolink) + if (preg_match("/^$WikiName$/",$page) ? + $nowikiname : strlen($page) >= $autolink) { $auto_pages[] = $page; } @@ -433,32 +435,12 @@ function get_autolink_pattern(&$pages) $result = get_autolink_pattern_sub($auto_pages,0,count($auto_pages),0); - if(!$nowikiname) + if (!$nowikiname) { $result .= '|(?:'.$WikiName.')'; } - return $result; -} -function get_autolink_ignorepages($page) -{ - $pages = array(); - - foreach (get_source($page) as $line) - { - if ($line == '' or $line{0} != '-') - { - continue; - } - $pagename = trim(ltrim($line,'-')); - - if (!is_pagename($pagename)) - { - continue; - } - $pages[] = $pagename; - } - return $pages; + return array($result,$forceignorepages); } function get_autolink_pattern_sub(&$pages,$start,$end,$pos) { @@ -466,7 +448,8 @@ function get_autolink_pattern_sub(&$pages,$start,$end,$pos) $count = 0; $x = (mb_strlen($pages[$start]) <= $pos); - if ($x) { + if ($x) + { $start++; } for ($i = $start; $i < $end; $i = $j) @@ -495,7 +478,7 @@ function get_autolink_pattern_sub(&$pages,$start,$end,$pos) } $count++; } - if ($count > 1) + if ($x or $count > 1) { $result = '(?:'.$result.')'; } -- 2.11.0