estseek.inc.php

サマリ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の文書に適用します。

設置方法

  1. まず、estcmdを用意します(Windows版にはバイナリパッケージが用意されています)。
  2. サーバでestcmdが正常に動作するか確認してください。
  3. estseek.inc.phpをプラグインディレクトリに入れてください。
  4. pukiwikiのベースディレクトリ(以下、${wiki}と表記します)にestcmdを入れておきます。
  5. ?cmd=estseekにアクセスし、正常に起動するかどうか確認してください。

インデックスの自動更新

ページ編集後に自動的にインデックスを更新するには、 ${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ソースを使用しているため)。

TODO

更新履歴

コメント


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-11-21 (火) 23:42:13
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.368 sec.

SourceForge