suin.io

Searchモジュールに転送するpreload

suin2010年1月24日

ダウンロード

ながらくメンテナンスしていないXOOPS検索モジュールですが、XOOPS Cube Legacyでも動作するようです。このモジュールは、/search.phpの検索機能(グローバルサーチという)を乗っ取り、より充実した検索機能を実現すべくXOOPS2向けに作られたモジュールです。search.phpを乗っ取るさい、XOOPS2ではsearch.phpを直接書き換える手続きが必要でした。一方、XOOPS Cube Legacyでは、preloadを置くだけで乗っ取りが完了します。XOOPS Cube LegacyでもXOOPS検索モジュールを使っている方はどうぞpreloadをダウンロードしてお使い下さい。

ちなみに、XOOPS Cubeのグローバルサーチを乗っ取りたい人は、このプリロードが参考になるかと思います。

<?php

if ( !defined('XOOPS_ROOT_PATH') ) exit;

class SearchModuleRedirecter extends XCube_ActionFilter
{
        var $searchDirname = 'search';

        function preBlockFilter()
        {
                $this->mRoot->mDelegateManager->add('Legacypage.Search.Access', array($this, 'redirect'), XCUBE_DELEGATE_PRIORITY_FIRST);
        }

        function redirect()
        {
                if ( file_exists(XOOPS_ROOT_PATH.'/modules/'.$this->searchDirname.'/index.php') )
                {
                        $moduleHandler =& xoops_gethandler('module');
                        $moduleObj =& $moduleHandler->getByDirname($this->searchDirname);
                        if ( $moduleObj->getVar('isactive') == 1 )
                        {
                                header('Location: '.XOOPS_URL.'/modules/'.$this->searchDirnam.'/index.php?'.$_SERVER['QUERY_STRING']);
                                die;
                        }
                }
        }
}

?>
RELATED POSTS