Googleライクな検索結果を表示するためのプラグイン。
検索キーワード前後の文章を切り取って指定文字数に記事を丸めることができる。 標準のテンプレート変数<%syndicate_description%>を利用すると検索キーワードがハイライト表示されないが、NP_ChoppedDiscでは可能。
| General Plugin info | |
|---|---|
| 作者: | nakahara21 |
| 最新のバージョン: | 0.7(2005/08/19) |
| 入手先: | 作者サイト内の記事 |
| ソース: | NP_ChoppedDisc.phpのソースコード |
| 動作サンプル: | 作者サイトでの検索結果表示 |
| フォーラム参照先: | フォーラム?t=1305 |
検索結果を表示するために使うテンプレートの『アイテムの本文』から呼び出します。
<%ChoppedDisc(整形後の文字数,ハイライト表示指定)%>
Googleライクな検索結果を表示するサンプル。
1.新規テンプレート『gsearch』作成。
『アイテムの本文』は
<dl> <dt><a href="<%itemlink%>"><%title%></a></dt> <dd style="word-break:break-all;"> <%ChoppedDisc(250,1)%> <div style="font:normal 80% arial;color:#888;"> <i><a href="<%itemlink%>"><%itemlink%></a></i> ( <%date%> <%time%> <%edit%> ) </div> </dd> </dl>
『ハイライト表示』は
<b>\0</b>
と定義して「テンプレートの更新」ボタンを押す。
2.スキンにてこのテンプレートを使用する。 現在使用しているスキンの「検索ページ」タイプに
<%searchresults(gsearch)%>
と書く。
このプラグインは、v0.7では、データベースに登録されている記事データを元に加工しますので、記事表示を拡張するためのプラグインタグがそのまま表示されてしまう場合があります。 そのため、切り出す前にプラグインによる整形をあらかじめ行う必要があります。
v0.7ではNP_HighlightSourceの事前整形に対応しており、以下の部分で行っています。
if ($manager->pluginInstalled('NP_HighlightSource')) { $tempPlugin =& $manager->getPlugin('NP_HighlightSource'); preg_replace_callback("#<hs(|:[^>]+?)>(.*?)</hs>#s", array(&$tempPlugin, 'phpHighlight'), $item->body); preg_replace_callback("#<hs(|:[^>]+?)>(.*?)</hs>#s", array(&$tempPlugin, 'phpHighlight'), $item->more); }
http://japan.nucleuscms.org/bb/viewtopic.php?t=2972
http://japan.nucleuscms.org/bb/viewtopic.php?t=2990
http://japan.nucleuscms.org/bb/viewtopic.php?t=3295