サマリ | Namazu検索ページ表示用プラグイン |
---|---|
リビジョン | 1.0 |
対応バージョン | 1.4.2 |
投稿者 | nobu_s |
投稿日 | 2004-05-19 (WED) 17:56:08 |
バージョン | 変更点 |
---|---|
1.0 | 初期リリース |
#namazu(/foo/bar/namazu.cgi) #namazu(box,NamazuSearch)
Namazuを表示したいページに記入します。引数にはNamazuのURLのドメイン以下を指定してください。上記の例はhttp://www.example.com/foo/bar/namazu.cgiの場合になります。
第1引数に'box'を指定した場合は、Namazu検索用フォームを表示します。第2引数には上記#namazu(/foo/bar/namazu.cgi)を設置したwikiページを指定してください。メニュー等に設置してください。
define("DELETE_STRINGS","\<h1\>Namazu.*\<\/h1\>|\<address\>.*\<\/address\>"); define("BUTTON_NAME","search"); define("BOX_WIDTH","15"); define("DEF_MAX","10"); define("DEF_RESULT","normal"); define("DEF_SORT","score");
選択肢 | 投票 |
使用している | 27 |
選択肢 | 投票 |
はい | 12 |
いいえ | 8 |
インデックスの指定に対応していないのは、(わたしにとって)致命的な欠点です。
やっぱり需要はありますか。とりあえずPukiwiki内のデータのみ検索できることが目的だったのでこういう仕様になっています。
試す環境が無い(Namazuの複数インデックス環境を構築していない)のでなんともいえないのですが、http://www.namazu.org/cgi-bin/namazu.cgiでインデックスを指定して試してみたのですが、GETの文字列を見ると同じキーが複数でてくるのが問題となってます。
NMZ.head.jaでidxnameをidxname[]に変更すればこのプラグインでの対応は可能ですが、Namazuの検索ができるかがわかりません。NMZ.head.jaでidxname[]に変えてみて問題があるかないか試してもらえますか?
上記の様にidxname[]に変更することが可能な場合はこれを使用してみて試してください。すいませんがこちらでは動作未確認ですので結果をお知らせください。。
idxname[]は使えない模様です。とりあえず
- $idxname .= "&idxname[]=".$post["idxname"][$i]; + $idxname .= "&idxname=".$post["idxname"];こうすることで、単一インデックスの指定はできるようです。が、apacheのlogによるとquery=が
query=\xcd\xd1\xb7_\xb4\xc9\xcd_こんな感じで渡っており、検索が正しく行われないようです(これは環境依存かな....)。
query=\xcd\xd1\xb7_\xb4\xc9\xcd_の件はこちらのミスです。
$parm = "query=".$post["query"]...を
$parm = "query=".urlencode($post["query"])...に変更してみてください。
idxname[]の件については了解しました。別案としてquery,whence,max,result,sort以外のGETパラメーターは全て有効にすることで対応してみたいと思います。少しお待ちください。
一応こちらで環境を作ってみて複数インデックスに対応してみました。これを試してみてください。設定については
define("DEF_IDXNAME","");が増えていますのでインデックス名を指定(複数も可能です)してください。
こちらでの複数インデックスの動作確認はほとんどしていません。とりあえず動くものを作っただけですので、動作報告お願いします。
//FORMの置換(フォームをPOSTに変更・フォームの移動先をPAGE_NAMEのGETに変更) $form_pattern = "method=\"GET\""; $form_replace = "method=\"post\""; - $httpfile = str_replace($form_pattern,$form_replace,$httpfile); + $httpfile = str_ireplace($form_pattern,$form_replace,$httpfile); $url_pattern = "(action=\")(.*)(\")"; preg_match("/".$url_pattern."/",$httpfile,$matchs); - $url_replace = $matchs[1].$script."?cmd=read&page=".$vars["page"].$matchs[3]; + $url_replace = $matchs[1].$script."?cmd=read&page=".urlencode($vars["page"]).$matchs[3]; $httpfile = preg_replace("/".$url_pattern."/i",$url_replace,$httpfile); //リンク先の置換(リストが多数の場合のページ番号によるリンク先を変更) - $link_replace = $script."?cmd=read&page=".$vars["page"]."&"; + $link_replace = $script."?cmd=read&page=".urlencode($vars["page"])."&"; $httpfile = str_replace($matchs[2]."?",$link_replace,$httpfile);get → post 置き換えの正規表現を使わない版も、