BlognPlus 用 検索語ハイライトモジュール

検索エンジンでブログを訪れた場合、ブログ上でその検索キーワードをハイライト表示します。

言わば Google のキャッシュでウェブページを表示した時のように、キーワードがハイライトされます。

「検索語ハイライトモジュール」の機能

機能

検索エンジン経由でブログを訪れた際、検索に使用されたキーワードがブログ上でハイライト表示されます。

例: 「BlognPlus」が黄色くハイライトされている(左図参照)


動作例

モジュールを導入する前に、どんな風に動作しているかご覧になりたい場合は、以下のサイトを参考にして下さい。

試しに Google で「BlognPlus」と検索し、検索にヒットした「BlognPlus を使おう!」へのリンクをクリックしてみてください。

モジュールの仕組み

検索語句の特定

モジュールでリファラー(Referer)を解析し、キーワードを抽出します。
閲覧者の設定でリファラーを遮断している場合、この機能は動きません。

ハイライト表示

Javascript を使ってページ内に存在するキーワードを検索します。
マッチしたキーワードは <span class="searchword"></span> で括られます。

ハイライトのされ方はスタイルシートで指定できます(上記の例では黄色背景に黒文字)。

動作環境

お使いのサーバーでマルチバイト文字列関数(mbstring)が有効である必要があります。

ダウンロード

利用規約

  1. このモジュールの所有権は「nJOY」管理人 CJ にあります。
  2. モジュールを使用して損害が生じても、「nJOY」管理人 CJ は一切の責任を負いかねます。
  3. モジュールの再配布・販売等は一切禁じます。
  4. 利用者個人の責任において改造は自由に行えます。
  5. スクリプト内にあるプログラム名・バージョン名・著作権表示を削除・変更する事は認めません。
  6. 当規約に同意された方のみ、このモジュールを無料で使う事が出来ます。
  7. もしよければ、あなたのブログに「nJOY BLOG」へのリンクをはってやってください。管理人が大変喜び、モジュール作成の励みになります。

検索語ハイライトモジュール」(sphrase.zip, 12kb)


インストール方法(主な手順)

  1. ダウンロードした圧縮ファイル(sphrase.zip)を解凍する。
  2. 「sphrase」フォルダを BlognPlus ディレクトリ下の /module/ にアップロードする。
  3. 「sengine.csv」のパーミッションを「666」等に変更する。
  4. スキンの HTML ファイルに {SPHRASE} と記述する。
  5. スキンの CSS ファイルにハイライト用クラスの記述を追加する。
  6. 必要に応じて「sengine.csv」を編集する。

モジュール構成ファイル

赤文字のファイルのパーミッションは「666」「606」等にする必要があります。

インストール方法(BlognPlus v2.6.x 以降)

インストール

「sphrase」フォルダを /module/ ディレクトリ下にアップロード後、未登録一覧に入っている「検索語ハイライトモジュール」の [インストール] ボタンを押してください。

動作設定

PC
PC 用スキンに独自タグを記述した場合、「PC」欄を「ON」にしてください。
携帯
ハイライト用 Javascript は携帯では動作しないので、「携帯」欄 は「OFF」にしてください。

優先順位

特に制限はありません。

スキンへの記述例

HTML ファイル

<head>〜</head> 内に以下の記述を追加する。

  1. <script type="text/javascript">
  2. <!--
  3. {SPHRASE}
  4. // -->
  5. </script>

他の Javascript がある場合は、既存の <script>〜</script> 内に {SPHRASE} を追記するだけでOK です。

CSS ファイル

CSS ファイルに以下のようなスタイルを定義する(例:黄色背景に黒文字

  1. .searchword {
  2. background-color: #ff0000;
  3. color: #000000;
  4. }

検索エンジン定義ファイル(sengine.csv)

「検索語ハイライトモジュール」にはメジャーな検索エンジンを網羅した定義ファイル「sengine.csv」を同梱しています。

このファイルを元にリファラーの解析を行います。
定義ファイルに掲載されていない検索エンジン経由でブログを訪れた場合、ハイライト機能は機能しません。

ver1.00 同梱ファイルの内容

www.google.com/search,q,UTF-8,ie,SJIS
www.google.co.jp/search,q,UTF-8,ie,SJIS
search.yahoo.co.jp/search,p,UTF-8,ei
blog-search.yahoo.co.jp/search,p,UTF-8,ei
search.msn.co.jp/results.aspx,q,UTF-8
search.live.com/results.aspx,q,UTF-8
search.goo.ne.jp/web.jsp,MT,EUC-JP
blog.search.goo.ne.jp/search_goo/result/,MT,EUC-JP
ocn.blog.goo.ne.jp/search/blogzine_search.php,MT,EUC-JP,code
green.search.goo.ne.jp/search,MT,UTF-8,IE
ocnsearch.goo.ne.jp/ocn.jsp,MT,Shift_JIS,IE
search.www.infoseek.co.jp/Web,qt,UTF-8
search.www.infoseek.co.jp/Blog,qt,UTF-8
search.nifty.com/websearch/search,q,UTF-8
search.nifty.com/blogsearch/search,q,EUC-JP
azby.search.nifty.com/websearch/search,q,UTF-8
cgi.search.biglobe.ne.jp/cgi-bin/search2-b,q,Shift_JIS
cgi.search.biglobe.ne.jp/cgi-bin/search_bl_top,q,EUC-JP
cgi.search.biglobe.ne.jp/cgi-bin/c_search,q,EUC-JP
ask.jp/web.asp,q,UTF-8
ask.jp/blog.asp,q,UTF-8
www.marsflag.com/search.x,phrase,UTF-8
sagool.jp/s,q,UTF-8
www.mooter.co.jp/moot/,keywords,UTF-8
search.livedoor.com/search/,q,EUC-JP
sf.livedoor.com/search/,q,UTF-8,ie
www.excite.co.jp/search.gw,search,SJIS
odn.excite.co.jp/search.gw,search,Shift_JIS
search.fresheye.com/,kw,EUC-JP,cs
news.fresheye.com/search/,kw,EUC-JP,cs
b.hatena.ne.jp/search,q,UTF-8
s.luna.tv/search.aspx,q,UTF-8
search.auone.jp/,q,Shift_JIS,ie

検索エンジンのリクエスト URL は予告なく変更される事がよくあります。
いつの間にかハイライト機能が動作しなくなっている場合は、定義データが正しいか確認してください。

定義データのフォーマット

定義ファイル「sengine.csv」は1行に1つの検索エンジンデータを格納している CSV 形式のファイルです。

データのフォーマットは以下の通り

HOST+PATH,Query,デフォルト文字コード,エンコーディング引数

最初の「HOST+PATH」「Query」「デフォルト文字コード」は必須ですが、最後の「エンコーディング引数」はなくても動作します。

Hostname + Path(必須)
「http://」を削り「?」までの文字列
Query(必須)
キーワード文字列前の引数
デフォルト文字コード(必須)
キーワード文字列から推測する
エンコーディング引数
検索クエリーのエンコーディング方法を指定する

「文字」と検索した場合、URL 内では使われている文字コード(UTF-8/EUC-JP/Shift_JIS)によって以下のような文字列が返ってきます。

UTF-8
%E6%96%87%E5%AD%97
EUC-JP
%CA%B8%BB%FA
Shift_JIS
%95%B6%8E%9A

例: Google

例えば Google.com で「文字」と検索すると、下記のような リクエスト URL が返ってきます。
検索方法によっては、もっと他のパラメータがリクエスト URL に付いてくる事もあります。

このリクエスト URL を元にした定義データは

Hostname + Path
www.google.com/search
Query
q
デフォルト文字コード
UTF-8

デフォルトの文字コードは UTF-8 ですが、時々別の文字コードが使われる事もあります。
その場合、リクエスト URL に「ie=SJIS」のようなパラメータが付いてきます。
Google の場合、この「ie」がエンコーディング引数になります。

これらの情報を踏まえ、Google.com 用の定義データは以下の通りになります。

www.google.com/search,q,UTF-8,ie

Google Japan 用の定義データもほぼ同じですが、「Hostname + Path」が「www.google.co.jp/search」になります。

www.google.co.jp/search,q,UTF-8,ie

例: Yahoo! Japan

Yahoo! Japan で「文字」と検索した際のリクエスト URL は

http://search.yahoo.co.jp/search?p=%E6%96%87%E5%AD%97&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8&aq=&oq=
Hostname + Path
search.yahoo.co.jp/search
Query
p
デフォルト文字コード
UTF-8
エンコーディング引数
ei

Yahoo! Japan 用の定義データは以下の通りになります。

search.yahoo.co.jp/search,p,UTF-8,ei

参考: Yahoo!検索(ウェブ検索)の検索パラメータ仕様

アップグレードの仕方

Ver1.10 → 1.11

「sengine.csv」以外のファイルを上書きアップロードしてください。

Ver1.01 → 1.11

「sengine.csv」以外のファイルを上書きアップロードしてください。
「function.php」が不要になったので削除してください。

アンインストール方法

BlognPlus v2.6.x 以降

  1. モジュール管理画面から「モジュールアンインストール」ボタンを押す。

BlognPlus 全バージョン共通

  1. スキンの HTML と CSS ファイルから追加した記述を削除する。
  2. /sphrase/ ディレクトリを削除する。

バージョンアップ情報

2009/05/30
ver1.11 BlognPlus v2.6.2 に対応
2009/05/16
ver1.10 管理画面に固定メニュー導入
2009/05/16
ver1.02 BlognPlus v2.6.x に正式対応
2009/03/01
ver1.01 管理画面に定義ファイル確認画面追加
2009/03/01
ver1.00 モジュール完成

サイト作成のヒント集に戻る