XOOPS検索

このモジュールについて

日本語に優しくないXOOPSの検索機能を日本語(マルチバイト)向けに改良しモジュール化したものです。検索ブロックも付属しています。EUC-JP専用。

機能説明(付属の検索機能とこのモジュールとの違い)

*mbstringが無くても作動しますが日本語に最適化された機能の一部が使用できなくなります。機能の一部が使えなくなるわけで動作不能になるわけではありません。

本文表示が使えるモジュール名一覧(アルファベット順)

下記のモジュールはプラグイン又はモジュールが対応しています。

BluesBB
comment_search
myAlbum-P* / mydownloads / mylinks
newbb / news
piCal*
TinyD*
XoopsFAQ / Xwords

*印のあるものはモジュール自体が対応しているためプラグイン不要。そのためプラグインは同封していません。

免責と保証

インストール方法

1) 圧縮ファイルを解凍してモジュールディレクトリにアップロード。

2) モジュール管理にてインストールしてください。

3) このモジュールの「一般設定」で各種設定を行って下さい。

4) グループとブロックの設定を行って下さい。

アンインストール方法

通常のモジュール同様にモジュール管理よりアンインストールを実行してください。

Tips - よりセキュアに -

このモジュールではコアのセキュリティーホールを埋める機能も果たせます。
グローバルサーチを受け持つsearch.phpにはextract()を2回実行する脆弱が存在します。ここではコアをハックして、それを塞ぐ方法を紹介します。

1.変更前、変更後を参考に、下記のように赤い部分を追加して下さい。

search.php 変更前:
$xoopsOption['pagetype'] = "search";

include 'mainfile.php';
$config_handler =& xoops_gethandler('config');
$xoopsConfigSearch =& $config_handler->getConfigsByCat(XOOPS_CONF_SEARCH);

if ($xoopsConfigSearch['enable_search'] != 1) {
    header('Location: '.XOOPS_URL.'/index.php');
    exit();
}

extract($_GET);
extract($_POST, EXTR_OVERWRITE);
変更後:
$xoopsOption['pagetype'] = "search";

include 'mainfile.php';

// xoops search japanese optimization START
if(file_exists(XOOPS_ROOT_PATH."/modules/search/index.php")){
        $module_handler =& xoops_gethandler('module');
        $module =& $module_handler->getByDirname('search');
        if( $module->getVar('isactive') == 1){
                header("Location: ".XOOPS_URL."/modules/".$mydirname."/index.php?".$_SERVER['QUERY_STRING']);
                exit();
        }
}
// xoops search japanese optimization END

$config_handler =& xoops_gethandler('config');
$xoopsConfigSearch =& $config_handler->getConfigsByCat(XOOPS_CONF_SEARCH);

if ($xoopsConfigSearch['enable_search'] != 1) {
    header('Location: '.XOOPS_URL.'/index.php');
    exit();
}

extract($_GET);
extract($_POST, EXTR_OVERWRITE);

更新履歴

ver Date News
1.0 2005-01-19 ファーストリリース
1.1 2005-01-20 全角文字と半角文字を区別しないように変更
1.2 2005-01-24 検索するモジュールを制限できるような管理機能を追加。権限のないモジュールの検索結果が見えてしまう欠陥を修復。mbstringの無い環境で記事が重複してしまうバグを修正。日本語の修正。
1.3 2005-01-26 nao-ponさんの本文表示ハックを導入しました。あいまい検索発動時に「すべて表示」が表示されなくなるバグを修正。「サイト検索[転送用]」ブロック追加。
1.4 2005-02-01 テンプレートのバグを修正。
1.5 2005-02-02 bluesさんから頂いたBluesBB用のプラグインを同封しました。セキュリティバグ修正。
1.6 2005-02-04 XSSを実行しうる脆弱を直しました。1.5以下からのアップグレードは、index.phpを必ず上書きしてください。
1.7 2005-02-12 aibaさんから頂いたXwords用のプラグインを同封しました。
1.8 2005-02-20 本文を表示するかどうか選択できるようにしました。
1.9 2005-03-23 ・[バグ修正]「次のページ >>」などのURLが&になるのを修正。
2.0 2006-06-02 ・[セキュリティ]SQL Injectionの可能性があるtypoを修正。
・[バグ修正]ブロックから検索すると本文が表示されなかったバグを修正。

謝辞

本文表示ハックをnao-ponさんからお借りしました。<http://hypweb.net/xoops/>
dendekeさんの「検索対象とするモジュールを選択できる」ようにするというアイディアをお借りしました。
myblocksadminをGIJOEさんからお借りしました。<http://www.peak.ne.jp/>

●プラグインの制作者と入手先
- BluesBB  bluesさん <入手先>
- Xwords  aibaさん <入手先>

Amethyst Blue by SUIN