XOOPS検索 ハック版

モジュールXOOPS検索 ハック版

 状態:  閲覧数:729  投稿日:2011-02-08  更新日:
忘れそうなので、メモ。

サイト内検索した結果画面で、
「すべてを表示」をクリックしてから表示させるのはなく、
初めから「すべての検索結果を表示させたい」と思い、
検索モジュールを探す。

XOOPS検索 ハック版
バージョン: 2.04
掲載日: 2010-7-25

選んだ理由は、単純に新しかったから。

早速、通常のモジュールとして、インストール。
検索して、動作的には特に問題がない。

ちなみに、「グローバルサーチを受け持つsearch.php」の脆弱性について、
アドバイスも記載されているのだが、
該当ファイルがどれか分からず。
その部分については、とりあえずスルーすることにした。

<カスタマイズ>
まず、該当ファイルを探す。
search204直下のindex.php。
_MD_SHOWALLRで検索して、直前付近にある5を、とりあえず50へ変更。
これまで、全く気に留めていなかったが、
デフォルトでは、一つのモジュールに対して、5件以上の検索結果があった場合だけ、「すべてを表示」が表示されるようになってるみたい。
いきなり、50にして、サーバーに負荷とかかかるかな? とか思ったけど、
何やってるかよく分かんないので、とりあえずこれで試すことにした。

望んだ結果はすぐに得られたのだが、
あれ?
ページングされてない…。

検索とかほとんど使っていないので、知らなかったのだが、
仕様的には、そもそも下記のような感じになっているらしい。
▼1.検索
モジュール毎に、検索結果を、最大5件表示。
一つのモジュールに対して、5件以上の検索結果があったときのみ、「すべてを表示」が表示される。
ページングはされない。
▼2.「すべてを表示」をクリック
クリックしたモジュールに対して、すべての検索結果を表示。
ページングも行なわれる。


だから、単純に、検索結果上限を5件から50件とかに増やすと、
ページングされてない状態で、どあーって、検索結果が表示される。
これは、ユーザビリティ的によろしくない。

今、18:23だから、19:00ぐらいまで、
これから、試行錯誤してみるけど、
もし、ダメだったら、
当初のカスタマイズ予定を変更するつもり。

具体的には、
「すべてを表示」のフォントを大きくして、「指定コンテンツのすべてを表示」みたいな感じで、文言のみ変える予定。
 


今、18:58だけど、
ダメっぽいので、試行錯誤した際のメモだけ残しとく。

▼初めのURL
XOOPS_URL/modules/search204/index.php?query=エンコードされた文字列&andor=AND&mids[]=13&showcontext=1&submit=エンコードされた文字列&action=results

▼全てのURL
XOOPS_URL/modules/search204/index.php?query=エンコードされた文字列&mid=13&action=showall&andor=AND&showcontext=1

両者の違い
&mids[]=13&submit=エンコードされた文字列&action=results
&mid=13&action=showall

search_block_search.htmlで、
<input type="hidden" name="action" value="results" />を、
value="showall"とかにしてみたけど、
必要な情報を入力してください、みたいなエラーになった。
そんな単純な話ではないらしい…。

とにかく、現状で特に問題があるわけではないので、
当初の予定を変更して、
「すべてを表示」のフォントを大きくして、
「指定コンテンツのすべてを表示」みたいな感じに文言を変えることにした。


ちなみに、
modulesを非表示にさせるmod_rewriteを試したが、特に問題なく動作した。

後、
GnaviD3で、コンテンツ直下に、BBコードを書いていると、
本文検索結果に、[img align=center]/modules/gnaviなどと、
そのまま表示されてしまうことがある。

mod_rewriteで、わざわざ/modules/消してるのに、
こんなとこに表示されてカッコ悪いな、と思ったけど、
よく考えたら、コンテンツ直下に、BBコードを書いているときだけの現象のようなので、
そのまま放置しておくことにした。
(今後、コンテンツ部分が増える予定のため)。


20:09追記。
今、気が付いたんだけど、検索結果画面のモジュール表示順って、
管理画面のモジュール設定順に基づいているっぽい。
メインメニューから外しているモジュールは、0のため、
一番最初に表示されてしまうのだが、
これを、検索結果画面では、出来れば最後に表示したいんだけど、
ちょっと難しそう…。
メインメニューの一番下に表示させるか、
検索結果から思い切って外すか、
迷うなァ…。

20:49追記。
カスタマイズしたファイル
index.php
search_result.html
search_result_all.html

サイト内検索[転送用]
http://あなたのサイト/search.phpにリクエストが有った際、このモジュールに自動的に転送するためのブロック。#brXOOPS付属のsearch.phpを全く使用したく無い場合は、全てのページ、全てのグループで表示されるように設定。
▽Xoops Users Group Japan - ModuleManuals/XOOPS検索 [XOOPS検索] - XUGJ Wiki
  http://www.xugj.org/modules/xpwiki/?ModuleManuals%2FXOOPS%E6%A4%9C%E7%B4%A2


検索結果画面レイアウトカスタマイズ