FCafe  検索語強調 2

  FC2blogの独自タグに関しては結構知ってるつもりの私でしたが、先月知らないタグを他ユーザ様から教えて頂きまして。 「え? 何時からこんなのが?」 という狼狽と 「おお!これで・・!」  という嬉しさが合半ばしたものでありました。

  皆様は <%search_word> とか <%tag_word> 等のタグは御存知でしたでしょうか。 私は従来、個別表示時のタイトルや自blog検索時のKWを表示させるのに <%sub_title> を使用していたのですが、この独自タグは半角スペースから始まるのと、タグ検索時には tag:〜 という接頭語が付いて来るというのもあって「ちょっとな〜」 とか思っていたのでした。
( 0}.fuga{〜 のようなユーザタグ登録も考えたりしました )

〜_word という独自タグは其の辺りを見越してシステムサイドが用意して下さったものと思われ、検索中のKW(ユーザタグ)そのものを取得できます。  search_area , tag_area のみで出力される(それ以外では空文となる)これらの変数は考えようによっては其々の「モード専用変数」とも考えられる訳ですが、一般変数でありますのでareaタグで囲う手間無くテンプレート中の何処でも使える訳です。(便利)
 この2つのタグには色々な用途が考えられます( Ash/Asgard 改訂では早速利用させて貰いました)が、以前の記事に書いた <%sub_title> を用いてblog内検索時の結果表示頁中のKWをハイライトさせる方法をもうちょっとマシなものにできないか試みてみました。

SAMPLE


【 設置法 】 テンプレート(の記事部分)が以下のようである時

<div id="ID名">

<!--topentry-->

   *  エントリ(記事)内容  *

<!--/topentry-->

</div>
 
上記部分以降、またはソース末尾( </body> の手前 )に以下のスクリプトを置きます。
<!--search_area--><script type="text/javascript"><!--
function HKW() { if(document.getElementsById){
var Style="background:yellow";
var A=document.getElementById("ID名");
var KW="<%search_word>";
var H='<span style="'+Style+'">'+KW+'</span>';
var R= new RegExp( KW, "g");
A.innerHTML=A.innerHTML.
replace(R,"DMY").
replace(/<([^>]*)DMY([^<]*)>/g,"<$1"+KW+"$2>").
replace(/DMY/g,H) ;
} }
HKW(); 
//--></script><!--/search_area-->
 
 

【 解 説 】  上記ソースですとKW部分はイエローの背景色でハイライトされますが、強調方式をどのようにするかはスクリプト中の以下の行、   var Style="☆";
☆の部分を変更すれば(例: font-weight:bolder )自由に設定できます。

 前回の記事ではKWと同じ文字列がtitleやclass名にあった場合、或いは title や html 等がKWとして検索された場合、タグ内に存在する文字列にも強調タグが付いて( HTML 構造が)破壊されてしまうという問題がありました。
今回はKWを強調タグ付きに直接変換するのでなく、一度ダミー文字列に置換し、タグ中のダミーのみ素のKWに戻す事によりこれを回避しています。 その問題の他に、スクリプトがtopentryブロック以降に出力されないとKWを強調できない、という条件があった為(何処に出力されるか判らない)プラグイン化に困難があった訳ですが、今回そちらの回避方法も何とか見出す事ができましたので上記を多少改変したものを共有pluginに登録してみました。   

Comment

びといん びといん Edit
11/05 00:15

 意外に知らない事って多いですよね。
 こちらのエントリー無いようとはちょっと違いますが、この間、「検索フォーム」プラグインをタグ検索に変更する方法を発見して、嬉しくなりました。すでに知られている方法かもしれませんが(笑)。
http://yumemasa.blog12.fc2.com/blog-entry-1972.html
 なぜ「タグ検索フォーム」が公式プラグインにないんだろ。

daniel daniel Edit
11/05 16:20

どうもこんにちは。 (どちらかと思ったらネコパンチ様とは)
いや、どんな隙間領域に陣取ろうとしても上には上がいるものです
びといんさん、目の付け所がSHARPですね !
これはかなり使えるTIPSじゃないかと思われますよ。
( Poetsさんでちょっと話に上がったんですが
  検索語がタグリストにあれば tag= で、無ければ q= で、
  ・・・て事が出来るかもしれません )

びといん びといん Edit
11/05 20:52

 有り難うございます。
 俺はいつも自分の利便性や楽しみのためだけに、思いつきの力技のやっつけ仕事カスタマイズしてますが、カスタマイズといえばまずFCafeと言われる danielさnに褒めていただければ、この上ない励みになります。

>目の付け所がSHARP

 はい。PDAはザウルス、携帯はソフトバンクのアクオス携帯を愛用しています(謎)。

daniel daniel Edit
11/06 10:14

「思い付きを力技で実現」 というのも中々できないことで。

>カスタマイズ
実は自分自身のは最近あまり弄ってないんです。
自blogをリニュする時って やはり燃えが違うんですが、
中々今のテンプレ換える気になれなくて。
「作る」と「使う」の乖離は自分的にも如何かと感じてます
( いつも新作着ておられるテンプレーター様達が羨ましい )

SHARPは頑張って(成功して)ると思いますね。 
私も携帯はSHで来てます。 ・・ブランド化も良いと思いますが
X系PCみたいな遊び心も忘れて欲しくないな、と


 
HN Title URL PW secret

TrackBack http://pcafe.blog3.fc2.com/tb.php/387-5655587c

Shown after Admisson
.

≫ 複数語検索 doodel FC2blog ミリオン突破 ≪

2006 / 11 / 02  Thu
Entry   
Comment 4 / TB 0 / Edit
Designed by Daniel Corporation . all rights renounced