101
ディレクター・ノンプログラマー目線の Movable Type 株式会社ジャクスタポジション 西山

ディレクター・ノンプログラマー目線のMovable Type

Embed Size (px)

Citation preview

Page 1: ディレクター・ノンプログラマー目線のMovable Type

ディレクター・ノンプログラマー目線の

Movable Type株式会社ジャクスタポジション 西山

Page 2: ディレクター・ノンプログラマー目線のMovable Type

自己紹介

Page 3: ディレクター・ノンプログラマー目線のMovable Type

西山 泰史 にしやま やすふみ

株式会社ジャクスタポジション 札幌市在住のWebディレクター 創業12年目(法人3期目) Movable Typeでのサイト構築 2013年よりMT蝦夷を主宰 好きなMTタグは、MTIf 三度の飯より食べることが好き

Page 4: ディレクター・ノンプログラマー目線のMovable Type

ジャクスタポジションと言えば?

Page 5: ディレクター・ノンプログラマー目線のMovable Type

Movable TypeとDB連携できるショッピングカート

SKELETON CART http://skeleton.juxtaposition.jp/

Movable Typeの画像アップロード機能補助プラグイン

ImageUploadUtility http://skeleton.juxtaposition.jp/image-upload-utility/

Movable Typeのプレビュー機能強化プラグイン

DynamicPreview http://skeleton.juxtaposition.jp/dynamic-preview/

Page 6: ディレクター・ノンプログラマー目線のMovable Type

西山と言えば?

Page 7: ディレクター・ノンプログラマー目線のMovable Type

ラーメン!

Page 8: ディレクター・ノンプログラマー目線のMovable Type

今日のミッションMovable Type いいね! 思っていたよりも簡単そう! 使ってみたい!

Page 9: ディレクター・ノンプログラマー目線のMovable Type

今日のアジェンダ1. Movable Typeのこれまで 2. 気に入っているところ 3. ちょっと残念なところ 4. 構築事例紹介 5. こらから始めたい方へ

Page 10: ディレクター・ノンプログラマー目線のMovable Type

Movable Typeのこれまで

Page 11: ディレクター・ノンプログラマー目線のMovable Type

2001年にトロット夫妻の手によりリリース フロントエンド(デザイナー)のMenaが、 それまでよりもっと機能的で使いやすいブログを要望。 Menaの「これが欲しい」をもとにエンジニアのBenが開発。

カテゴリー分類や、コメント・トラックバック機能、 ページテンプレート(MTML)が特徴的だった。

2002年にSix Apartとして起業、 日本ではネオテニー社(伊藤穰一さん、平田大治さん在籍)が その普及に活躍した。

Page 12: ディレクター・ノンプログラマー目線のMovable Type

2001年 Movable Type リリース 2003年 米国Six Apartの日本法人が設立 2004年 Movable Type 3 日本語版を販売開始 2007年 Movable Type 4 リリース 2009年 Movable Type 5 リリース 2010年 MTDDC HOKKAIDO 開催 2011年 日本法人が独立(Six ApartとMovable Typeの事業を引継ぐ)

2013年 Movable Type 6 リリース 2013年 MTDDC Meetup HOKKAIDO 開催(MT蝦夷発足) 2014年 海外事業の再展開を開始2015年 MovableType.net リリース

Page 13: ディレクター・ノンプログラマー目線のMovable Type

サイボウズ式

ぐるなび

伊勢丹パーク

ファイナルファンタジー

Page 14: ディレクター・ノンプログラマー目線のMovable Type

全国におよそ 300社のProNet加盟企業

Page 15: ディレクター・ノンプログラマー目線のMovable Type

全国におよそ 300社のProNet加盟企業

2008年より加盟

Page 16: ディレクター・ノンプログラマー目線のMovable Type

Movable Type ユーザーコミュニティ 北海道

東北

東京

愛媛名古屋

新潟長野

広島 関西

福岡

熊本 鹿児島

Page 17: ディレクター・ノンプログラマー目線のMovable Type

Movable Typeを 気に入っているところ

Page 18: ディレクター・ノンプログラマー目線のMovable Type

①ファイル形式を問わず 静的ファイルを出力

CSV JSONPHP

HTML CSS javascript

Page 19: ディレクター・ノンプログラマー目線のMovable Type

HTMLなど Database

再構築=書き出し

DBにアクセスせず ウェブサイトを閲覧

Page 20: ディレクター・ノンプログラマー目線のMovable Type

Movable Typeから JSONファイルを出力し、 それを検索対象とする

Page 21: ディレクター・ノンプログラマー目線のMovable Type

②テンプレートの構造を 管理画面上から俯瞰

インデックス

カテゴリ

月別・日別

記事別

Page 22: ディレクター・ノンプログラマー目線のMovable Type

テンプレートの管理

Page 23: ディレクター・ノンプログラマー目線のMovable Type

現在のテンプレートが、 ほかのどのテンプレートを インクルードしているかも 把握できる

Movable Typeの テンプレート編集は 管理画面でほぼ全てを操作

※エディタなどを使用して  外部からテンプレートを  構築することもできます。

Page 24: ディレクター・ノンプログラマー目線のMovable Type

③MTMLの学習コストが低い (テンプレートの可読性)

Page 25: ディレクター・ノンプログラマー目線のMovable Type

Movable Type Markup LanguageMovable Typeで利用するテンプレート記述言語 HTMLを拡張し、MTタグとして利用できる。

Page 26: ディレクター・ノンプログラマー目線のMovable Type

<?php the_title(); ?> ↓ <mt:EntryTitle>

ex. ブログ記事タイトル

Page 27: ディレクター・ノンプログラマー目線のMovable Type

記事がある場合  <a href=“01.html”>記事タイトル①</a><br />  <a href=“02.html”>記事タイトル②</a><br />  <a href=“03.html”>記事タイトル③</a><br />     ・     ・     ・ 記事がない場合  <p>記事がありません</p>

ex. ブログ記事一覧

Page 28: ディレクター・ノンプログラマー目線のMovable Type

<?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <a href="<?php the_permalink(); ?>”>

<?php the_title(); ?></a><br /> <?php endwhile; ?>

<?php else : ?> <p>記事がありません</p>

<?php endif; ?>

ex. ブログ記事一覧(WP)

Page 29: ディレクター・ノンプログラマー目線のMovable Type

<mt:Entries> <a href=“<mt:EntryPermaLink>”>

<mt:EntryTitle></a><br /> <mt:Else>

<p>記事がありません</p> </mt:Entries>

ex. ブログ記事一覧(MT)

Page 30: ディレクター・ノンプログラマー目線のMovable Type

MTMLのいいところ編

Page 31: ディレクター・ノンプログラマー目線のMovable Type

再構築

MTMLのいいところ①

Page 32: ディレクター・ノンプログラマー目線のMovable Type

MTMLの書き方を間違ったり バージョンアップが原因で 動かないプラグインがあっても

MTMLのいいところ①

Page 33: ディレクター・ノンプログラマー目線のMovable Type

画面が白くならない

Page 34: ディレクター・ノンプログラマー目線のMovable Type

間違ったまま「保存/再構築」しても

Page 35: ディレクター・ノンプログラマー目線のMovable Type

保存しない/ファイルを出力しない

公開中のサイトに 影響しない

Page 36: ディレクター・ノンプログラマー目線のMovable Type

公開中のページを編集する際も 確認用ファイルを出力できる

MTMLのいいところ②

Page 37: ディレクター・ノンプログラマー目線のMovable Type

ファイルを複製

①ファイルを選択

②複製でGO

③複製が完了

Page 38: ディレクター・ノンプログラマー目線のMovable Type

出力する ファイル名を変更

④ファイル名変更

⑤実際に出力される内容を確認

Page 39: ディレクター・ノンプログラマー目線のMovable Type

サーバーの同じ場所に index.html と test.html が 出力された状態

Page 40: ディレクター・ノンプログラマー目線のMovable Type

⑥test.htmlをリネームして  index.htmlを上書き

確認後にファイルを上書き

⑦メインページ(index.html)を削除 ⑧メインページのコピーを「メインページ」に変更

これだとリビジョン(更新履歴)が残らないので、 test.htmlのソースをコピーするのがいいかも。

Page 41: ディレクター・ノンプログラマー目線のMovable Type

なかったことにしてくれる <mt:Ignore>

MTMLのいいところ③

Page 42: ディレクター・ノンプログラマー目線のMovable Type

<ul> <mt:Entries> <li><mt:EntryTitle></li> </mt:Entries> </ul>

<mt:Entries> <mt:EntriesHeader><ul></mt:EntriesHeader> <li><mt:EntryTitle></li> <mt:EntriesFooter></ul></mt:EntriesFooter> </mt:Entries>

Page 43: ディレクター・ノンプログラマー目線のMovable Type

<mt:Ignore> <ul> <mt:Entries> <li><mt:EntryTitle></li> </mt:Entries> </ul> </mt:Ignore>

<mt:Entries> <mt:EntriesHeader><ul></mt:EntriesHeader> <li><mt:EntryTitle></li> <mt:EntriesFooter></ul></mt:EntriesFooter> </mt:Entries>

この部分を出力しない (無かったことにしてくれる) デフォルトテンプレートを 参考に「試す」ことができる

Page 44: ディレクター・ノンプログラマー目線のMovable Type

管理画面もMTML

MTMLのいいところ④

Page 45: ディレクター・ノンプログラマー目線のMovable Type

MTMLでカスタマイズも可能

Page 46: ディレクター・ノンプログラマー目線のMovable Type

管理画面のカスタマイズなら!

PerlやMTMLの知識が無くても jQueryでMTの管理画面をカスタマイズできる

↑bit part 柳谷さん この会場にいます

Page 47: ディレクター・ノンプログラマー目線のMovable Type

MTMLによる分業

MTMLのいいところ⑤

Page 48: ディレクター・ノンプログラマー目線のMovable Type

MTコーディング時にプログラムを書かない

プラグイン

MT

MTMLHTML

プログラマーフロントエンド

実現したいことSix Apart

標準機能またはプラグインでMTML化

Page 49: ディレクター・ノンプログラマー目線のMovable Type

ちょっと残念なところ

Page 50: ディレクター・ノンプログラマー目線のMovable Type

①ドキュメント…

Page 51: ディレクター・ノンプログラマー目線のMovable Type
Page 52: ディレクター・ノンプログラマー目線のMovable Type

お、おう…

Page 53: ディレクター・ノンプログラマー目線のMovable Type

ドキュメントでわからないこと

MTQ

Page 54: ディレクター・ノンプログラマー目線のMovable Type

ドキュメントでわからないこと

MTCafe

Page 55: ディレクター・ノンプログラマー目線のMovable Type

②ライセンス料…

Page 56: ディレクター・ノンプログラマー目線のMovable Type

実はライセンスの バリエーションが多い

90,000円(税別) 1,800,000円(税別)

0.07ドル/1時間 月額5,000円~

Page 57: ディレクター・ノンプログラマー目線のMovable Type

ソフトウェア版 90,000円(税別)

Page 58: ディレクター・ノンプログラマー目線のMovable Type

クラウド版 5,000円(税別)~

サーバーメンテナンス バージョンアップ含む

Page 59: ディレクター・ノンプログラマー目線のMovable Type

Movable type.net

月額約2,100円(税別)~

Page 60: ディレクター・ノンプログラマー目線のMovable Type

CPIのレンタルサーバー ACE01月額1,500円(税別) ※3ユーザー・ライセンス

Page 61: ディレクター・ノンプログラマー目線のMovable Type

③再構築が…

Page 62: ディレクター・ノンプログラマー目線のMovable Type

再構築を早めるために できること

•モジュールのキャッシュ化 •アーカイブテンプレートの活用 •テンプレートの手動再構築 •利用しているプラグインの見直し

Page 63: ディレクター・ノンプログラマー目線のMovable Type

再構築ってどれぐらいの頻度? 誰が支払うべきコストなのか?

Page 64: ディレクター・ノンプログラマー目線のMovable Type

④動的な出力が…

Page 65: ディレクター・ノンプログラマー目線のMovable Type

ダイナミック・パブリッシング•Movable Type標準機能 標準機能でも動的出力ができます。

•Perl版ダイナミック・パブリッシング 藤本壱さんのプラグイン

•DynamicMTML アルファサードさんのプラグイン

Page 66: ディレクター・ノンプログラマー目線のMovable Type

⑤管理画面のUIが…

Page 67: ディレクター・ノンプログラマー目線のMovable Type

http://www.slideshare.net/daijihirata/road-to-next-mt-mtddc-meetup-tokyo-2015-keynote

Page 68: ディレクター・ノンプログラマー目線のMovable Type

構築事例紹介

Page 69: ディレクター・ノンプログラマー目線のMovable Type
Page 70: ディレクター・ノンプログラマー目線のMovable Type

構成メンバーディレクター 西山 泰史

デザイナー 飯島 聡子

フロントエンド エンジニア 森 智香子

Movable Type エンジニア 淺田 昇平

プログラマー SKELETON CART/DB管理画面担当 濱内 勇一(株式会社インセンブル)

プログラマー MTプラグイン開発 遠藤克洋(カーリーブラケット株式会社)

Page 71: ディレクター・ノンプログラマー目線のMovable Type

ウェブサイト

ブログ

商品情報

SKELETON CART

全体の構成図

Database

Movable Typeで構築 顧客・売上管理画面

プラグイン連携

Data API

SKELETON CART プラグイン連携

Page 72: ディレクター・ノンプログラマー目線のMovable Type

ウェブサイト

ブログ

商品情報

Page 73: ディレクター・ノンプログラマー目線のMovable Type

2特 500g

特 500g

瓶 250g

商品ページに「カテゴリアーカイヴ」を利用公開URL /item/karashi-mentaiko/

ブログ記事アーカイヴ 公開ページなし

Page 74: ディレクター・ノンプログラマー目線のMovable Type

カテゴリ情報に カスタムフィールドで 項目別入力欄を追加

Page 75: ディレクター・ノンプログラマー目線のMovable Type

ブログ記事を 商品販売単位に見立て 商品名や価格を入力

入力項目は、 プラグインで拡張

Page 76: ディレクター・ノンプログラマー目線のMovable Type

WireFrame

① デザイン作成

② HTML作成

④ MTML作成

•今回のサイト構築趣旨 •デザイン、機能での要望 •テンプレート構成の相談

構築フロー

③ プラグイン開発

Page 77: ディレクター・ノンプログラマー目線のMovable Type

① デザイン作成 ② HTML作成

構築フロー

ウェブサイト全体を HTMLで作ってしまう

Page 78: ディレクター・ノンプログラマー目線のMovable Type

構築フロー

商品情報 SKELETON CARTプラグイン連携

商品情報の項目をDBに保存、MTMLで出力するプラグイン

③ プラグイン開発

Page 79: ディレクター・ノンプログラマー目線のMovable Type

SkeletonCartConnector for MT

MT管理画面内で設定

Page 80: ディレクター・ノンプログラマー目線のMovable Type

カスタムフィールドではなく プラグインで入力欄を作成

SkeletonCartConnector for MT

Page 81: ディレクター・ノンプログラマー目線のMovable Type

SkeletonCartConnector for MT

<mt:ScDir> SKELETON CARTのインストールディレクトリを出力

<mt:itemname> 商品名を出力

<mt:itemprice> 商品の価格を出力

・・・などなど

独自のMTタグが使えるようになる

Page 82: ディレクター・ノンプログラマー目線のMovable Type

② HTML作成

構築フロー

④ MTML作成

HTMLの必要箇所を MTMLに置き換える

③ プラグイン開発

Page 83: ディレクター・ノンプログラマー目線のMovable Type

<div class="wgt-items__colA"> <p class="wgt-items__name">鮭醤油いくら 1kg</p> <p class="wgt-items__price">1箱 税込 <span class="number">0,000</span>円</p> </div>

<div class="wgt-items__colA"> <p class="wgt-items__name"><mt:itemname></p> <p class="wgt-items__price">1<mt:unit_displayname> 税込 <span class="number"><mt:itemprice></span>円</p> </div>

HTML ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶

MTML ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶

Page 84: ディレクター・ノンプログラマー目線のMovable Type

<ul class="wgt-items__list">

<li class=“wgt-items__item”> <form method="post" name="newdat" enctype="multipart/form-data" action=""> <div class="wgt-items__colA"> <p class="wgt-items__name">鮭醤油いくら 1kg</p> <p class="wgt-items__price">1箱 税込 <span class="number">0,000</span>円</p> </div> <div class="wgt-items__colB"> <p class="wgt-items__order">数量 <input type="text" name="" id=""> 箱</p> <div class="wgt-items__button"><input type="button" value="買い物かごへ" class="wgt-button"></div> </div> </form> </li>

<li class=“wgt-items__item”> <form method="post" name="newdat" enctype="multipart/form-data" action=""> <div class="wgt-items__colA"> <p class="wgt-items__name">鮭醤油いくら 1kg</p> <p class="wgt-items__price">1箱 税込 <span class="number">0,000</span>円</p> </div> <div class="wgt-items__colB"> <p class="wgt-items__order">数量 <input type="text" name="" id=""> 箱</p> <div class="wgt-items__button"><input type="button" value="買い物かごへ" class="wgt-button"></div> </div> </form> </li>

<li class=“wgt-items__item"> <form method="post" name="newdat" enctype="multipart/form-data" action=""> <div class="wgt-items__colA"> <p class="wgt-items__name">鮭醤油いくら 1kg</p> <p class="wgt-items__price">1箱 税込 <span class="number">0,000</span>円</p> </div> <div class="wgt-items__colB"> <p class="wgt-items__order">数量 <input type="text" name="" id=""> 箱</p> <div class="wgt-items__button"><input type="button" value="買い物かごへ" class="wgt-button"></div> </div> </form> </li>

</ul>

HTML ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶

同じ内容

Page 85: ディレクター・ノンプログラマー目線のMovable Type

<mt:Entries lastn="3"> <mt:EntriesHeader><ul class=“wgt-items__list"></mt:EntriesHeader>

<li class="wgt-items__item"> <form method="post" name="newdat" enctype="multipart/form-data" action="<mt:ScDir>cart.php?qp0=idx&qp1=ad"> <div class="wgt-items__colA"> <p class="wgt-items__name"><mt:itemname></p> <p class="wgt-items__price">1<mt:unit_displayname> 税込 <span class="number"><mt:itemprice></span>円</p> </div> <div class="wgt-items__colB"> <p class=“wgt-items__order">数量 <input type="text" name="cart_item_amount" value="1" id=""> <mt:unit_displayname></p> <div class=“wgt-items__button"><input type="submit" value="買い物かごへ" class=“wgt-button"></div> </div> </form> </li>

<mt:EntriesFooter></ul></mt:EntriesFooter> <mt:Entries>

MTML ̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶

1つにまとめる

Page 86: ディレクター・ノンプログラマー目線のMovable Type

構築フロー

Data APIを利用してデータベース内の情報を独自管理画面に表示

Database 顧客・売上管理画面Data API

⑤ 専用管理画面開発

Page 87: ディレクター・ノンプログラマー目線のMovable Type

専用の管理画面を開発

MTのDBから情報を取得

Page 88: ディレクター・ノンプログラマー目線のMovable Type

商品ページブログ

ウェブページ ショッピングカート

Page 89: ディレクター・ノンプログラマー目線のMovable Type

デザインを 作る人

MTタグを作る人

MTタグを使う人

Data APIを 利用する人

共通言語 MTML

Page 90: ディレクター・ノンプログラマー目線のMovable Type

MTML デザインとロジックを分離

Data API Movable Typeとウェブを融合

Page 91: ディレクター・ノンプログラマー目線のMovable Type

これから始めてみたい方へ

Page 92: ディレクター・ノンプログラマー目線のMovable Type
Page 93: ディレクター・ノンプログラマー目線のMovable Type

MovableType.net•アカウント登録無料 •ウェブサイト(ブログ)は14日間無料 •ウェブサイト(ブログ)は何度作ってもOK •テンプレートをGitHubで管理OK •サーバー管理/アップデートが不要 •再構築が不要 •利用料は月額約2,100円~

Page 94: ディレクター・ノンプログラマー目線のMovable Type

でも画面が見づらいよね…

Page 95: ディレクター・ノンプログラマー目線のMovable Type

大丈夫!そんなときは!

SyntaxHighlight for MovableType.net

Google Chrome エクステンション

Page 96: ディレクター・ノンプログラマー目線のMovable Type

こんな画面だったのが

Page 97: ディレクター・ノンプログラマー目線のMovable Type

こんな感じになります

Page 98: ディレクター・ノンプログラマー目線のMovable Type

でも…1人で勉強するの嫌だな

Page 99: ディレクター・ノンプログラマー目線のMovable Type

大丈夫!そんなときは!

MTCafeSapporo/MTもくもく会 などなどやってます。 次回は4月16日か、5月14日に Movable Type.netハンズオンを予定!

MT蝦夷

MT蝦夷版トフ こぼれイクラトフ

Page 100: ディレクター・ノンプログラマー目線のMovable Type

シール作りました

Page 101: ディレクター・ノンプログラマー目線のMovable Type

ご清聴ありがとうございました!

CMSMix Sapporo 2016.02.27 (Sat) at TKP札幌カンファレンスセンターディレクター・ノンプログラマー目線の “Movable Type”

Let’s Try Movable Type