SlideShare una empresa de Scribd logo
1 de 79
Descargar para leer sin conexión
Data API と
flexibleSearch、MTAppjQuery
で広がるMT6の使い方
柳谷真志(@mersy)奥脇知宏(@tinybeans)
Monday, August 5, 13
アジェンダ
•Data API の基本
•flexibleSearch( jQuery プラグイン)
•flexibleSearch + Data API
•MTAppjQuery( Movable Type プラグイン)
•MTAppjQuery + Data API
Monday, August 5, 13
bit part 紹介
Monday, August 5, 13
bit part 紹介
•柳谷真志(@mersy)、奥脇知宏(@tinybeans)
Monday, August 5, 13
bit part 紹介
•柳谷真志(@mersy)、奥脇知宏(@tinybeans)
•2013年1月結成のユニット
Monday, August 5, 13
bit part 紹介
•柳谷真志(@mersy)、奥脇知宏(@tinybeans)
•2013年1月結成のユニット
•8月中「bit part 合同会社」設立予定
Monday, August 5, 13
bit part 紹介 / mersy
•柳谷真志
やなぎやまさし
•linker、アイペアーズ(株)
Monday, August 5, 13
bit part 紹介 / tinybeans
•奥脇知宏
おくわきともひろ
•かたつむりくんのWWW
•Movable Type 5.1
プロの現場の仕事術
(毎日コミュニケーションズ)
Monday, August 5, 13
bit part 紹介 / plugins
•flexibleSearch
•MTAppjQuery
•MTML Completions
•compress modifier
etc...
Monday, August 5, 13
bit part 紹介 / plugins
•flexibleSearch
•MTAppjQuery
•MTML Completions
•compress modifier
etc...
ドキュメント販売中!!
http://bitpart.thebase.in/
Monday, August 5, 13
Data API の基本
Monday, August 5, 13
Data API の基本
MT6 はまだベータ版です。
あくまで現時点でのお話です。
Monday, August 5, 13
Data API とは?
Monday, August 5, 13
•ブログや記事などのデータの読み出しや更新などを
REST/JSON方式のAPIで利用できます。
•API用のJavaScriptのライブラリーも提供されるの
で、ダイナミックなコンテンツの組み込みも容易に
なり、独自の管理アプリケーションの開発が可能と
なります。
Data API とは?
Monday, August 5, 13
Data API の特長
Monday, August 5, 13
•REST/JSON形式でMT内のデータを取得したり、
操作したりできる
•Movable Typeの認証を利用して、公開されている
データ以外のデータも取得したり操作したりできる
•Movable Typeの画面をカスタマイズすることな
く、独自のアプリケーションを開発することができ
る
Data API の特長
Monday, August 5, 13
Data API で記事一覧を取得してみる
Monday, August 5, 13
•Data api entries list を使う
https://github.com/movabletype/Documentation/wiki/data-api-entries-list
Data API で記事一覧を取得してみる
Monday, August 5, 13
Data API で記事一覧を取得してみる
< URL >
Monday, August 5, 13
•https://your-host/mt-data-api.cgi/v1/sites/
{blog_id}/entries
Data API で記事一覧を取得してみる
< URL >
Monday, August 5, 13
•https://your-host/mt-data-api.cgi/v1/sites/
{blog_id}/entries
•your-host、{blog_id}部分をセット
Data API で記事一覧を取得してみる
< URL >
Monday, August 5, 13
Data API で記事一覧を取得してみる
< パラメータ1 >
Monday, August 5, 13
•search:検索ワード
•searchFields:searchパラメータのワードをどの
フィールドから検索するか(デフォルト:
title,body,more,keywords,excerpt,basename)
•status:記事のステータス(Draft=1、
Publish=2、Review=3、Future=4、Spam=5)
•limit:表示件数
•offset:最初のいくつを除くか
Data API で記事一覧を取得してみる
< パラメータ1 >
Monday, August 5, 13
Data API で記事一覧を取得してみる
< パラメータ2 >
Monday, August 5, 13
•includeIds:含める記事のID
•excludeIds:除く記事のID
•sortBy:何でソートするか(authored_on、title、
created_on、modified_on)
•sortOrder:ソート順(descend、ascend)
•maxComments、maxTrackbacks
•fields:どのフィールドの値を返してもらうか
Data API で記事一覧を取得してみる
< パラメータ2 >
Monday, August 5, 13
Data API で記事一覧を取得してみる
< パラメータ3 >
Monday, August 5, 13
•この中で意外と大切なのが「fields」
•fields を指定しないと記事全ての情報を含んだ
JSONが返ってくるので、場合によっては数MBにな
ることもある
Data API で記事一覧を取得してみる
< パラメータ3 >
Monday, August 5, 13
Data API で記事一覧を取得してみる
< やってみよう! >
Monday, August 5, 13
•「mtappjquery」を含む記事のタイトルとパーマリ
ンクを取得
•http://your-host/mt/mt-data-api.cgi/v1/sites/
2/entries?
search=mtappjquery&fields=title,permalink
•デモ
Data API で記事一覧を取得してみる
< やってみよう! >
Monday, August 5, 13
Data API で記事一覧を取得してみる
< あなたに託された JSON >
Monday, August 5, 13
•あとは返ってきた JSON を好きなように料理してく
ださい。
Data API で記事一覧を取得してみる
< あなたに託された JSON >
Monday, August 5, 13
Data API で記事一覧を取得してみる
< JavaScript ライブラリを使う >
Monday, August 5, 13
•Movable Type Data API SDK library
https://github.com/movabletype/Documentation/wiki/Javascript-library
•Data APIを使ってみる(その1) - The blog of
H.Fujimoto
http://www.h-fj.com/blog/archives/2013/07/12-091725.php
Data API で記事一覧を取得してみる
< JavaScript ライブラリを使う >
Monday, August 5, 13
Data API で記事一覧を取得してみる
< jQuery.ajax() で扱ってみる >
Monday, August 5, 13
•デモ
•https://gist.github.com/tinybeans/6138355
Data API で記事一覧を取得してみる
< jQuery.ajax() で扱ってみる >
Monday, August 5, 13
Data API で記事一覧を取得してみる
< プラグインで拡張する >
Monday, August 5, 13
•デフォルトのままだとカテゴリやタグは検索できな
い。
•簡単なプラグインで拡張できる。
Data API で記事一覧を取得してみる
< プラグインで拡張する >
Monday, August 5, 13
< category, tag パラメータを追加 >
Monday, August 5, 13
name: MoreSearch
version: 1.00
callbacks:
data_api_pre_load_filtered_list.entry: |
sub {
my ($cb, $app, $filter, $options) = @_;
return 1 if exists $options->{total};
for my $key (qw(tag category)) {
if (my $value = $app->param($key)) {
$filter->append_item({
'type' => $key,
'args' => {
'string' => $value,
'option' => 'contains',
}
});
}
}
}
< category, tag パラメータを追加 >
Monday, August 5, 13
Data API の使いどころ
Monday, August 5, 13
•スマホアプリ?
Data API の使いどころ
Monday, August 5, 13
•スマホアプリ?
•Webサイトでダイナミックに表示させる部分?
→DynamicMTML との棲み分け
Data API の使いどころ
Monday, August 5, 13
•スマホアプリ?
•Webサイトでダイナミックに表示させる部分?
→DynamicMTML との棲み分け
•mt-search.cgi に変わる検索?
Data API の使いどころ
Monday, August 5, 13
•スマホアプリ?
•Webサイトでダイナミックに表示させる部分?
→DynamicMTML との棲み分け
•mt-search.cgi に変わる検索?
Data API の使いどころ
Monday, August 5, 13
JSON、検索とくれば…
Monday, August 5, 13
flexibleSearch.js
Monday, August 5, 13
flexibleSearch.js
Monday, August 5, 13
•あらかじめ作成しておいた JSON ファイルを
検索することにより、柔軟で高速な Ajax 検索
を実現する jQuery プラグイン
•ページ送りや検索項目の絞り込みなどにも対応
flexibleSearch.js
Monday, August 5, 13
flexibleSearch.js
Monday, August 5, 13
•PAKUTASO/ぱくたそ-WEB制作向けの無料写
真素材/商用可 http://www.pakutaso.com/
flexibleSearch.js
Monday, August 5, 13
flexibleSearch.js
< 新しくなります >
Monday, August 5, 13
flexibleSearch.js
< 新しくなります >
•レンダリングエンジンに mustache.js を使用
•設定が楽になりました
•コード量が半分になりました
•URLにパラメータを渡す普通の検索っぽくな
りました
•検索する JSON をダイナミックに変更可能
Monday, August 5, 13
flexibleSearch.js
< ファイルを読み込む >
Monday, August 5, 13
flexibleSearch.js
< ファイルを読み込む >
•jquery.js
•mustache.js
•flexibleSearch.js
Monday, August 5, 13
flexibleSearch.js
< 検索用 JSON を作る >
Monday, August 5, 13
•flexibleSearch.js で読み込む JSON を
Movable Type で出力する
http://www.tinybeans.net/blog/2010/12/22-230131.html
flexibleSearch.js
< 検索用 JSON を作る >
Monday, August 5, 13
{"items":[
<mt:entries lastn="0">
<mt:setvarBlock name="item{title}"><mt:entryTitle></mt:setvarBlock>
<mt:setvarBlock name="item{url}"><mt:entryPermalink></mt:setvarBlock>
<mt:setvarBlock name="item{tag}">,<mt:entryTags glue=","><mt:tagName></mt:entryTags>,</
mt:setvarBlock>
<mt:setvarBlock name="item{keyword}">,<mt:entryKeywords>,</mt:setvarBlock>
<mt:setvarBlock name="item{body}"><mt:entryBody remove_html="1" regex_replace="/n¦t/g",""></
mt:setvarBlock>
<mt:setvarBlock name="item{more}"><mt:entryMore remove_html="1" regex_replace="/n¦t/g",""></
mt:setvarBlock>
<mt:var name="item" to_json="1"><mt:unless __last__>,</mt:unless __last__>
</mt:entries>
]}
flexibleSearch.js
< 検索用 JSON を作る >
Monday, August 5, 13
flexibleSearch.js
< divを2つ用意する >
Monday, August 5, 13
•検索フォームを入れる div#fs-search
•検索結果を入れる div#fs-result
flexibleSearch.js
< divを2つ用意する >
Monday, August 5, 13
<div id="fs-search"></div>
<div id="fs-result"></div>
<script type="text/javascript">
(function($){
$("#fs-search").flexibleSearch(options);
})(jQuery);
</script>
flexibleSearch.js
< 実行する >
Monday, August 5, 13
flexibleSearch.js
< ドキュメント >
Monday, August 5, 13
flexibleSearch.js
< ドキュメント >
•詳細は後日公開するドキュメント参照
Monday, August 5, 13
flexibleSearch.js
< 使ってみる >
Monday, August 5, 13
flexibleSearch.js
< 使ってみる >
•デモ
Monday, August 5, 13
flexibleSearch.js
+
Data API
Monday, August 5, 13
flexibleSearch.js + Data API
< Data API に切り替える >
Monday, August 5, 13
flexibleSearch.js + Data API
< Data API に切り替える >
デモ
Monday, August 5, 13
MTAppjQuery
Monday, August 5, 13
MTAppjQueryとは
Monday, August 5, 13
MTAppjQueryとは
•読み方(えむてぃーあっぷじぇぃくえりー)
•Movable Type 5 の管理画面を jQuery でカスタマ
イズするためのプラグイン
•Perl、YAML が不要、alt-tmpl より手軽
•日頃 MT のテンプレートやフロントエンドをやって
いるWebデザイナー・コーダーのためのプラグイン
Monday, August 5, 13
MTAppjQuery
+
Data API
Monday, August 5, 13
MTAppjQuery + Data API
< クイック編集機能を追加してみる >
Monday, August 5, 13
MTAppjQuery + Data API
< クイック編集機能を追加してみる >
•MTAppjQuery でダッシュボードウィジェット
を追加
Monday, August 5, 13
MTAppjQuery + Data API
< クイック編集機能を追加してみる >
•MTAppjQuery でダッシュボードウィジェット
を追加
•Data API で記事をインクリメントサーチで取得
Monday, August 5, 13
MTAppjQuery + Data API
< クイック編集機能を追加してみる >
•MTAppjQuery でダッシュボードウィジェット
を追加
•Data API で記事をインクリメントサーチで取得
•Data API で記事の情報を表示
Monday, August 5, 13
MTAppjQuery + Data API
< クイック編集機能を追加してみる >
•MTAppjQuery でダッシュボードウィジェット
を追加
•Data API で記事をインクリメントサーチで取得
•Data API で記事の情報を表示
•Data API で記事を更新
Monday, August 5, 13
MTAppjQuery + Data API
< クイック編集機能を追加してみる >
Monday, August 5, 13
MTAppjQuery + Data API
< クイック編集機能を追加してみる >
デモ
Monday, August 5, 13
ご静聴ありがとう
ございました。
Update bit part, everyday!!
MT::Lover::bitpart
Monday, August 5, 13

Más contenido relacionado

Similar a Data API と flexibleSearch、MTAppjQuery で広がるMT6の使い方

Movable Type 6 Overview - New York Perl Mongers Tech Talk
Movable Type 6 Overview - New York Perl Mongers Tech TalkMovable Type 6 Overview - New York Perl Mongers Tech Talk
Movable Type 6 Overview - New York Perl Mongers Tech TalkYuji Takayama
 
MTCafe sapporo#4
MTCafe sapporo#4MTCafe sapporo#4
MTCafe sapporo#4bitpart
 
Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2Yuji Takayama
 
Mtddc2013: Movable Type 6 Overview
Mtddc2013: Movable Type 6 OverviewMtddc2013: Movable Type 6 Overview
Mtddc2013: Movable Type 6 OverviewYuji Takayama
 
Talking about Microsoft On-premises Data Gateway
Talking about Microsoft On-premises Data GatewayTalking about Microsoft On-premises Data Gateway
Talking about Microsoft On-premises Data GatewayShinya Sakakibara
 
大(中)規模Java script開発について
大(中)規模Java script開発について大(中)規模Java script開発について
大(中)規模Java script開発についてYuki Tanaka
 
スケーラブルなアプリケーション開発を考える
スケーラブルなアプリケーション開発を考えるスケーラブルなアプリケーション開発を考える
スケーラブルなアプリケーション開発を考えるYusaku Watanabe
 
AngularJS+TypeScript - AngularJS 1周年記念勉強会
AngularJS+TypeScript - AngularJS 1周年記念勉強会AngularJS+TypeScript - AngularJS 1周年記念勉強会
AngularJS+TypeScript - AngularJS 1周年記念勉強会Masahiro Wakame
 
【俺聞け5】私とflashとhtml5&java script
【俺聞け5】私とflashとhtml5&java script【俺聞け5】私とflashとhtml5&java script
【俺聞け5】私とflashとhtml5&java scriptAsami Abe
 
Material Designなdrawerを実装したい
Material Designなdrawerを実装したいMaterial Designなdrawerを実装したい
Material Designなdrawerを実装したいshinya sakemoto
 

Similar a Data API と flexibleSearch、MTAppjQuery で広がるMT6の使い方 (10)

Movable Type 6 Overview - New York Perl Mongers Tech Talk
Movable Type 6 Overview - New York Perl Mongers Tech TalkMovable Type 6 Overview - New York Perl Mongers Tech Talk
Movable Type 6 Overview - New York Perl Mongers Tech Talk
 
MTCafe sapporo#4
MTCafe sapporo#4MTCafe sapporo#4
MTCafe sapporo#4
 
Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2
 
Mtddc2013: Movable Type 6 Overview
Mtddc2013: Movable Type 6 OverviewMtddc2013: Movable Type 6 Overview
Mtddc2013: Movable Type 6 Overview
 
Talking about Microsoft On-premises Data Gateway
Talking about Microsoft On-premises Data GatewayTalking about Microsoft On-premises Data Gateway
Talking about Microsoft On-premises Data Gateway
 
大(中)規模Java script開発について
大(中)規模Java script開発について大(中)規模Java script開発について
大(中)規模Java script開発について
 
スケーラブルなアプリケーション開発を考える
スケーラブルなアプリケーション開発を考えるスケーラブルなアプリケーション開発を考える
スケーラブルなアプリケーション開発を考える
 
AngularJS+TypeScript - AngularJS 1周年記念勉強会
AngularJS+TypeScript - AngularJS 1周年記念勉強会AngularJS+TypeScript - AngularJS 1周年記念勉強会
AngularJS+TypeScript - AngularJS 1周年記念勉強会
 
【俺聞け5】私とflashとhtml5&java script
【俺聞け5】私とflashとhtml5&java script【俺聞け5】私とflashとhtml5&java script
【俺聞け5】私とflashとhtml5&java script
 
Material Designなdrawerを実装したい
Material Designなdrawerを実装したいMaterial Designなdrawerを実装したい
Material Designなdrawerを実装したい
 

Más de bitpart

実践!MTAppjQueryで作るマニュアルいらずの管理画面とオリジナルフィールド
実践!MTAppjQueryで作るマニュアルいらずの管理画面とオリジナルフィールド実践!MTAppjQueryで作るマニュアルいらずの管理画面とオリジナルフィールド
実践!MTAppjQueryで作るマニュアルいらずの管理画面とオリジナルフィールドbitpart
 
開発者が語る
 MTAppjQuery を便利に使うコツ
開発者が語る
 MTAppjQuery を便利に使うコツ開発者が語る
 MTAppjQuery を便利に使うコツ
開発者が語る
 MTAppjQuery を便利に使うコツbitpart
 
【MT東京65】Movable Type を使う際の定番プラグインMTAppjQueryの紹介
【MT東京65】Movable Type を使う際の定番プラグインMTAppjQueryの紹介【MT東京65】Movable Type を使う際の定番プラグインMTAppjQueryの紹介
【MT東京65】Movable Type を使う際の定番プラグインMTAppjQueryの紹介bitpart
 
PWA night vol.11 20191218
PWA night vol.11 20191218PWA night vol.11 20191218
PWA night vol.11 20191218bitpart
 
MTDDC Meetup HOKKAIDO 2018
MTDDC Meetup HOKKAIDO 2018MTDDC Meetup HOKKAIDO 2018
MTDDC Meetup HOKKAIDO 2018bitpart
 
MTDDC Meetup TOKYO 2016
MTDDC Meetup TOKYO 2016MTDDC Meetup TOKYO 2016
MTDDC Meetup TOKYO 2016bitpart
 
MTAppjQueryでマニュアルいらずの管理画面を
MTAppjQueryでマニュアルいらずの管理画面をMTAppjQueryでマニュアルいらずの管理画面を
MTAppjQueryでマニュアルいらずの管理画面をbitpart
 
MTTokyo23
MTTokyo23MTTokyo23
MTTokyo23bitpart
 
MTDDC Meetup TOKYO 2015 bit-part
MTDDC Meetup TOKYO 2015 bit-partMTDDC Meetup TOKYO 2015 bit-part
MTDDC Meetup TOKYO 2015 bit-partbitpart
 
MT東京-09 Movable Type Meetup JSON
MT東京-09 Movable Type Meetup JSONMT東京-09 Movable Type Meetup JSON
MT東京-09 Movable Type Meetup JSONbitpart
 
Movable Type Meetup JSON - MTDDC Meetup TOKYO 2014
Movable Type Meetup JSON - MTDDC Meetup TOKYO 2014Movable Type Meetup JSON - MTDDC Meetup TOKYO 2014
Movable Type Meetup JSON - MTDDC Meetup TOKYO 2014bitpart
 
Data APIで広がるWebサイトのオモテとウラ
Data APIで広がるWebサイトのオモテとウラData APIで広がるWebサイトのオモテとウラ
Data APIで広がるWebサイトのオモテとウラbitpart
 
20131005 mtddc hokkaido
20131005 mtddc hokkaido20131005 mtddc hokkaido
20131005 mtddc hokkaidobitpart
 
Data APIを活かす JavaScript検索と管理画面のカスタマイズ
Data APIを活かす JavaScript検索と管理画面のカスタマイズData APIを活かす JavaScript検索と管理画面のカスタマイズ
Data APIを活かす JavaScript検索と管理画面のカスタマイズbitpart
 
Alfasado 10th lt
Alfasado 10th ltAlfasado 10th lt
Alfasado 10th ltbitpart
 

Más de bitpart (15)

実践!MTAppjQueryで作るマニュアルいらずの管理画面とオリジナルフィールド
実践!MTAppjQueryで作るマニュアルいらずの管理画面とオリジナルフィールド実践!MTAppjQueryで作るマニュアルいらずの管理画面とオリジナルフィールド
実践!MTAppjQueryで作るマニュアルいらずの管理画面とオリジナルフィールド
 
開発者が語る
 MTAppjQuery を便利に使うコツ
開発者が語る
 MTAppjQuery を便利に使うコツ開発者が語る
 MTAppjQuery を便利に使うコツ
開発者が語る
 MTAppjQuery を便利に使うコツ
 
【MT東京65】Movable Type を使う際の定番プラグインMTAppjQueryの紹介
【MT東京65】Movable Type を使う際の定番プラグインMTAppjQueryの紹介【MT東京65】Movable Type を使う際の定番プラグインMTAppjQueryの紹介
【MT東京65】Movable Type を使う際の定番プラグインMTAppjQueryの紹介
 
PWA night vol.11 20191218
PWA night vol.11 20191218PWA night vol.11 20191218
PWA night vol.11 20191218
 
MTDDC Meetup HOKKAIDO 2018
MTDDC Meetup HOKKAIDO 2018MTDDC Meetup HOKKAIDO 2018
MTDDC Meetup HOKKAIDO 2018
 
MTDDC Meetup TOKYO 2016
MTDDC Meetup TOKYO 2016MTDDC Meetup TOKYO 2016
MTDDC Meetup TOKYO 2016
 
MTAppjQueryでマニュアルいらずの管理画面を
MTAppjQueryでマニュアルいらずの管理画面をMTAppjQueryでマニュアルいらずの管理画面を
MTAppjQueryでマニュアルいらずの管理画面を
 
MTTokyo23
MTTokyo23MTTokyo23
MTTokyo23
 
MTDDC Meetup TOKYO 2015 bit-part
MTDDC Meetup TOKYO 2015 bit-partMTDDC Meetup TOKYO 2015 bit-part
MTDDC Meetup TOKYO 2015 bit-part
 
MT東京-09 Movable Type Meetup JSON
MT東京-09 Movable Type Meetup JSONMT東京-09 Movable Type Meetup JSON
MT東京-09 Movable Type Meetup JSON
 
Movable Type Meetup JSON - MTDDC Meetup TOKYO 2014
Movable Type Meetup JSON - MTDDC Meetup TOKYO 2014Movable Type Meetup JSON - MTDDC Meetup TOKYO 2014
Movable Type Meetup JSON - MTDDC Meetup TOKYO 2014
 
Data APIで広がるWebサイトのオモテとウラ
Data APIで広がるWebサイトのオモテとウラData APIで広がるWebサイトのオモテとウラ
Data APIで広がるWebサイトのオモテとウラ
 
20131005 mtddc hokkaido
20131005 mtddc hokkaido20131005 mtddc hokkaido
20131005 mtddc hokkaido
 
Data APIを活かす JavaScript検索と管理画面のカスタマイズ
Data APIを活かす JavaScript検索と管理画面のカスタマイズData APIを活かす JavaScript検索と管理画面のカスタマイズ
Data APIを活かす JavaScript検索と管理画面のカスタマイズ
 
Alfasado 10th lt
Alfasado 10th ltAlfasado 10th lt
Alfasado 10th lt
 

Data API と flexibleSearch、MTAppjQuery で広がるMT6の使い方