search.inc.php(改)

  • pukiwiki-1.4.5_1 標準添付の search プラグインを拡張したものです。

特徴

  • 検索結果の詳細を表示(wiki書式)
  • 検索に一致するページが多い場合に分割&ナビゲーション表示
  • ブラウザの「戻る」での操作も可能(フォーム再送が不要)。

スクリーンショット

search.png

ダウンロード

  • 2006-07-09 revision 0.4 filesearch.inc.php.0.4.txt
    • 検索する最短文字数を設定できるように対応。
  • 2006-04-17 revesion 0.3 filesearch.inc.php.0.3.txt
    • 特殊記号(&xx;になる記号)を含む文字列を与えたときに検索結果が表示されない不具合を修正。
    • PCREのS装飾子付加による検索の高速化。
  • 2006-03-20 revesion 0.2 filesearch.inc.php.0.2.txt
    • 検索結果を上下1行含めて出すように修正。
    • 検索フォームへの対応(dev:BugTrack2/131)。
    • 検索結果を全て表示していない不具合を修正。

ご注意

  • 標準のプラグインを上書きしないようにご注意ください(名前を変えて保存しておきましょう)。
  • sessionを使用していますので、他のプラグインと競合した場合に若干の変更が必要な場合があります。

コメント

  • まだまだ冗長な部分がありますが、外が明るくなってきたのでこのへんで (^^; -- teanan 2005-06-07 (火) 04:49:32
  • あれ、なんか変かも。・・・調整中 (^^; -- teanan 2005-06-07 (火) 11:05:37
    • 素のpukiwiki-1.4.5_1で問題ないようですので、公開再開。-- teanan 2005-06-07 (火) 11:15:31
    • どうもサーバ側の環境によって動かないようです。調査中。 -- teanan 2005-06-07 (火) 11:52:21
    • PHP5でしか動作しないことが判明しました。修正します [sad] -- teanan 2005-06-07 (火) 13:29:58
    • revision 0.1 にて修正済み。 -- teanan 2005-06-07 (火) 14:22:39
  • ということで、このサイトにも最新版をあてました。上の検索ボックスからどぞ。 :D -- teanan 2005-06-07 (火) 14:28:36
  • 試してみました。使いやすいですね。 -- nanashi 2005-06-29 (水) 09:48:23
    • ありがとうございます :) -- teanan 2005-06-29 (水) 11:43:25
  • 検索エンジンの追加 - Firefox まとめサイトPukiWikiの検索では使えません。Mozillaの検索拡張 - Software Linkageを読むと。>「methodがPOSTなトコロは検索できない仕様」と書いてありますが、対応出来ないでしょうか?PukiWikiPlusのsearch.inc.phpでは出来ましたが、(改)がとても便利なのでお願いします。 -- fulo 2005-09-24 (土) 23:42:13
    • えと、すみません、理解できてないです (^^; 最初にGETで検索出来ればいいのでしょうか? それであれば、ファイルの先頭にある PLUGIN_SEARCH_DISABLE_GET_ACCESS を 0にするといけると思います :) -- teanan 2005-09-25 (日) 12:10:38
  • 出来ました!説明が稚拙ですみませんでした。拡張を使うとweb上の単語をドラッグするだけでコンテクストメニューより好きな検索エンジンで調べられるのです。PukiWikiをデータベースとして使っているので、検索プラグインを作ってしまえば、ネットサーフィン中に引っかかった単語で自分のWikiを簡単に検索出来ます。検索窓を使わずに。やはりわかりずらいですか??とにかく便利なんです。ありがとうございました。 -- fulo 2005-09-25 (日) 16:36:34
    • なるほど、面白い機能ですね :) ご説明いただき、ありがとうございました。 -- teanan 2005-09-26 (月) 03:11:22
  • 重宝させて貰ってます。質問なのですが、検索結果の詳細を表示で表示されるハイライトされた行の上下の行(合計三行)も表示させることはできないでしょうか? -- ongaq 2006-03-18 (土) 03:55:32
    • すみません、まだ調べが進んでいません。 -- teanan 2006-03-20 (月) 13:25:28
  • あまり美しいソースがかけませんでしたけど、とりあえずそれっぽいのができました。revision0.2をお試しください。 -- teanan 2006-03-20 (月) 15:40:33
    • 検索結果が全部ハイライト表示できていないバグがありましたので、あわせて修正しています。さらに、dev:BugTrack2/131への対応もしたつもりです。問題がありましたらお知らせください。 :) -- teanan 2006-03-20 (月) 15:42:23
  • 上手く表示することができました。お手数かけて恐縮です、ありがとうございました! -- ongaq 2006-03-20 (月) 16:09:31
  • 更に質問なのですが、このサイトでは1.4.6でこのプラグインが使えてるようですが、こちらで1.4.6で使用してみると検索ワードを入れても結果を出力しないようです。1.4.5_1専用なのでしょうか? -- ongaq 2006-03-20 (月) 19:54:35
  • 1.4.6でも使えるはずですが・・・。動作確認も1.4.6でやっています。なにか他に情報はないでしょうか? -- teanan 2006-03-20 (月) 21:00:05
  • う、すいません。ミラーのほうで実験してたのですが本家でやると1.4.6でも動作確認できました。余計な心配かけてすみませんでした -- ongaq 2006-03-20 (月) 22:34:51
    • 了解です、安心しました :D -- teanan 2006-03-20 (月) 23:21:59
    • って、もしかすると、サーバの環境によって動かないのかもしれませんね・・・ (^^; -- teanan 2006-03-20 (月) 23:22:50
  • 両方XREAなんですが、本家のPHPverが4.4.2で、ミラーが5.0.4なのでそうなのかもしれません… [sad] -- ongaq 2006-03-21 (火) 00:21:50
  • 素晴らしいですね。 -- 2006-04-13 (木) 02:14:14
  • ありがとうございます :D -- teanan 2006-04-13 (木) 02:37:58
  • 便利に使わせてもらってます。一点うまくいかないことがあって、例えば「D&D」などが検索できません。",&,\,<,>があると駄目なようです。 -- 2006-04-16 (日) 18:38:34
  • なんか変ですね・・、ちょっと調べます。 -- teanan 2006-04-17 (月) 06:55:07
  • バグってました、ご指摘ありがとうございました。ついでにPCREのS装飾子を付加して高速化しました。rel.0.3をお試しください :) -- teanan 2006-04-17 (月) 17:43:56
  • 自分のローカル環境でも&などの検索がうまくいくのを確認しました。ありがとうございました。 -- 2006-04-17 (月) 23:13:28
  • 動作は良好です。検索結果のレイアウトがくずれるのでpreを使わずにコンパクトに整形出来ないでしょうか。長文など自動的に改行されるとみやすいです。 -- sos 2006-04-22 (土) 09:21:26
  • 他の部分に影響するかもしれませんが、整形済みテキスト(pre)のスタイルシートを変更するのが手っ取り早いです。 skin/pukiwiki.css.php の140行目あたりに pre の定義がありますが、その中のwhite-spaceを "normal" に変更してみてください に"word-wrap:break-word;" を追加してください。 -- teanan 2006-04-23 (日) 03:20:53
  • ああ、同じ思想でsearchプラグインの出力に限定することができます。他の影響が気になるようでしたら、次の部分を変更してください*1。 -- teanan 2006-04-23 (日) 03:41:37
    search.inc.php(改) : 192行目付近
    -	$retval = '<ul>' . "\n";
    +	$retval = '<div class="search"><ul>' . "\n";
    
    search.inc.php(改) : 209行目付近
    -	$retval .= '</ul>' . "\n";
    +	$retval .= '</ul></div>' . "\n";
    
    skin/pukiwiki.css.php : 144行目あたり(preの下付近)
    +div.search {
    +	word-wrap:break-word;
    +}
  • おおお 具合がよくなりました。すばらしい。ありがとうございます。 -- sos 2006-04-23 (日) 06:32:13
  • interwikiと絡ませる事は可能でしょうか?IDが可変するので処理がややこしいです -- sos 2006-04-25 (火) 09:49:46
  • PLUGIN_SEARCH_DISABLE_GET_ACCESS を0にするだけで、従来どおりの指定でいけると思います。 -- teanan 2006-04-25 (火) 11:31:54
  • いけました。ありがとうございます。 -- sos 2006-04-25 (火) 12:23:10
  • 閲覧制限がかかっているページも検索できてしまいます。認証してないユーザーは制限がかかってるページを検索できないようにできませんか。? -- 2006-06-02 (金) 23:04:24
  • pukiwiki.ini.phpの $search_auth を 1 にすると良さそうです。 -- teanan 2006-06-03 (土) 03:14:01
  • ありがとうございます。とても基本的なことを見落としてました。 -- 2006-06-03 (土) 20:35:49
  • フォームによるボタンの切り替えなどで、改造前の検索プラグインを呼び出したりできると便利なのですが、どうでしょうか。 -- 2006-06-29 (木) 10:08:32
    • ええっと、すみません、目的を教えていただけませんか? 検索結果の詳細表示が出ない方が良い時がある、ということでしょうか? -- teanan 2006-06-30 (金) 10:14:34
  • 検索結果の詳細表示が出ない方が良い時がある。 はい、その通りです。詳細オン、オフを一つのプラグインで対応できたらと良いと考えます。 -- 2006-06-30 (金) 22:55:07
    • 確かにそうおもいます (^^; 検討します。 -- teanan 2006-07-01 (土) 20:20:51
  • 「a」や「pu」など短い単語を検索出来ないような設定を設けて貰えないでしょうか。x文字以下は検索出来ないような設定など -- booxs 2006-07-09 (日) 01:02:48
  • やった〜!!!要望してよかった(^^)ホントウニありがとうございます!!! -- Lq 2006-07-12 (水) 22:48:27
  • まぁ、簡単に編集できるからいいのですが、MINIMUM_LENの初期値は2くらいがいいのでは??以上です^^ -- Lq 2006-07-12 (水) 22:51:27
  • pukiwiki ver 1.4.7 では動かないんですが... -- ueny 2006-08-18 (金) 11:43:25
    • PukiWiki-1.4.7での動作は確認しております。他に何か条件は無いでしょうか? -- teanan 2006-08-18 (金) 11:52:35
  • はじめまして、同様pukiwiki ver 1.4.7で起動できません、エラーも何もでないのですが、キーワードを入れても、結果が一件もヒットしません、Apache/2.0.58 (Unix) Zend Core/1 PHP/5.0.5 -- qyj03714 2006-10-31 (火) 14:17:02
    • うーん、手元で動いてしまっているので、原因が良く分かりません (^^; sessionがうまく動かない事があるのかなぁ・・・ 何か他に情報をお持ちでしたら、ご提供をお願いいたします。 -- teanan 2006-10-31 (火) 19:07:21
  • ヒントになるかわかりませんが現状を報告いたします。function plugin_search_action()内で以下の構文を追記しました print("[1]word=" . $vars['word']);→一文字だけ入れてエラーにわざとエラーに引っ掛けますと、[1]word=あ のように値が入っているのが確認できました、逆に、キーワードに"あいうえおかきくけこ"と入れますと、wordの値は[1]word= のように何も入ってきていないのが確認できました。ちなみにご指摘のsessionですが、php.ini上では、session.auto_start=off です。 -- qyj03714 2006-11-01 (水) 13:07:27
  • 私も同じ状況になりました。参考になるかわかりませんが、session.save_path(/var/lib/php/session)の書き込み権限を変更したら直りました。 -- tos 2006-12-06 (水) 11:53:15
  • 私も検索されない状況でしたが、ひとまずphp.iniのregister_long_arraysをONにしたら動作するようになりました。 -- ln 2007-05-02 (水) 22:41:08
  • 質問箱3/7でお世話になったものです。検索結果の有効期限切れを解消したくてこのプラグインを試していますが、人気の検索キー表示の機能の吸収がうまくできません。追加機能で対応していただけないでしょうか?また、Skinで<input value="Search" type="submit" accesskey="g"/><br/>と記述しているのですが、こちらのプラグインがうまく呼べないようで検索画面に飛んでしまいます。アドバイスください。 -- まんぼ〜 2007-06-06 (水) 14:33:27
    • searchプラグインの呼び出し方法は、例えばこのページをHTMLソース表示して、「単語検索」の部分をご覧いただくとご参考になるかと思います。人気の検索キー対応については、ご要望として賜りました。時間がとれましたら対応しますので、気長にお待ちください (^^; -- teanan 2007-06-06 (水) 19:38:06
  • アドバイスありがとうございます。ソースを見て、1.4.6デフォルトベースのSkinにコピペしてみたらうまくFormがでません・・別のSkinではできたのでもう少し悩んで見ます。人気の検索キーについては楽しみに待ってます -- まんぼ〜 2007-06-07 (木) 13:05:23
  • はじめまして、1ページ内で複数ヒットがあると、整形テキスト行が多くなってしまうのですが、表示する整形テキストの行数を制限することは可能でしょうか? -- キリン 2008-01-29 (火) 10:08:31
    • 未検証で申し訳ありませんが下記の部分を変更すると、20行に制限されるはずです。ダメならちゃんと考えます (^^; -- teanan 2008-01-30 (水) 03:35:43
      213行目付近
      	$source = '';
      +	$linecounter = 0;
      	foreach ($lines as $line) {
      		$source .= ' '.trim($line)." \n";
      +		if (++$linecounter > 20) {
      +			$source .= ' (省略されました)' . "\n";
      +			break;
      +		}
      	}
  • 報告が遅くなってしまいすみません。教えていただいた変更でできました!!ありがとうございます★ -- キリン 2008-02-01 (金) 14:55:08
  • 便利なプラグインありがとうございます。単語検索メニューからの利用は問題なく動作したことを確認しました。求めていたものです。感動!  で、標準searchにあるオプション「search(ほげ/)」という指定を本プラグインで行っても、指定ページ以下の検索がうまくいきません。環境は1.4.7EUCでサーバはWin2003+XAMPPです。プラグインはloginを使っているのでセッションは使っているかも・・・ -- boo 2008-03-10 (月) 12:35:17
    • バグを見つけました (^^; 326行目付近の下記の部分を修正して、お試しください。 -- teanan 2008-03-11 (火) 02:46:59
      		if ($base != '') {
      -			$_pages = preg_grep('/^' . $base . '/S', $_pages);
      +			$_pages = preg_grep('/^' . preg_quote($base, '/') . '/S', $_pages);
      		}
    • ありがとうございます。無事動作しました。オリジナルにない使い勝手に感動しています。
      基本はこのままで問題なしです。 今までオリジナルに「全角空白をセパレータに」という改造をしてたのでそれを移行して再度検証してみます。 重ね重ねありがとうございました。 -- boo 2008-03-11 (火) 09:15:31
  • 久々の質問です。これまでは社内のサイトでも一部に公開してただけなんですが、広くいろんな意見を聞き始めるといろいろ要望が・・・(汗)
    現在Menubarに設置して利用したいと考えてます。それ自体は問題ないんですが、あるカテゴリーの先頭ページにカテゴリー以下の検索としてsearch(ほげ/)を設置すると、メニューバーと衝突を起こしてしまい一方がエラーメッセージになってしまいます。
    なにか回避方法はありますでしょうか? -- boo 2008-05-15 (木) 17:49:46
    • 自己解決です。
      #lookupで何とか切り抜けました。ご迷惑おかけしました。 -- boo 2008-05-15 (木) 18:30:34
  • とても便利なpluginをありがとうございます。このpluginに、検索結果の表示順を制御するオプションをつけることは出来ないでしょうか?更新日付順、ページ名順などが選択できると便利だと思います。可能であれば、次回アップデートで拡張頂けると幸いです。 -- covar 2009-01-13 (火) 22:16:54
    • ご意見ありがとうございます :) -- teanan 2009-01-15 (木) 21:13:53
  • pukiwiki初心者、php -- mori 2009-09-10 (木) 11:46:47
  • すいません、キー操作誤りました。
    pukiwiki,php ともに初心者で、便利なプラグインの単なるユーザです。
    最近、このページ(プラグイン)を見つけて利用し始めたばかりです。
    Menubarに設置しているのですが、ブラウザ起動後の1回めだけ、入力したキーワードが無視され、「単語検索」の画面が表示されてしまいます。
    2回目以降はきちんとキーワードがURLの引数として渡されて正常に動作します。
    なにか原因が考えられないでしょうか?
    変更したパラメータは以下だけです
    define('PLUGIN_SEARCH_DETAIL', 0);
    define('PLUGIN_SEARCH_RESULT_LEN', 50);
    define('PLUGIN_SEARCH_MINIMUM_LEN', 1);
    -- mori 2009-09-10 (木) 12:09:02
    • 的外れかもしれませんが$scriptを設定してみてはいかがでしょうか。正しくformの値がわたっていないようにみえます。 -- teanan 2009-09-16 (水) 00:42:51
  • 回答ありがとうございます。見捨てられていなくて幸せです。
    (1)pukiwiki.ini.phpを見ると、$scriptへの代入文はコメントになっていました。
    テスト環境と本番環境の間でのソースのやり取りをするので、今の無設定が便利なのですが、 ローカルIPアドレスの形式で$scriptを設定しました。
    しかし変化なしです。
    (2)はじめのうち、$scriptの設定の場所・意味が分からず、やみくもに続・質問箱613も試してみましたが、変化ありませんでした。
    (3)おそまきながらpukiwiki1.4.7です。
    (4)前任者から引き継いだので、pukiwikiの設定・カスタマイズなどの全貌が分かっていません。
    どのへんが怪しいかヒントでもいただければ、デバッグしようかとも思っています(PHPのデバッグしたことないですけど)。よろしくお願いします。  -- mori 2009-09-24 (木) 14:42:39
  • うちの場合は、FORMのメソッドを修正し忘れてて同じような現象にあいました。ご参考まで。 -- 2009-10-28 (水) 14:12:11
  • このプラグインが便利で利用させていただいております。 -- TKK 2012-04-11 (水) 17:26:49
  • 検索結果について、前後行の行数をふやせたりしますでしょうか?&br;また、同一ページ内で、複数ヒットした場合にラインを入れてわかりやすくする方法はありますでしょうか? -- TKK 2012-04-11 (水) 17:32:51
©teanan/interfair laboratory 1992-2007 all rights reserved.



最終更新のRSS

*1 breakしたほうが、変更点の表示とか見やすいようなきがしますね (^^;

添付ファイル: filesearch.png 457件 [詳細] filesearch.inc.php.0.4.txt 2200件 [詳細] filesearch.inc.php.0.2.txt 836件 [詳細] filesearch.inc.php.0.3.txt 904件 [詳細] filesearch.inc.php.0.1.txt 1010件 [詳細] filesearch.inc.php.0.0.txt 456件 [詳細]