カテゴリ | |
---|---|
サマリ | 指定の単語から始まるページをautolink.datに含めたくない |
バージョン | 1.4.7 |
投稿者 | もこ |
状態 | 完了 |
投稿日 | 2007-04-04 (水) 22:34:13 |
AutoLinkを多用していたのですが、先日dev:BugTrack2/81の症状が出てページの内容が表示されなくなってしまいました。 私のサイトでは 日記/なんとか というような長い名前のページが沢山あり、このページ名はautolinkされなくても良いので、日記/から始まるページ名をautolink.datに含めないようにすればautolink.datのサイズが小さくなり再びautolinkを使えるようになると思うのですが、指定の単語から始まるページをautolink.datに含めないようにすることは出来るでしょうか。
$auto_pages_a = array_values(preg_grep('/^[A-Z]+$/i', $auto_pages));同じ要望が多ければ…というか、autolinkにはやっかいな問題もあるんで、そのうち抜本的な改良も加えられるだろうから、それまでの暫定で。-- yahoo 2007-04-17 (火) 19:37:00
function get_autolink_pattern(& $pages) { - global $WikiName, $autolink, $nowikiname; + global $WikiName, $autolink, $nowikiname, $non_list; $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) if (preg_match('/^' . $WikiName . '$/', $page) ? $nowikiname : strlen($page) >= $min_len) $auto_pages[] = $page; + $auto_pages = array_diff($auto_pages, preg_grep('/' . $non_list . '/S', $auto_pages)); + $auto_pages = array_diff($auto_pages, preg_grep('/^test/S', $auto_pages)); + if (empty($auto_pages)) { (以降、省略)1つ目に追加した正規表現は、pukiwiki.ini.php で設定する$non_list に該当するページを、 autolink 登録用のページリストから削除するためのものです。