Paroday

Paroday:ニュースやアニメのレビュー、FC2ブログのテンプレート・プラグインなどを配信しています。

もしかして Parody ではありませんか? yes

FC2ブログ検索フォームプラグイン(OR検索、コメント、トラックバック)

検索フォーム

 検索フォームのプラグインです。OR検索、コメント・トラックバック含む検索を選択できます。チェックは維持します。また、キーワードが見つからなかったときは任意のテキストをフォーム下部に表示します。


 コードAとBどちらかを利用します。

コードA(プラグインを丸ごと追加)

 最初に管理画面、メニューの[プラグインの設定]、[公式プラグイン追加]から、『検索フォーム』を追加します。元から検索フォームのプラグインがある場合は追加する必要はありません

 検索フォームプラグインの[詳細]、【HTMLの編集】。元のコードをすべて削除して、次のコードを入れます。最後に[設定]で完了です。

コードB(チェックボックスのみ追加)

 元から設置しているフォームにチェックボックスのみ利用する場合はこちらを追加します。キーワードが見つからなかった場合のテキストは指定の場所にテキストを表示で追加します。

 検索フォームを出力しているform要素内(<form ...>~</form>)に次のコードを加えます。


 &#160; は半角スペースです。必要なければ削除します。

 改行するときは、適当な位置に <br /> を入れるなどします。


各項目を削除する

トラックバックを削除

 HTMLから次のコードを削除します(2箇所)。

<input type="checkbox" id="plgSwtb" name="w_tb" value="1" /><label for="plgSwtb" title="トラックバックを含める">&#160;trackback</label>

コードA
if(h.search(/&w_tb(=.*)?(&|$)/)>1){s.w_tb.checked=true;}

コードB
if(h.search(/&w_tb(=.*)?(&|$)/)>1){d.getElementById('plgSwtb').checked=true;}

コメントを削除

 HTMLから次のコードを削除します(2箇所)。

<input type="checkbox" id="plgSwres" name="w_res" value="1" /><label for="plgSwres" title="コメントを含める">&#160;comment&#160;</label>

コードA
if(h.search(/&w_res(=.*)?(&|$)/)>1){s.w_res.checked=true;}

コードB
if(h.search(/&w_res(=.*)?(&|$)/)>1){d.getElementById('plgSwres').checked=true;}

OR検索を削除

 HTMLから次のコードを削除します(2箇所)。

<input type="checkbox" id="plgSor" name="or" value="1" /><label for="plgSor" title="OR検索">&#160;or&#160;</label>

コードA
if(h.search(/&or(=.*)?(&|$)/)>1){s.or.checked=true;}

コードB
if(h.search(/&or(=.*)?(&|$)/)>1){d.getElementById('plgSor').checked=true;}

指定の場所にキーワードが見つからなかったときのテキストを表示する

 この項目はフォームとは関係ないなので、検索フォームを外しても利用できます。

 コードA(プラグインを丸ごと追加)を利用している場合は、最初にキーワードが見つからなかったときのテキストを表示しないのコードを削除します。

 JavaScriptかCSSどちらかを利用します。

JavaScript

 利用しているプラグインまたはテンプレートのHTML編集で、表示したい箇所に次のコードを入れます。テキストの変更箇所は「一致する情報は見つかりませんでした。」です。

 文字色などのスタイルを変更するときは次のコードをテンプレートのスタイルシートに追加します。padding は余白です。必要ない場合は削除します。

#plgSearchResult {
 padding: 0 10px 0 10px;
 color: #ee0000;
}

 テキストを中央寄せや右寄せにする場合は次のようにします。

#plgSearchResult {
 padding: 0 10px 0 10px;
 color: #ee0000;
 display: block;
 text-align: right;
}

 あるいはspanをp要素などに変更します。

<!--search_area--><p id="plgSearchResult">

</p><!--/search_area-->

#plgSearchResult {
 margin: 0;
 padding: 0 10px 0 10px;
 color: #ee0000;
 text-align: right;
}

 スタイルが反映されない場合は、各値の末尾に !important をつけます。

color: #ee0000 !important;
CSS

 スタイルシートを無視する環境の場合は「見つかりませんでした」が表示されます。また、音声ブラウザで読み上げられますが、どこまで考慮するかはお任せです。

 利用しているプラグインまたはテンプレートのHTML編集で、表示したい箇所に次のコードを入れます。テキストの変更箇所は「一致する情報は見つかりませんでした。」です。

 利用しているテンプレートのスタイルシートに次のコードを追加します。

.plgSR {
 display: none;
}
.psrn {
 display: inline;
}

 文字色などのスタイルを変更するときは次のコードを追加します。padding は余白です。必要ない場合は削除します。

.plgSR {
 display: none;
 padding: 0 10px 0 10px;
 color: #ee0000;
}

 span要素のままでテキストを中央寄せや右寄せにする場合は inline を block に変更します。

.plgSR {
 display: none;
 text-align: right;
}
.psrn {
 display: block !important;
}

 あるいはspanをp要素などに変更します。

<!--search_area-->
<p class="plgSR psrn<!--topentry--><%topentry_no><!--/topentry-->">

</p>
<!--/search_area-->

.plgSR {
 display: none;
 text-align: right;
}
.psrn {
 display: block;
 margin: 0;
}

キーワードが見つからなかったときのテキストを変更する

 最後の方にある次の箇所を変更します(No Results Found)。

p.appendChild(d.createTextNode('No Results Found'));

p.appendChild(d.createTextNode('見つかりませんでした'));

 文字色などのスタイルを変更するときは次のコードをテンプレートのスタイルシートに追加します。

#plgSearch .searchResult {
 color: #ee0000;
}

 ボックスやテキストなどを横に並べる場合は次のコードをスタイルシートに追加します。

#plgSearch p {
 display: inline;
}

 スタイルが反映されない場合は、各値の末尾に !important をつけます。

color: #ee0000 !important;

キーワードが見つからなかったときのテキストを表示しない

 最後の方にある次のコードを削除します。

var n='<!--topentry--><%topentry_no><!--/topentry-->';if(n==''){
var p=d.createElement('p');p.className='searchResult';
p.appendChild(d.createTextNode('No Results Found'));
s.appendChild(p);}

テキストボックスと検索ボタンの横幅を変更する

 テンプレートのスタイルシートに次のコードを追加します。

#plgSearch .plgSword { /* テキストボックス */
 width: 145px;
}
#plgSearch .plgSsubmit { /* 検索ボタン */
 width: 3.5em;
}

 あるいはプラグインHTMLの size="20" 数値を変更します。

 maxlength="140" は入力できる文字数です。

更新履歴など

 テンプレートに関係なくプラグインHTMLのみで機能するかたちです。

 公式プラグイン準拠です。CSSを利用するときは「&align」などを削除してください。

 IDなどがかぶった場合は適当に変更してください。

 HTMLの閉じタグやコメントアウトなどは適宜変更してください。

 返信するかどうかはわかりませんが、テンプレートに元から設置されている固有の検索フォームに追加する場合は、共有テンプレート名などをお知らせください。

  • 【更新履歴】
  • 2010 11-07 18 - コードB追加。トラバより、「見つからなかったときのテキスト」をプラグイン内から離れて利用中のテンプレートに設置する方法を追加しました。指定の場所にテキストを表示追加。
  • 2010 11-07 - 公開。
関連記事
  1. comment
  2. Hiro 2011-06-14 23:25 No.633 #-URLhttp://iwa40.blog6.fc2.com/blog-entry-2722.html

    いつも参考にさせて頂いており、有難う御座います。
    この検索機能について質問です。
    カテゴリやユーザータグ同様、
    やはり、記事数やコメント数の制約を受けるんでしょうね。

  3. Pdy@コメント検索不具合 2011-06-16 00:28 No.636 #-URL

     こんにちは。
    ・記事3000件、コメント1500件
    ・記事1800件、コメント5800件
     のようなブログでも機能しているところは機能しているので、一概に言えないかもしれませんが、検索対象が多ければ多いほど、何らかの不具合が起こる可能性は高いと思います。
     逆に、記事とコメントの総数がそれぞれ100件でも機能していないブログもあるので、おまけ程度の検索という印象です。

     テストブログ(記事約1000件 コメント10000件超え)で、管理ページのコメント検索が701件ヒットするキーワード(コメント内でしか使われていない)を試してみましたが、ブログ内検索(コメント含む)でも total_num 701件 正常にヒットしました。
     不具合は不具合なので、問い合わせると、いつか直るかもしれません。たぶん件数が多いと~のテンプレ回答になると思いますが。

コメント

Icon ※必須 :
Pass  ※入力した英数字を識別コードとしてNoに表示(123→LkZag.iM)

トラックバック

http://paro2day.blog122.fc2.com/tb.php/632-e18bcfc9

  1. trackback
  2. 検索フォームの変更 - 大宝ミニバスケットボールスポーツ少年団コーチ「さくらい」の備忘録

    上のオレンジの横バーにある 検索フォームを変更しました 2010.11.07