JavaScriptでの利用
更新日:2024.02.02
Data APIではJavaScriptのライブラリが用意されていて、JavaScriptから利用しやすくなっています。
SearchEntriesプラグインでも、JavaScriptで検索することができます。
ライブラリの読み込み
Data API本体のJavaScriptライブラリを読み込んだ後に、以下のscript要素で追加のライブラリを読み込みます。
<script type="text/javascript" src="http://your-host/path-to-mt/mt-static/plugins/SearchEntries/extension.js"></script>
メソッドの追加
Data APIのオブジェクトを初期化した後、「FJDataAPIEntryCategories.extendEndPoints(Data APIのオブジェクト)」のような文を実行して、メソッドを追加します。
例えば、Data APIのオブジェクトを変数apiに代入するなら、初期化の処理を以下のようにします。
api = new MT.DataAPI({
baseUrl: 'http://your-host/path-to-mt/mt-data-api.cgi',
clientId: 'example',
});
FJDataAPISearchEntries.extendEndPoints(api);
SearchEntriesメソッドで検索
次に、「searchEntries」というメソッドで、検索を行います。
基本的なJavaScriptの書き方は、以下のようになります。
var param = {
templateName : 検索条件用のテンプレートモジュールの名前,
templateBlogId : 検索条件用テンプレートモジュールがあるブログ(ウェブサイト)のID
};
api.searchEntries(param, function(response) {
if (response.error) {
エラー時の処理
}
検索結果に対する処理
});
検索条件用のテンプレートモジュールは、「基本的な使い方」の手順で、あらかじめ作成しておきます。
そして、そのテンプレートモジュールの名前とブログ(ウェブサイト)のIDを、Data APIにパラメータとして渡します。
検索に成功すると、searchEntriesメソッドの2つ目のパラメータのコールバック関数が実行され、結果がresponseに渡されます。
responseの内容は、Movable Type標準のlistEntriesメソッドの場合と同じです。
事例
以下のような場合があるとします。
Movable Typeのインストール先 | http://www.foo.com/mt/ |
---|---|
ブログのID | 1 |
検索条件用テンプレートの名前 | DataAPI検索 |
検索結果に対する処理 | 検索された記事のタイトルをul/liのリストにして、IDが「index-main」の要素に流し込む |
この場合のJavaScriptのコードは以下のようになります。
api = new MT.DataAPI({
baseUrl: 'http://www.foo.com/mt/mt-data-api.cgi',
clientId: 'example',
});
FJDataAPISearchEntries.extendEndPoints(api);
var param = {
templateName : 'DataAPI検索',
templateBlogId : 1,
};
api.searchEntries(param, function(response) {
if (response.error) {
alert('検索時にエラーが発生しました。');
return;
}
var html = '<ul>';
for (var i = 0, j = response.items.length; i < j; i++) {
html += '<li>' + response.items[i].title + '</li>';
}
html += '</ul>';
jQuery('#index-main').html(html);
});