msearch.inc.php

サマリ複数のPukiWikiサイトを一度に検索するコマンド
リビジョン0.3
対応バージョン1.4
投稿者sha
投稿日2003-08-24 (SUN) 19:03:29

概要

  • 複数のPukiWikiサイトを一度に検索し、その結果をマージして表示
  • 検索結果は、ファイルの経過時間順(デフォルト)に表示。最近のものほど上に。

説明

  • 欲しいプラグイン/22」を受けて作成。
  • コマンド型だけなので、#lookupとの併用がお薦め。
  • 複数のPukiWikiサイトの検索を順番に実行するので、時間がかかります。具体的には、各PukiWikiサイトで./?cmd=search&word=...を実行して結果を得ます。
  • skinの影響を受けないように作ったつもり(たぶん)。ただし、XHTMLの記述を正規表現で解釈してるので、html.phpcatbody()関数の表示仕様が変更されると、そのサイトの検索結果は検出できなくなる可能性があります。
  • 下部に「…を含むページは1658ページ中、…」として表示される検索対象とした総ページ数は、検索結果が0だったサイトからは得られないのでカウントされません。
  • 強調表示の際に使われる文字の背景色は、skin/default.ja.cssstrong.word0strong.word9を順に使用している。これを修正することでその背景色を変更できる。
  • XHTML1.1 validation check済み。
  • ここで実験しています→「sha:msearch.inc.php

使用法

  • 引数の仕様
     ./?plugin=msearch&site=<site>&type=<type>&order=<order>&word=<word> 
  • 引数の意味
    <word>: キーワード。複数の場合、空白区切り(すなわち「%20」区切り)で並べる。
    <type>: "AND"または"OR"の文字列。キーワードの扱い。省略時は"AND"動作
    <order>: ソート順。詳細は下記の通り。
    <site>: PukiWikiサイトのURLをカンマ区切りで並べる。詳細は下記の通り
  • <order>の仕様
    <order>:= [-]past|[-]site|[-]page のいずれかを指定
    past: 経過時間(若い)順  -past: その逆順
    site: サイト指定の引数順  -site: その逆順
    page: ページ名の順        -page: その逆順
  • <site>の仕様
    <site>:= <url>(<kanji_code>),...
    <url>: PukiWikiサイトのURL。"/"で終端。
           "this"文字列を指定した場合、本コマンドを実行したサイト(自サイト)。
    <kanji_code>: そのサイトが受け付ける漢字コード(euc|sjis|utf8)。
           "()"で囲ってURLの直後に付ける。省略時は自サイトと同じコードを使う。
    複数のサイトのURLをカンマ(",")区切りで並べる。
    • 漢字コードは、mb_convert_encoding()の引数に使える漢字コード名。ただし、EUC-JP|SJIS|UTF-8については、それぞれeuc|sjis|utf8も利用できる。

使用例

  • #lookupとの併用の手順
    1. InterWikiNameに登録する。(実際には改行しない)
      -[./?plugin=msearch&site=this(euc),http://pukiwiki.sourceforge.jp/(utf8),
      http://pukiwiki.sourceforge.jp/dev/(euc)&type=AND&order=past&word= msearch]
    2. あるページに下記のように記載する。
      #lookup(msearch,マルチ検索) 
    3. あとは、テキストフィールドにキーワードを並べて、「マルチ検索」ボタンを押すだけ。

表示例

  • マルチ」というキーワードで検索した例。
  • 下記[1]のサイトは「質問箱/203(Q&Aに移動)」の「検索結果+最初の見出し」の出力を採用しているので、下記の出力の2行目でも表示されている。
  • もちろん、ページ名をクリックすると、それぞれのサイトのそのページへ行く。
  • [1]などをクリックすると、それぞれのサイトのトップページへ。

    これらのキーワードがハイライトされています: マルチ

    [1]http://project.chu.jp/sha/
    [2]http://pukiwiki.sourceforge.jp/
    [3]http://pukiwiki.sourceforge.jp/dev/


    経過時間順

    マルチ のすべてを含むページは 1658 ページ中、 17 ページ見つかりました。

ダウンロード

ここに添付しました。御利用下さい。

  • filemsearch.inc.php.3」←提供中
    リビジョン内容
    v0.3order引数(ソート順)対応
    v0.2結果表示の変更(カラフルに)
    v0.1新規作成。debug

アンケート

  • このプラグインに満足しておりますか?
    選択肢投票
    はい18
    いいえ4
  • 「いいえ」に投票した方に質問です。
    どのような修正を加えれば、よくなると思いますか?下記にコメントして下さい。

コメント

  • upk 2003-09-15 (MON) 17:48:07

    どっちにも投票なんぞしてないけど、ちょっと。黄水緑という配色も、Google ToolBar の色合いに慣れている人もいれば、と色々と思いますので、config でサイト管理者が定義できるようにするとか、という工夫があるとまた良いんじゃないでしょうかね。

    • sha 2003-09-15 (MON) 18:53:50

      実は最初からそうできるようになっております。msearch.inc.phpでは色の定義は何もしてなくて、PukiWikiの単語検索で使われるskin/default.ja.cssのstrong.word0からstrong.word9を順に使用しているだけです。ここを修正することで色を変更することが出来ます。もちろん従来の単語検索の単語の色まで変わってしまいますが。。。確かに手抜きと言われればそうなのですが、よいアイデアが無かったもので。

      • upk 2003-09-16 (TUE) 01:55:56

        仕様は了解しました。

      • sha 2003-09-17 (WED) 00:24:42

        この件を上の説明にも記載しておきました。

  • こうすけ? 2003-12-16 (TUE) 21:44:12

    はじめまして。スキンに埋め込む形でmsearchを使いたいのですが、どのようにしたらいいでしょうか。例えば、このページのトップにある「移動」のような形にです。ご教授、どうかよろしくお願い致します。

    • sha 2004-02-02 (MON) 01:20:36

      使用例の「#lookupとの併用の手順」がまさにそれを実現するための説明です。ご覧下さい。

    • 質問の意味を理解しました→「質問箱/226(Q&Aに移動)」をご参照ください。&online;をスキンに埋め込む例が出ています。同様に前述の#lookupを埋め込んでください。 -- sha 2004-08-30 (月) 18:29:18
  • manbo? 2004-05-21 (FRI) 10:46:13

    2バイト文字検索をすると、「経過時間順」欄が表示されません。1バイトでは表示されます。文字コードを変えてみても同じでした。なぜでしょうか?

    • 症状が再現しません。もう少し情報を下さい。そういえば、「経過時間順」欄が表示されない状況というのは検索結果が0個の場合に起こりえます。InterWikiNameのサイトの設定や漢字コードの設定が間違っていると検索結果が0個になることがあるかもしれません。 -- sha 2004-08-30 (月) 18:47:15
  • 続・質問箱/591 -- 2005-02-06 (日) 14:02:07
  • dev:BugTrack/796 -- 2005-02-06 (日) 14:17:28
  • UL・LIタグが出力されていますが、小文字にしておいた方がいいのでは? XHTMLでは大文字と小文字は別の要素とみなされますので(e.g. CSSのul要素への指定が無効になるなど) -- leva? 2005-03-30 (水) 05:16:04
  • 最新版(Ver.1.4.5)の「search.inc.php」だと正常動作しないようです(恐らくsearch.inc.phpのバグ?)、pukiwiki-1.4.4_php5のsearch.inc.phpだけをプラグインフォルダにコピーすると動作するようになりました。 -- あとむ? 2005-07-06 (水) 15:53:44
  • 私も『最新版(Ver.1.4.5)の「search.inc.php」』では動作しませんでした。1.4.4_php5のsearch.inc.phpで動作しました。 -- 尚志? 2005-09-20 (火) 11:50:38
  • 1.4.5のsearch.inc.phpがデフォルトでGET経由の検索を禁止しているからのようです。編集できるのであれば、search.inc.phpの頭に 'PLUGIN_SEARCH_DISABLE_GET_ACCESS' という変数を設定しているところがあるので、それを0にすれば良いようです。根本的な解決としては、msearch.inc.phpがPOST methodを利用するようにすることでしょうか・・・。 -- doi? 2005-10-06 (木) 17:42:43
  • 「You don't have permission to access /pukiwiki/ on this server.」というエラーが出てしまうのですが、原因は何でしょう?
    • PukiWiki(pukiwiki1.4.5_1)そのものは動作し、通常のsearch.inc.phpは使えています。
    • win2k+Apache/1.3.33 (Win32) PHP/4.4.0 です。
    • /pukiwiki/フォルダにある.htaccessの記述は、allow from allになっています。
    • アドレス部には、http://svr01/pukiwiki/?plugin=msearch&site=this(euc),http://pukiwiki.・・・が表示されています。 -- sts? 2005-11-01 (火) 17:31:44
  • 関連: 質問箱3/437 PukiWiki-1.4.7で検索結果が表示されない。 -- teanan 2006-07-19 (水) 01:30:39
  • ↑plugin_msearch_parse_html 内の正規表現で非互換が出てるようです。通りすがりです。 -- スプー? 2006-08-25 (金) 19:12:11
  • はじめまして。lookupプラグインを用いて検索フォームを実現する場合、検索対象のurlが極端に多くなった時にエラーになります。これはlookup側の仕様でしょうか?(現状で検索対象40サイト、site=部分で2,000byte以上あります)。PKWK_QUERY_STRING_MAXは0(無効)にしてあります。・・・ブラウザの制限か?という気もしてきました(汗 -- スプー? 2006-08-25 (金) 19:18:44
  • 実際に、PukiWiki Plusに導入してみました。が、やはりURI制限に引っかかるようですね。「Error message : InterWiki URL too long: 605 characters」というエラーメッセージがでます。ファイル名のサーバーの制限によるものでしょうか?何かいい回避策はないでしょうか?導入した環境はこちらです。http://windows-keitai.com/ -- KATSUO? 2007-04-19 (木) 23:17:42
  • 上記にて実際に実装していますが、検索後、検索結果の下にでる再検索ボタンをおすと、なぜかパラメーターが渡されず、白いページが表示されてしまいます。なんででしょう・・・ -- KATSUO? 2007-04-20 (金) 01:30:19
  • 自己レスです。再検索のパラメーターの件ですが、InterWikiNameの記述にて「,」を1つ多く書いていました。解決しました。 -- KATSUO? 2007-04-20 (金) 02:10:48

添付ファイル: filemsearch.inc.php.3 2373件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-03-10 (木) 13:10:35
Site admin: PukiWiki Development Team

PukiWiki 1.5.1+ © 2001-2016 PukiWiki Development Team. Powered by PHP 5.6.38-0+deb8u1. HTML convert time: 0.202 sec.

OSDN