サマリ | Hyper Estraierによる全文検索ページ表示用プラグイン |
---|---|
リビジョン | 1.0 |
対応バージョン | 1.4.5_1(他は未確認) |
投稿者 | qinf |
投稿日 | 2005-07-11 (月) 18:21:21 |
Hyper Estraier>http://hyperestraier.sourceforge.net/index.ja.html による全文検索をpukiwikiの文書に適用します。
ページ編集後に自動的にインデックスを更新するには、 ${wiki}/lib/file.phpのpage_writeに次のような処理を追加してください (行頭に + が付いているのが、追加部分です)。
// Create wiki text file_write(DATA_DIR, $page, $postdata, $notimestamp); + // kick Hyper Estraier + $estcmd = '/var/www/wiki/estcmd'; + $estdb = '/var/www/wiki/cache/estdb'; + $estfile = CACHE_DIR . encode($page) . '.est'; + $body = convert_html(get_source($page)); + $body = mb_convert_encoding($body, 'utf-8'); + $fp = fopen($estfile, 'w') or + die_message('Cannot write cache file ' . + CACHE_DIR . $estfile . + '<br />Maybe permission is not writable or filename is too long'); + flock($fp, LOCK_EX); + rewind($fp); + fputs($fp, $body); + fclose($fp); + + $estdraft = $estfile . 'dr'; + $fp = fopen($estdraft, 'w') or + die_message('Cannot write cache file ' . + CACHE_DIR . $estdraft . + '<br />Maybe permission is not writable or filename is too long'); + flock($fp, LOCK_EX); + rewind($fp); + fputs($fp, '@uri=' . urlencode($page) . "\n"); + fputs($fp, '@title=' . mb_convert_encoding($page, 'utf-8') . "\n"); + fclose($fp); + system($estcmd . ' draft -fh ' . $estfile . ' >> ' . $estdraft); + system($estcmd . ' put ' . $estdb . ' ' . $estdraft . ' > /dev/null'); + unlink($estfile); + unlink($estdraft);
http://muffin.cias.osakafu-u.ac.jp/wiki/index.php?plugin=attach&pcmd=open&file=estseek.inc.php&refer=FrontPage
(現在、attachプラグインによるXSSのためファイルを添付できないため、このファイルはpukiwiki本家ではなく外部に置かれています)
ファイル名はestseek.inc.phpとして下さい。
PukiWikiと同じライセンスです(pukiwikiソースを使用しているため)。