本文へジャンプする
カテゴリー選択 »
全てを表示
Tips
その他
スキン
ピックアップ
プラグイン
レビュー
プラグインのタグ一覧 »
一覧を開閉する
List
TodoList
LinkCounter
Related
ArchiveIndex
ハック
Counter
LinkList
SimpleTag
タグ
IncludeEX
fancyurl
TrackBack
Markdown
Container
javascript
スパム
SimpleURL
NoRobotComment
MixiAddDiary
Benchmark
HideChars
Blacklist
ReplaceTab
Calendar
MarkdownEditor
HighlightSource
ItemFormat
google
mixi
MultipleCategories
ContentsList
ShowBlogs
« NP_ArchiveIndex と NP_ContentsList の連携
NP_MixiAddDiary ver0.42 »

ブログツール、NucleusCMSに関する情報を掲載

[引っ越しました] 過去記事を datoka.jp/old にまとめてます。
ブログだとか
Nucleusだとか
制作物だとか

この記事の概要

前回のバージョンからそろそろ一年が過ぎようとしていました・・。
今まで報告を頂いたもろもろのバグフィックスと、少々の改良を取り込んで、Ver0.31としてまとめてみました。

アイテムのタイトル(または投稿オプションの入力フィールド)を元に、関連情報をローカル内やGoogleなどから拾ってくるプラグインです。

Download: NP_Related Ver0.31
[Nucleus2.5以降対応 文字コード:UTF-8/EUC-JP/ISO-8859-1]

このバージョンでは、プラグインファイルに若干の修正を加えると英語版としても動作します(なのでバージョンナンバーから"jp"をはずしました)。
詳しくは下記「英語版として動作させる (How To: change to English version)」を参照してください。

このプラグインについて

オリジナルは本家のプラグインwikiを参照。Radek Hulanバージョンを元に改造を続けている日本語版です。

この日本語版のテーマは、アイテムタイトルで「楽ちん自動検索」です。複数キーワード検索とフレーズ検索に対応するよう改良しています。
細かく言うと、次のような規則があります。

  • スペース(半角全角とも)や括弧、句点を区切りとして、キーワードを複数認識してOR検索。キーワード数は3つまで有効
  • "Ver1.2"、"-1-" 等の表現、数字のみのキーワードをローカル検索時に無視
  • 引用符や括弧で囲まれた文字列をフレーズ指定とみなす

インストールについて

zipファイルを解凍してできる以下のファイル(とフォルダ)をNucleusのpluginsディレクトリにアップロードしてください。

  • NP_Related.php
  • nusoap.php
  • de.php
  • related(フォルダ:中はプラグイン用言語ファイルが3つ)

その後、「プラグイン管理」ページの選択リストから「Related」を指定し、インストールします。

アップグレード作業について

プラグインオプションの数が増えてますので、一度前のバージョンをアンインストールしてからこのバージョンをインストールしてください。アンインストール前にオプション項目のメモを取っておくといいでしょう。

プラグインオプションについて

Google検索を使いたい場合は、「Google APIキー」を取得してセットします。Amazon検索は 「Amazon APIキー」(デベロッパートークン)の取得が必要です。「AmazonアソシエイトID」があるとさらにいいでしょう。
下のほうにある「GoogleAPIへの除外ドメイン指定」を自分のドメイン名に合わせます。

表示用のテンプレートフィールドなど説明はここでは省略します。

Ver0.31から、 以下の項目が増えています。

  • 検索結果がないときは見出しを表示しない
  • スニペットを表示
  • 検索対象(ローカル検索)※
  • 今すぐキャッシュデータを削除 ←テストしたいときに便利
※前バージョンまではローカル検索時に記事の「タイトル、本文、続き」全てを検索対象にしてましたが、負荷を考えてこのバージョンからデフォルトを「タイトル、本文」に変更しています。

「今すぐキャッシュデータを削除」は、通常「いいえ」になっていて、「はい」を指定してオプションを保存すると処理が行われ、再び「いいえ」に自動的にもどります。

Andyさんによる「Tips:プラグインの国際化」を取り入れてみました。文字コード絡みのものを別ファイルに移動し、UTF-8、EUC-JP、ISO-8859-1にそれぞれ対応しています。オプション編集画面なども日本語化され見やすくなりました。

カンタン記述例

大抵はこのへんで事足ります。テンプレート(アイテムブロック)かスキン(アイテムページ)に、次のように記述してください。

<%Related(local)%>
<%Related(google)%>
<%Related(amazon)%>
<%Related(local,5)%>
<%Related(google,5,true)%>

テンプレート/スキン用パラメータの解説

パラメータは順番に、

  1. モード(local/google/amazon)
  2. 表示件数
  3. スニペット表示(true/false)
  4. スキン用キーワード指定(スキン変数のみ指定可能)
  5. ローカル検索条件(and/or)

です。

1は指定必須、ほかはオプションです。 数字でパラメータの位置を示すとこうなります。テンプレートはキーワード指定が無いのに注意してください。

<%Related(1,2,3,5)%>   ... テンプレート
<%Related(1,2,3,4,5)%> ... スキン

詳しく指定する場合の例。

テンプレート変数(アイテム内)
<%Related(local,10,false,and)%>

スキン変数(アイテムページ・検索ページ内)
<%Related(local,10,false,,or)%>

スキン変数(その他のページ)
<%Related(local,5,false,キーワード,and)%>
<%Related(google,5,true,キーワード)%>

スキン変数で検索ページに置く場合、検索クエリをキーワードとして流用します。デフォルトではOR検索なので(Nucleus標準の検索フォームによるAND検索よりも)緩やかな条件でヒットします。

その他のページに置く場合は、スキン用キーワードを指定する必要があります。これは特定のキーワードで記事をピックアップしたいときに使います(お勧め記事など)。

フレーズ検索について

ローカル検索時、引用符で囲った文字列でフレーズ指定ができるようになりました。フレーズ内の文字列は「そのまま」キーワードとして使われます。スペースでキーワード分割されたり自動変換で文字が削除されることはありません(※)。

半角のシングルクォート、ダブルクォート、かっこ
'...' "..." (...) [...]
全角の引用符とかっこ、かぎかっこ数種類
’...’ ”...” (...) 「...」 『...』 【...】

に対応しています。 日本語だと、かぎかっこ系が使い勝手がよさそうです。

グーグルのフレーズ検索にも同時に対応したい場合は、半角のダブルクォートでフレーズ指定すると良いです。ただこちらで試した限りでは「らくちん自動検索」を通じてだとフレーズ制約が厳しくて結果が出にくいので、キーワードを手動で設定するときに半角ダブルクォートを使うほうがいいかも。

※例外として数字のみのキーワードは無視されるようになっています。

手動でキーワード指定

手動でアイテムに対してキーワード指定も出来ます。アイテム編集時のオプション画面にフォームが出るのでそこにキーワードを打ち込んでください。 このフォームにDONOTSEARCHキーワード(半角大文字)を入れると検索を明示的にキャンセルすることができます。

英語版として動作させる (How To: change to English version)

ソースコード中にあるコメント "//E" を見ながら修正をすれば、英語版としても動作します。主な変更部分はGoogleやAmazonのパラメータ指定と、文字コード変換の絡む場所です。 英語版として動作するときは、スペース区切りによる複数キーワード分割は行いません。

文字コード変換ライブラリ "iconv" にも対応。ただし "iconv" での動作確認はこちらではしていません(環境がないので)。
For English: Open "NP_Related.php", search comments "//E" and modify the lines. In some lines, uncomment "//E" lines, and comment out the next lines. If your web server can't use multibyte functions such as mb_convert_encoding(), try iconv library and remove comments for iconv codes (but I haven't checked it with iconv lib).

その他の修正・変更履歴

報告を寄せてくださった方々に感謝!

  • Google webサービスの仕様変更対応(エンコード関係) - まみおさんサクラキャンドルさん
  • Googleのmoreリンクに文字コードパラメータ指定 - 真央さん
  • Amazon検索時の文字コード変換 - サクラキャンドルさん
  • タイトル属性に入れるスニペット文字列のタグ除去 - pushmanさん
  • バージョン番号等削除用の正規表現がバギーだったので変更
  • Amazon検索時に複数キーワードを全て含めることに(その分ヒット結果が甘くなった)
  • Google検索時のキーワード操作をやめた
  • DONOTSEARCHキーワード利用時の表示修正
  • スニペットにつけていたインラインスタイルを削除

Googleの仕様変更(エンコード関係)と直接関係があるかはわかりませんが、通常のGoogle検索では出るキーワードでも、webサービス経由だと検索結果が出てこない場合がごくまれにあります。なんでだろ。

コメント一覧

ttk:

すばらしいプラグインと思いまして、さっそくダウンロードしました。解凍して3つのファイル NP_Related.php、 nusoap.php、 de.php、と relatedフォルダ、をそのままNucleusのpluginsディレクトリにアップしました。
そして、「プラグイン管理」ページの選択リストから「Related」を指定し、インストールすることはできませんでした、なぜでしょうか?
教えてください。
nucleus3.21_ja_utf8を使っています。

yu:

ttkさん:
エラーメッセージは出ませんでしたか?手がかりが無いとちょっと答えようがありませんので・・。
ちなみにPHP5では動作確認はしてませんので、そちらの問題とかでしょうか?

ttk:

ttkです、昨日インストールできなかった原因は、サーバ環境がPHP5でした。今PHP4に切り替えて、無事インストールできました。
ありがとうございました。

yu:

やはりPHP5でしたか・・報告ありがとうございます。

サクラキャンドル:

 名前まで挙げていただいて恐縮です。その割りに最近になってダウンロードさせていただいて動作のチェックを行っているのですが、過去のバージョンとの違いについて教えてください。

 Amazon商品検索時のキーワードを自分指定しなかった場合、0.3jpのときは、アイテムのタイトルを候補として、1文字目から半角スペースまでの単語をキーワードとするような動作のようですが、0.31の場合は、半角スペースの区切りがあっても記事のタイトルをそのままキーワードとして渡すようになったと考えて良いですかね?

 また、説明にある「Amazon検索時に複数キーワードを全て含めることに(その分ヒット結果が甘くなった) 」という部分ですが、Amazonに複数のキーワードを渡すとAnd検索になってしまって、逆にヒット結果が少なくなりませんでしょうか?これはソースのどこかで対処してるんですかね。

yu:

サクラキャンドルさん、こんばんわ。

> 0.31の場合は、半角スペースの区切りがあっても記事のタイトルをそのままキーワードとして渡すようになった

はい、この認識で合ってます。

> Amazonに複数のキーワードを渡すとAnd検索になってしまって、逆にヒット結果が少なくなりませんでしょうか?

こっちなんですが、スペース区切りで複数の単語が含まれたものをORで解釈したり、さらには「あいまい検索」してくれるようになったらしく、似た単語で結果を引っ張ってくることすらあるみたいです。

サクラキャンドル:

回答どうもありがとうございます。
とすると、過去のAmazon検索結果と同一のものを返すには、その部分を少しいじった方がよさそうですね。

Amazonは確かにあいまい検索のような検索をしてくれるみたいですね。確かにタイトルに沿った商品検索がされやすくなったのですが、どうも単一のキーワードの時よりも検索結果が減ってしまうことが多いのです。

これから、じっくりといじらせてもらおうと思います。

yu:

>どうも単一のキーワードの時よりも検索結果が減ってしまうことが多い

むむむ・・・そうでしたか。
単一だとそれはそれでひっかからない場合も出てくるし、このへんの調整はサイトの傾向によって変えたほうがいいのかもしれないですね。

Z10:

yuさん、「Nucleus(JP)フォーラムの NP_Relatedの検索対象をNP_znitemFieldEXの拡張フィールドにしたい」では適切なアドバイスを頂きありがとうございました。めでたくテーブルを結合させての検索に成功しました(泣)。phpは全くの素人には奇跡です(泣)
これに手をさらに加えて、プラグインオプションで結合させるテーブルを自由に設定できるようにできればよいなぁともう少しがんばってみます。

yu:

おお、うまくいってよかったです。

Z10:

yuさん、信じられん(笑)、パラメータでテーブルとフィールドの指定、できてしまいました、
神様にお願い、「表示するのにテンプレートを指定できるコードを迷える子羊に与えたまえ」

yu:

「テンプレートを指定」というのは具体的にどういうことでしょう。
プラグイン内テンプレではなくてNucleusのテンプレートを適用するってことかな?
※フォーラムのほう、藤咲さんにはきちんとお返事したほうが良いです(傍から冷静に見てもちょっと失礼に思えます)

yu:

で、ちょっと検討してみたのですが、カスタムフィールドにアイテム用テンプレを適用させる、というのだとあまり意味がないような気がします(項目内容にもよりけりでしょうが)。呼ぶ場所によって見せ方を変えたい場合は、マークアップの変更ではなくCSSで対応することでほとんど事足りそうです。
ローカル記事に対してなら有用かもしれないので宿題にさせてください。

ZeRo:

TBし直しにきましたぁ
コメント頂いたのにREJECTになってしまった申し訳ないですm(_._)m

yu:

ZeRoさん
ありがとうございます~
いえいえ、こちらこそお手間を取らせてしまいまして。

トラックバック一覧

[Trackback] NP_RelatedEX SimilarサーチとFeedsサーチを追加した拡張版

はじめに 本プラグインは、Nucleusだとかのyuさんの独自拡張されたNP_Related Ver 0.31jpをベースに、Drk7.jpさんのGoogle Similar/Amazon SimilarlやBulkFeedsさんのSimilarlity Searchなどのブログ検索対応およびFee

[Trackback] 体裁整え中。

でふぉskinはさすがに味気ないのでいろいろやってみてます。 (以下は覚書) 参考にさせていただいているのは以下。 [Lacrime]Nucleus備忘録 結構やらなきゃいけないことが多いのはわかっていたのだけど...

[Trackback] NucleusとPHP5とMySQL5 その2 [NP_Related items/sites] for php5

[php4からphp5にアップグレード]の記事にも書いたことだけど、もう一回 この辺はまとめて書いておいたほうが後から探すときに便利だしね で[NP_Related items/sites]も、そのままではphp5環境では動きません ...

[Trackback] NP_Related修正点2つ

一時ははずしていたNP_Relatedですが、考えてみたらNP_AutoLinkToItemのバックリンクみたいなものだなということで、新しく作っているスキンで復活させることにしました。 その過程でいくつかNP_Relatedに手を...

[Trackback] NP_Related|ランダム表示

自動で関連記事を表示してくれるとても便利な「NP_Related」ですが、ローカル記事の表示順は新しいものからとなり、当サイトのように作家名などをタイトルに利用していると、ほとんど新しい記事しか表示されなくなり...

[Trackback] NP_Related

http://nucleus.datoka.jp/index.php?itemid=807 こちらのVer0.31を導入してみました。個別記事ページだけ、記事の終わったあとに関連記事が出るようになっています。基本的にはタイトルでサイト内を検索しにいっ...

[Trackback] NP_Relatedの導入

めちゃくちゃおもしろいし、便利です。 ネットショップに導入すればサイト内の回遊率が上がりそう。 先のLoacl Track Backと組み合わせて使ってみたい。 基本的にはスキンもしくはテンプレートのアイテムページ...

[Trackback] NP_Related ver0.31

記事の投稿フォームに入力したキーワード(指定しない場合は、記事のタイトル)で、関連情報を集めてくれます。

[Trackback] NP_Related Ver0.31(Nucleus 関連情報検索プラグイン)

 このブログ・記念館ブログと JAFSA Weblog では、「アイテムのタイトル(または投稿オプションの入力フィールド)を元に、関連情報をローカル内やGoogleなどから拾ってくる」((こちらのブログでは Amazon の関...

関連がありそうな記事一覧

ページの先頭に戻る