Movable Type 6 Overview - New York Perl Mongers Tech Talk

Post on 29-Nov-2014

15.783 views 5 download

description

 

Transcript of Movable Type 6 Overview - New York Perl Mongers Tech Talk

Yuji Takayama

Movable Type 6 OverviewNew York Perl Mongers Tech Talk / Oct 18th, 2013

13年10月26日土曜日

AGENDA

• About Me

• Six Apart is ...

• Movable Type is ...

• Movable Type 6

• Data API

• New features

• Loupe

• Panel Discussion

• Fumiaki Yoshimatsu

• Akira Sawada

• Yuji Takayama

13年10月26日土曜日

ABOUT ME

Yuji Takayama1973, Born in Yamagata, Japan

2006, Started working at Six ApartDeveloper for Movable Type 3.2, 3.3, 4.x, 5.x and 6.0 Acted as the Engineer Lead for the development team starting from 5.1. As a Program Manager, focuses mostly on development of product specifications.

Cat LoverMy social media links are listed on the left. Feel free to follow me!

This is my second year in a row visiting New York City.

ytakayama@sixapart.com

@yuji

yuji

swordbreaker

13年10月26日土曜日

TitleDo you know “Six Apart”?13年10月26日土曜日

SIX APART IS...

• 2001, Founded in San Francisco

• 2003, Open Japanese branch

• 2010, Six Apart(US) merged with Video Egg, -> Say MEDIA

• 2011, Six Apart(JP) acquired by infocom, a Japanese information technology company

• 2013, Six Apart(US) Re-brunch

• Famous Perl monger from Six Apart

13年10月26日土曜日

Tatsuhiko Miyagawa

SIX APART ALUMNI CLUB

13年10月26日土曜日

David Recordon

SIX APART ALUMNI CLUB

13年10月26日土曜日

Brad Fitzpatrick

SIX APART ALUMNI CLUB

13年10月26日土曜日

13年10月26日土曜日

Do you know “Movable Type”?13年10月26日土曜日

movable type13年10月26日土曜日

12th Anniversary13年10月26日土曜日

MOVABLE TYPE IS...

• 2001, Released Movable Type 1.0

• Perl based CMS/Blogging tool.

• Primary development team is in Tokyo with help from American and European teams

• Movable Type is available in 6 languages

• Supported a combination of both Static and Dynamic Publishing

• Source code available on Github

• Pull request Welcome!

https://github.com/movabletype/

13年10月26日土曜日

MOVABLE TYPE IS...

• MTML (Movable Type Markup Language)

• Available Plugin mechanism that will be able to add new features, link with web services, and more

• Support multiple databases

• MySQL

• MS SQL Server, Oracle (Movable Type Advanced)

• PostgreSQL, SQLite (technical support not available)

•Windows Ready

• Windows Azure Ready

13年10月26日土曜日

MOVABLE TYPE MARKUP LANGUAGE

• Simple template markup language

• Syntax is similar to HTML

• Learning cost is low

• High compatibility with old versions

13年10月26日土曜日

MOVABLE TYPE MARKUP LANGUAGE

<MTBlogs> <MTEntries category=”foo” limit=”10”> <MTEntryHeader><ul> </MTEntryHeader> <li><a href=”<MTEntryPermalink>”> <MTEntryTitle> </a></li> <MTEntryFooter><ul> </MTEntryFooter> </MTEntries></MTBlogs>

13年10月26日土曜日

MOVABLE TYPE MARKUP LANGUAGE

<MTBlogs> <MTEntries category=”foo” limit=”10”> <MTEntryHeader><ul> </MTEntryHeader> <li><a href=”<MTEntryPermalink>”> <MTEntryTitle> </a></li> <MTEntryFooter><ul> </MTEntryFooter> </MTEntries></MTBlogs>

13年10月26日土曜日

WORDPRESS TEMPLATE

<ul> <?php $cat_id = get_cat_ID('foo'); $postslist = get_posts( "category=$cat_id&numberposts=10"); foreach ( $postslist as $post ) {?> <li><a href=<?php echo get_permalink( $post->ID ); ?>><?php echo $post->post_title; ?></a></li> <?php }?></ul>

13年10月26日土曜日

WORDPRESS TEMPLATE

<ul> <?php $cat_id = get_cat_ID('foo'); $postslist = get_posts( "category=$cat_id&numberposts=10"); foreach ( $postslist as $post ) {?> <li><a href=<?php echo get_permalink( $post->ID ); ?>><?php echo $post->post_title; ?></a></li> <?php }?></ul>

13年10月26日土曜日

WHICH ONE IS SIMPLEFOR NON DEVELOPER?

18

13年10月26日土曜日

MOVABLE TYPE IS...

• Data::ObjectDriver

• Memcached

• PSGI/Plack

• OpenID

• TheSchwartz

• Perl 5.8.1+

• CGI.pm

13年10月26日土曜日

MT::OBJECT

use MT;use MT::Entry;

my $mt = MT->new;my $e = MT::Entry->new;

$e->title(‘foo’);$e->text(‘bar’);$e->blog_id(1);

$e->save or die;

use MT;use MT::Entry;

my $mt = MT->new;my @entries = MT::Entry->load({ title => { like => ‘%foo%’ },}, { sort_by => ‘title’,});foreach my $e ( @entries ) { print $e->text;}

13年10月26日土曜日

Oct 16th, 2013 Movable Type 6 Debut13年10月26日土曜日

WHAT’S NEW IN MOVABLE TYPE 6

• New APIs

• Movable Type Data API

• Movable Type Chart API

•Website management improvements

• Entries can be created and posted directly on a website

• New feature for scheduled unpublish entry

• Google Analytics API integration

• Page view stats accessible on the Dashboard

• Loupe, a mobile web app

• Monitors site stats and offers basic administrative abilities

13年10月26日土曜日

MOVABLE TYPE DATA API

• REST/JSON API

• MT Authentication

• JavaScript Library

• Pluggable

• CGI based API

13年10月26日土曜日

MOVABLE TYPE DATA API - REST API

Create Read Update DeleteEntry P P P P

Comment P P P P

Trackback P P P

User P P

Site(Blog, Website) P

Category P

Site Statistics P

Asset P

ex) http(s)://<your-server>/<your-mt>/mt-data-api.cgi/v1/sites/2/entries

13年10月26日土曜日

https://github.com/movabletype/Documentation/wiki/Quick-reference

13年10月26日土曜日

curl -i http://localhost/cgi-bin/mt/mt-data-api.cgi/v1/sites/1

HTTP/1.1 200 OK

Date: Fri, 02 Aug 2013 13:12:10 GMT

Server: Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15

X-content-type: nosniff

Cache-control: no-cache

Transfer-Encoding: chunked

Content-Type: application/json; charset=UTF-8

{"name":"First Website","archiveUrl":"http://localhost/blogs/20130731-1/","url":"http://localhost/blogs/20130731-1/","id":"1","class":"website","description":null}

13年10月26日土曜日

curl -i http://localhost/cgi-bin/mt/mt-data-api.cgi/v1/users/me

HTTP/1.1 401 Authorization Required

Date: Fri, 02 Aug 2013 13:14:54 GMT

Server: Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15

X-content-type: nosniff

Cache-control: no-cache

Transfer-Encoding: chunked

Content-Type: application/json; charset=UTF-8

{"error":{"code":401,"message":"Unauthorized"}}

13年10月26日土曜日

curl -i -d clientId=test -d username=takayama -d password=password http://localhost/cgi-bin/mt/mt-data-api.cgi/v1/authentication

HTTP/1.1 200 OK

Date: Fri, 02 Aug 2013 13:20:08 GMT

Server: Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15

X-content-type: nosniff

Cache-control: no-cache

Transfer-Encoding: chunked

Content-Type: application/json; charset=UTF-8

{"accessToken":"MAQgv0HhhN82CQm88aP6r0QjtYpvRtMm8cS0av7E","sessionId":"Z9STct7OztObi6Bd4aDMH8qcZBbPh6mlxpkh5yQo","expiresIn":3600,"remember":false}

13年10月26日土曜日

curl -H "X-MT-Authorization: MTAuth accessToken=MAQgv0HhhN82CQm88aP6r0QjtYpvRtMm8cS0av7E" -i http://localhost/cgi-bin/mt/mt-data-api.cgi/v1/users/me

HTTP/1.1 200 OK

Date: Fri, 02 Aug 2013 13:31:13 GMT

Server: Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15

X-content-type: nosniff

Cache-control: no-cache

Transfer-Encoding: chunked

Content-Type: application/json; charset=UTF-8

{"email":"ytakayama@sixapart.com","userpicUrl":null,"language":"ja","url":null,"name":"takayama","updatable":true,"id":"1","displayName":"Yuji Takayama"}

13年10月26日土曜日

curl -i http://localhost/cgi-bin/mt/mt-data-api.cgi/v1/users/1

HTTP/1.1 200 OK

Date: Fri, 02 Aug 2013 13:34:34 GMT

Server: Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15

X-content-type: nosniff

Cache-control: no-cache

Transfer-Encoding: chunked

Content-Type: application/json; charset=UTF-8

{"email":"ytakayama@sixapart.com","userpicUrl":null,"language":"ja","url":null,"updatable":false,"displayName":"Yuji Takayama"}

13年10月26日土曜日

MOVABLE TYPE DATA API - JAVASCRIPT LIBRARY

• JavaScript library for Data API is available

• MIT license

13年10月26日土曜日

var  api  =  new  MT.DataAPI({    baseUrl:    "https://your-­‐host/mt/mt-­‐data-­‐api.cgi",    clientId:  "your-­‐client-­‐id"});

api.listEntries(siteId,  function(response)  {    if  (response.error)  {        //  Handle  error        return;    }

   for  (var  i  =  0;  i  <  response.items.length;  i++)  {            var  entry  =  response.items[i];            //  Render  an  entry    }});

13年10月26日土曜日

var  api  =  new  MT.DataAPI({    baseUrl:    "https://your-­‐host/mt/mt-­‐data-­‐api.cgi",    clientId:  "your-­‐client-­‐id"});

api.getToken(function(response)  {    if  (response.error)  {        if  (response.error.code  ===  401)  {            //  You  have  not  been  authenticated  yet.            location.href  =  api.getAuthorizationUrl(location.href);        }  else  {  /*  Handle  error  */  }    }  else  {        //  You  have  been  authenticated.        api.listEntries(siteId,  {status:  'Draft'},  function(response)  {            if  (response.error)  {  /*  Handle  error  */  return;  }                //  Fetched  a  list  of  drafts.            for  (var  i  =  0;  i  <  response.items.length;  i++)  {                    var  entry  =  response.items[i];                    //  Render  an  entry            }        });    }});

13年10月26日土曜日

var  api  =  new  MT.DataAPI({    baseUrl:    "https://your-­‐host/mt/mt-­‐data-­‐api.cgi",    clientId:  "your-­‐client-­‐id"});

var  params  =  {    search:  "foo",    searchFields:  "title,body",    fields:  "assets,author,title,permalink,body,categories"};

api.listEntries(siteId,  params,  function(response)  {    if  (response.error)  {        //  Handle  error        return;    }

   for  (var  i  =  0;  i  <  response.items.length;  i++)  {            var  entry  =  response.items[i];            //  Render  an  entry    }});

13年10月26日土曜日

https://github.com/movabletype/mt-data-api-sdk-js

13年10月26日土曜日

MOVABLE TYPE DATA API - PLUGGABLE

• REST API endpoints can be added via plugin

• Output formats can be added via plugin (Default is JSON format)

• Create your own custom object with endpoints via plugin

13年10月26日土曜日

YAML applications: data_api: endpoints: - id: list_foobar route: /sites/:site_id/foobars verb: GET version: 1 handler: $Core::MT::API::Endpoint::FooBar::list requires_login: 0 default_params: limit: 10 offset: 0 sort_by: authored_on sort_order: descend search_fields: title,text,text_more,keywords error_codes: 403:blah blah blah

13年10月26日土曜日

• A reference app created with JavaScript + Movable Type Data API + Chart API

• Available for iPhone and Android

• MIT License

LOUPE - MOBILE WEB APPLICATION

https://github.com/movabletype/mt-plugin-Loupe

13年10月26日土曜日

LOUPE - FEATURES

• Monitor your Movable Type site stats

• Today's page views

• Page views from over the past 10 days

• Comment management

• Leave responses

• Delete spam comments

• Upload image files

• Manage entries

13年10月26日土曜日

ANY QUESTIONS?

13年10月26日土曜日

THANK YOU FOR LISTING

13年10月26日土曜日