Joomla!のITP Google Search extensionでGoogleカスタム検索を自サイトに設置する

Joomla!のデフォルトのサイト内検索やスマート検索に不満があるため、Googleカスタム検索を替わりに設置することにした。
Googleカスタム検索は無料版だと広告が出るものの、有用なラベリング機能があり、自サイト以外も検索対象にできる他、Googleの本家の検索精度(に近い物)を使える。

Joomla!プラグインで広く使われているらしい「googleSearch (CSE) component」
http://www.kksou.com/php-gtk2/Joomla-Gadgets/googleSearch-CSE-component.php#download
を適用しようとしたが、何故か検索結果でJoomlaのデフォルト検索結果を表示してしまいうまく行かなかった。しかも脆弱性*1があったことが過去に確認されている。

そこで、別のモジュール「ITP Google Search extension」を採用することにした。

 
【環境・準備】
 
【参考資料】

www.ostraining.com

 

【手順】

1. Googleカスタム検索の設定

Googleカスタム検索の設定方法は以下のサイト参照。探すと他にも様々な分かり易いサイトがあるはず。

jp-m.jimdo.com

「設定」→「基本」タブ → 検索エンジンID で表示されるIDを別な場所に控えておくこと

 

2. ITP Google Search Package ( version 2.5 ) をダウンロードする

http://itprism.com/free-joomla-extensions/others/google-search-integration

にアクセスし、下の方にあるDownload ITP Google Search Package ( version 2.5 )のリンクからpkg_itpgooglesearch_v2.5-J3.2.zip (約60kb)をダウンロード

f:id:kiliwave:20170128160509p:plain

 

3. Joomla!の管理画面から、エクステンション → 管理 → インストール にアクセスし、「ファイルを選択」ボタンを押して、対象のzipファイルを選択、「アップロードとインストール」をクリックして「パッケージを正常にインストールしました。」と出る

f:id:kiliwave:20170128160319p:plain

 

4. コンポーネント →ITP Google Search を選択し、右上の「オプション」をクリック

f:id:kiliwave:20170128160544p:plain

 

 5. Search Engine IDにGoogleカスタム検索のIDを入力し、Display search formをいいえにして保存して閉じる ※ここの部分が動作に影響するとの報告あり*2

f:id:kiliwave:20170128160622p:plain

 

6. エクステンション → モジュール へ移動し、ITP Google searchのリンクをクリック

 

7. 右側の各種設定を記入する。
デフォルトの検索ボックスと入れ替える場合は、

  • 表示位置:(サイト内検索が設定されている位置)
  • 状態:公開
  • 公開開始日および公開終了日:入力しない
  • アクセス権:Public
  • 表示順: (サイト内検索のある番号)

のようにして、保存

f:id:kiliwave:20170128160958p:plain

 

8. 「メニューの割り当て」タブに移動し、モジュールの割り当てを「すべてのページに」として保存して閉じる

f:id:kiliwave:20170128161028p:plain

 

9. エクステンション → モジュール のモジュール一覧の画面で、デフォルトの「検索」の状態を、クリックして非公開(赤×印)にする。ITP Google Searchと競合しそうなモジュールが他にもあれば、公開(緑のチェック)から非公開にする。"公開中設定になってますが保留中です"と表示される状態(黄△印)の場合は、公開状態が競合しているか、公開開始日が間違っている可能性があるので修正する。

f:id:kiliwave:20170128161057p:plain

 

10. 「メニュー」 → 「Main Menu」 → 「サイト内検索」のチェックを外して非公開に

 

11. 公開Webページの検索ボックスから検索をおこなうと、Googleカスタム検索の結果に遷移するようになる。

 

以上。