Home
Extensions
Google Custom Search
Extensions
Google Custom Search 8月
26
2008
Google Custom Searchを使って検索結果を自分のサイトで表示する
フォーラムでforum.joomla.orgのようにmod_google_custom_searchで表示できないかと聞かれたのですが、このモジュールではforum.joomla.orgのような表示はできません。
forum.joomla.orgが、どのように表示しているかというと、見た目は検索結果が自サイトのページ内に表示されているように見えますが、実際はIFRAMEを使って表示されています。検索結果をJoomla!で管理されていない?phpファイルに表示させているように見えます。
これは、簡単にモジュールの新規作成と、テンプレートに書き入れるだけで作ることができます。
作り方
- 下記ページから自分のCustom Searchを作成する。
http://www.google.com/coop/manage/cse/create/1
その時、Select some sitesで下記のようの設定しておく
後からでもcontrol panelの上部のメニューから変更できます。
(除外サイトも指定できます。) - 作成してからGoogle Custom Search Engineにログインします。
- そして、右側のボタン下のmanage your existing search engines.をクリック
- 作成したSearch Engineが表示されますので control panelをクリック
- Codeをクリックすると、Search results hosting optionsというところの下にHost results on your websiteというラジオボタンがあるのでそれを選択し、iframeを選択。
- Specify search results detailsという項目が現れて検索結果を表示するURLを入力するフォームが見えます。そこに検索結果を表示したいURLを入力します。 今回、別ファイルを用意すのではなく、サイト内で表示するようにする(テンプレートを編集する)ので、アクセスできるページならどれでも良いです。
- そしてSearch box codeをコピーし、Joomla!の管理画面からモジュールの新規作成でHTMLのモジュールを一つ作成し、HTMLコード部分にコピーしたものを貼り付けます。
- サイトで使っているテンプレートにSearch results code
からコピーしたものをJoomla!1.0.xなら、mosMainBody()、Joomla!1.5なら<jdoc:include type="component" />と書かれている行の上にでも貼り付け、以下のコードを書き加えます。(例えばなので環境により値は異なるかもしれません。)
Joomla!1.0.xの場合
<?php $google_cx = mosGetParam($_REQUEST, 'cx'); if(empty($google_cx)): ?> <?php mosMainBody(); ?> <?php endif; ?>
Joomla!1.5の場合
<?php $google_cx = JRequest::getVar('cx', null, 'request', 'string'); if(empty($google_cx)): ?> <jdoc:include type="component" /> <?php endif; ?>
のように検索結果を表示する場合は、MainBodyを出力しないようにする。
- 結果 http://demo10.joomler.net/ でデモしています。


































