mt東京-09 movable type meetup json

49
Movable Type Meetup JSON JSONを活用したデータ管理の効率化とパフォーマンスアップ 2015-01-20 MT東京-09 奥脇知宏(@tinybeans柳谷真志(@mersy

Upload: bitpart

Post on 02-Aug-2015

486 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: MT東京-09 Movable Type Meetup JSON

Movable Type Meetup JSONJSONを活用したデータ管理の効率化とパフォーマンスアップ

2015-01-20MT東京-09

奥脇知宏(@tinybeans) 柳谷真志(@mersy)

Page 2: MT東京-09 Movable Type Meetup JSON

bit part 紹介

•奥脇知宏(@tinybeans)、柳谷真志(@mersy)•Movable Type、Movable Type Cloud、PowerCMSを利用した構築がメイン業務

• Six Apart の ProNet、Alfasado の PowerCMS Partner Pro

Page 3: MT東京-09 Movable Type Meetup JSON

bit part 紹介 / mersy

•柳谷真志(やなぎやまさし)•ディレクション、進行管理、MTMLテンプレート作成

•アイ・ペアーズ株式会社

Page 4: MT東京-09 Movable Type Meetup JSON

bit part 紹介 / tinybeans•奥脇知宏(おくわきともひろ)•MTAppjQuery等のプラグイン開発、MTML、その他フロントエンドやバックエンド少々

•かたつむりくんのWWW•Movable Type 5.1 プロの現場の仕事術

Page 5: MT東京-09 Movable Type Meetup JSON

bit part 紹介

• http://bit-part.net•Movable Type 6 本格活用ガイドブック2013年11月30日発売

Page 6: MT東京-09 Movable Type Meetup JSON

bit part 紹介•MTAppjQuery• flexibleSearch •MTML Completions• Data API Extend Search•その他のMTプラグイン

Page 7: MT東京-09 Movable Type Meetup JSON
Page 8: MT東京-09 Movable Type Meetup JSON
Page 9: MT東京-09 Movable Type Meetup JSON

Movable Type Meetup JSONJSONを活用したデータ管理の効率化とパフォーマンスアップ

Page 10: MT東京-09 Movable Type Meetup JSON

Movable Type 6

• Data API

• Chart API

• 非公開日指定

• Google Analytics との連携

• メッセージセンター

Page 11: MT東京-09 Movable Type Meetup JSON

Movable Type 6

• Data API

• Chart API

• 非公開日指定

• Google Analytics との連携

• メッセージセンター

Page 12: MT東京-09 Movable Type Meetup JSON

Movable Type meets JSON

Page 13: MT東京-09 Movable Type Meetup JSON

What’s JSON?

• JSON 【 JavaScript Object Notation 】

• JSON(ジェイソン、JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptにおけるオブジェクトの表記法をベースとしているが、JSONはJavaScript専用のデータ形式では決してなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しに使えるよう設計されている。http://ja.wikipedia.org/wiki/JavaScript_Object_Notation

Page 14: MT東京-09 Movable Type Meetup JSON

What’s JSON?

• JavaScriptにおけるオブジェクトの表記法を応用したデータ形式。JSONで表記されたデータは、JavaScript上ではコードとして実行するだけで読み込みが完了する。JSONでは、データ全体を配列またはJavaScriptにおけるオブジェクト(キーと値のペアを列挙した構造体)として記述する。値として利用できるデータ型は整数型、浮動小数点数型、文字列型、ブール型(真偽値)、null(値無し)、配列、オブジェクトである。http://e-words.jp/w/JSON.html

Page 15: MT東京-09 Movable Type Meetup JSON

What’s JSON?{ "items": [ { "nickname": "tinybeans", "firstname": "Tomohiro", "lastname": "Okuwaki" }, { "nickname": "mersy", "firstname": "Masashi", "lastname": "Yanagiya" } ]}

Page 16: MT東京-09 Movable Type Meetup JSON
Page 17: MT東京-09 Movable Type Meetup JSON

Data API on Movable Type 6

• Movable Type meets JSON

• Movable Type に格納されたデータを JSON で受け渡し

• マルチデバイスのバックエンド

• JavaScript メインのアプリケーション(Angular などのフレームワーク、 mastache などのテンプレートエンジン)

Page 18: MT東京-09 Movable Type Meetup JSON

Data API on Movable Type 6

Page 19: MT東京-09 Movable Type Meetup JSON

Data API on Movable Type 6

• Data API は記事単位の塊のデータからデータを取得して JSON

に変換

• タイトル、本文、続き、概要、キーワード、タグ、そしてカスタムフィールド・・・

Page 20: MT東京-09 Movable Type Meetup JSON

だったらデータも JSON でいいじゃん

Page 21: MT東京-09 Movable Type Meetup JSON
Page 22: MT東京-09 Movable Type Meetup JSON

MTAppJSONTablesince MTAppjQuery v1.6.0

Page 23: MT東京-09 Movable Type Meetup JSON

Movable Type Dashboard meets JSON

Page 24: MT東京-09 Movable Type Meetup JSON
Page 25: MT東京-09 Movable Type Meetup JSON
Page 26: MT東京-09 Movable Type Meetup JSON

MTAppJSONTable

• Movable Type の管理画面と JSON の出会い

• JSON でデータを管理

• CSV との連携とか

Page 27: MT東京-09 Movable Type Meetup JSON

MTAppJSONTable

• MTAppJSONTableとは?概要欄や複数行テキスト(つまり <textarea>)のカスタムフィールドを表形式の入力欄に変換して、その表に入力された値をJSON文字列にして元のテキストエリアに保存する

Page 28: MT東京-09 Movable Type Meetup JSON

MTAppJSONTable

• ヘッダーが上または左にあるパターンの表に対応• 列または行の追加が可能• 行のドラッグアンドドロップによる並べ替えが可能(v1.7.0)

• セルの結合が可能(v1.7.0)

• demo 1

Page 29: MT東京-09 Movable Type Meetup JSON

JSON to MTML

• JSON文字列をMTのテンプレートで扱うには?=> MTタグで扱えるMTの変数に変換する必要がある

• json_decode モディファイア(MTAppjQuery)

• Serializer プラグイン http://www.h-fj.com/blog/archives/2014/07/29-092632.php

• JSON2MTML プラグイン https://github.com/alfasado/mt-plugin-json2mtml

• demo 2(json_decode と Serializer の比較)

Page 30: MT東京-09 Movable Type Meetup JSON

JSON to JavaScript and PHP

• もちろん静的出力だけでなく JavaScript や PHP で手軽に動的にも扱える

• JavaScript => JSON.parse(str);

• PHP => json_decode(str);

• demo 3

Page 31: MT東京-09 Movable Type Meetup JSON

Movable Type Dashboard meets JSON

• 管理画面で JSON

Page 32: MT東京-09 Movable Type Meetup JSON

Movable Type Dashboard meets JSON

• 他のウェブサービスのAPIから JSON を取得して連携=> Google Map API etc.

• でもやっぱりData APIとの連携=> Movable Type Data API

Page 33: MT東京-09 Movable Type Meetup JSON
Page 34: MT東京-09 Movable Type Meetup JSON

Movable Type Dashboard meets JSON

• 管理画面とData APIの連携=> 例えば関連記事を結びつけたい

Page 35: MT東京-09 Movable Type Meetup JSON

Movable Type Dashboard meets JSON

• 今までは、=> 手動で関連付けたい記事のIDをカスタムフィールドに保存 or

=> プラグインを開発して実装

Page 36: MT東京-09 Movable Type Meetup JSON

Movable Type Dashboard meets JSON

• Data API を使えばフロントエンドの知識だけで実装可能に

• jQuery.ajax, listEntries

• MTAppListing( v1.7.0 )

Page 37: MT東京-09 Movable Type Meetup JSON

jQuery.ajax or listEntries

• Ajaxで記事一覧を取得 → 選択 → IDをセット

• demo 4

Page 38: MT東京-09 Movable Type Meetup JSON

MTAppListing

• JSON を読み込んでリストアップし、その一覧から選択する事ができます。

• Data API や外部の API から取得した JSON の情報を記事に関連付けたりすることができます。

Page 39: MT東京-09 Movable Type Meetup JSON

MTAppListing

• 関連記事を選択したり、記事などを複数選択して記事セットなどを作る

• 外部のAPIから情報を取得して関連付け

• demo(動画)

Page 40: MT東京-09 Movable Type Meetup JSON

JSONをPOST してもいいよね?

Page 41: MT東京-09 Movable Type Meetup JSON
Page 42: MT東京-09 Movable Type Meetup JSON

POST from Movable Type

• 取得だけじゃなくて他の API に POST

• Slackにポスト

• Backlogにポスト

• Trelloにポスト

Page 43: MT東京-09 Movable Type Meetup JSON

Post to Slack

Page 44: MT東京-09 Movable Type Meetup JSON
Page 45: MT東京-09 Movable Type Meetup JSON
Page 46: MT東京-09 Movable Type Meetup JSON

Post to Slack

• Slackを使った公開承認フローを実装

• demo(動画)

Page 47: MT東京-09 Movable Type Meetup JSON

すべての要は JSON

Page 48: MT東京-09 Movable Type Meetup JSON

Enjoy Movable Type and JSON !

Page 49: MT東京-09 Movable Type Meetup JSON

ご静聴ありがとうございました。

MT::Lover::bitpart

Update bit part, everyday!!