昨日おこなったこと

この記事は、公開日時より1年以上経過しています。最新の情報のご確認をお願いします。
  • Xcode 4.3.2 のインストール
  • Text::SimpleTable のインストール
  • Twitter GET statuses/embed status id からJSONの情報を得る

see also…

追記:

Tex::SimpleTable なんですけど、Movable Type(5.14-ja)のデバグモードのツールの、「CommonListing」というところで、このモジュールを使っているらしくて、これが入っていないと、管理画面のリストのとこで発行されたクエリとかがわからないということがおこるので入れました。

ajax_json_seach スクリプトにDid you meanのようなもの

この記事は、公開日時より1年以上経過しています。最新の情報のご確認をお願いします。
誰が使うのか?みたいなものです。検索結果が0件だったとき、近そうなキーワードを提示するというもの。

var didumean;
/* はじめに先頭の箇所に宣言しておきます */

// Add by Digiclo
function build_no_result_html( result_data, keywords ) {
var html =
____ 略 ____
;
html += '<p style="color:red"><em>もしかして:' + didumean + '</em></p>';
html += '</ol></div></div>

return html;
}

/*
Digiclo氏のAdd function 内に上記を追加します。
*/


// ADD Did you mean by maRk
function did_u_mean() {
var suggestion={ "てすt":"てすと","てst":"てすと", "tes":"test" };
if (search_keyword in suggestion){
didumean = suggestion[search_keyword];
// alert(didumean);
return didumean;
}
}

/* この関数は全体の最後にでも追加しておきます。*/

【追記:関数の追加箇所】

if ( result_data.length == 0 ) {
did_u_mean();
result_html = build_no_result_html( result_data, keywords ); // Pached by Digiclo


あとおせっかいで怒られそうですが、build_no_result_html()のol内にliが入らずにpとかがはいるのは文法違反かとおもうのでol要素は削除するなど。

*下書きなので解説無しで体裁がイマイチですが気分がよければ書き直してアップします

blog_ajax_json_search.jsファイルへの制限memo

この記事は、公開日時より1年以上経過しています。最新の情報のご確認をお願いします。

記事検索に便利なblog_ajax_search_json_search.jsなのですが、なんでかしらんけどウチとこのjsファイルがよそ様で稼動していたっぽいです。。

Compressorかけたから解読しにくいし、めんどくてそのままウチのほうからロードしてるのかもしれない。
もともと配布されているものなので、作者様か二次配布されているところから(CC2.1のようです)もってくればいいとは思うんですけどね。
その辺はまあいいんだけども。
あまりこのようなのがヒンパンにおこなわれるのもなんですんで、使用するサイトの制限をかけるようにしてみました。
jsファイルに対しサーヴァ側でリファラが自分とこ以外なら蹴るという対策もあるわけですが、ロケーションが自分とこのページでないときには関数の実行をおこなわないように改造すれば動かなくてあきらめるでないかなーという考え。

MT向けのに限っていえば(もともとはココログ向けだったり) blogAjaxJsonSearch()関数が検索メインの関数となってます。
で、この関数の実行は、Ajax.Request()の実行により検索データから検索をおこなうしくみなのでAjax.Request()が実行される前に条件式をおいておけばいいことになります。
blogAjaxJsonSearch()のはじめのほうにこれをいれておく(localhostのとこは実際は自分のところのURL)。変数は任意なんですけど今使ってるのははminimumなのでa , bとか短い変数になってる。

  • var my_site = 'http://localhost/';
  • var gt_loc=document.location.href;

つぎに変数に値を渡すとこsearch_keyword = text;の前に条件式をおく。条件が真のときのerr()関数はあとで作っておく。

  •    if (gt_loc.indexOf(my_site)!=0){ err(); }  else {

――でblogAjaxJsonSearch()関数の最後に

  • }

を追記(しとかないとスクリプトがエラーに)。
err()関数は、全体の最後にでも適当につくっておく。

function err(){
   alert('error!!');
   result_content.innerHTML="Sorry, Cannot search at This Page.";
   return undefined;
}

以上カスタマイズメモでした。 オリジナルと作者様のページは以下です。
ココログプロとかTypepadとかMTとかブログ人とかその他のブログサービスとかでもAjaxでバックナンバーを検索するJavaScript: 暴想: