20070824 MT-DEVCON

Post on 27-May-2015

1.713 views 1 download

description

2007.8.24 資料

Transcript of 20070824 MT-DEVCON

Movable Type 開発者向けカンファレンス2007824

(c) 2007 Six Apart Ltd

本日のお題

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

bull新しいAssetTypeを追加する

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

bull新しいAssetTypeを追加する

bull新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

自己紹介

(c) 2007 Six Apart Ltd

自己紹介

bull 高山 裕司(たかやま ゆうじ)

bull 入社1年半

bull Movable Type開発チーム所属

bull PostgreSQL使ってます

bull 最近はemacsです

bull プラグインもたまに作ります

bull httptakayamavoxcom

(c) 2007 Six Apart Ltd

PostVoxとか

ThisIsGoodとか

作りました

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

本日のお題

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

bull新しいAssetTypeを追加する

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

bull新しいAssetTypeを追加する

bull新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

自己紹介

(c) 2007 Six Apart Ltd

自己紹介

bull 高山 裕司(たかやま ゆうじ)

bull 入社1年半

bull Movable Type開発チーム所属

bull PostgreSQL使ってます

bull 最近はemacsです

bull プラグインもたまに作ります

bull httptakayamavoxcom

(c) 2007 Six Apart Ltd

PostVoxとか

ThisIsGoodとか

作りました

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

bull新しいAssetTypeを追加する

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

bull新しいAssetTypeを追加する

bull新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

自己紹介

(c) 2007 Six Apart Ltd

自己紹介

bull 高山 裕司(たかやま ゆうじ)

bull 入社1年半

bull Movable Type開発チーム所属

bull PostgreSQL使ってます

bull 最近はemacsです

bull プラグインもたまに作ります

bull httptakayamavoxcom

(c) 2007 Six Apart Ltd

PostVoxとか

ThisIsGoodとか

作りました

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

bull新しいAssetTypeを追加する

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

bull新しいAssetTypeを追加する

bull新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

自己紹介

(c) 2007 Six Apart Ltd

自己紹介

bull 高山 裕司(たかやま ゆうじ)

bull 入社1年半

bull Movable Type開発チーム所属

bull PostgreSQL使ってます

bull 最近はemacsです

bull プラグインもたまに作ります

bull httptakayamavoxcom

(c) 2007 Six Apart Ltd

PostVoxとか

ThisIsGoodとか

作りました

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

bull新しいAssetTypeを追加する

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

bull新しいAssetTypeを追加する

bull新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

自己紹介

(c) 2007 Six Apart Ltd

自己紹介

bull 高山 裕司(たかやま ゆうじ)

bull 入社1年半

bull Movable Type開発チーム所属

bull PostgreSQL使ってます

bull 最近はemacsです

bull プラグインもたまに作ります

bull httptakayamavoxcom

(c) 2007 Six Apart Ltd

PostVoxとか

ThisIsGoodとか

作りました

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

bull新しいAssetTypeを追加する

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

bull新しいAssetTypeを追加する

bull新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

自己紹介

(c) 2007 Six Apart Ltd

自己紹介

bull 高山 裕司(たかやま ゆうじ)

bull 入社1年半

bull Movable Type開発チーム所属

bull PostgreSQL使ってます

bull 最近はemacsです

bull プラグインもたまに作ります

bull httptakayamavoxcom

(c) 2007 Six Apart Ltd

PostVoxとか

ThisIsGoodとか

作りました

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

bull新しいAssetTypeを追加する

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

bull新しいAssetTypeを追加する

bull新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

自己紹介

(c) 2007 Six Apart Ltd

自己紹介

bull 高山 裕司(たかやま ゆうじ)

bull 入社1年半

bull Movable Type開発チーム所属

bull PostgreSQL使ってます

bull 最近はemacsです

bull プラグインもたまに作ります

bull httptakayamavoxcom

(c) 2007 Six Apart Ltd

PostVoxとか

ThisIsGoodとか

作りました

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

本日のお題

bull自己紹介

bullMTのPlugin開発とは

bullTransformerの謎

bullDashboard Widgetで色々管理

bull新しいAssetTypeを追加する

bull新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

自己紹介

(c) 2007 Six Apart Ltd

自己紹介

bull 高山 裕司(たかやま ゆうじ)

bull 入社1年半

bull Movable Type開発チーム所属

bull PostgreSQL使ってます

bull 最近はemacsです

bull プラグインもたまに作ります

bull httptakayamavoxcom

(c) 2007 Six Apart Ltd

PostVoxとか

ThisIsGoodとか

作りました

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

自己紹介

(c) 2007 Six Apart Ltd

自己紹介

bull 高山 裕司(たかやま ゆうじ)

bull 入社1年半

bull Movable Type開発チーム所属

bull PostgreSQL使ってます

bull 最近はemacsです

bull プラグインもたまに作ります

bull httptakayamavoxcom

(c) 2007 Six Apart Ltd

PostVoxとか

ThisIsGoodとか

作りました

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

自己紹介

(c) 2007 Six Apart Ltd

自己紹介

bull 高山 裕司(たかやま ゆうじ)

bull 入社1年半

bull Movable Type開発チーム所属

bull PostgreSQL使ってます

bull 最近はemacsです

bull プラグインもたまに作ります

bull httptakayamavoxcom

(c) 2007 Six Apart Ltd

PostVoxとか

ThisIsGoodとか

作りました

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

自己紹介

(c) 2007 Six Apart Ltd

自己紹介

bull 高山 裕司(たかやま ゆうじ)

bull 入社1年半

bull Movable Type開発チーム所属

bull PostgreSQL使ってます

bull 最近はemacsです

bull プラグインもたまに作ります

bull httptakayamavoxcom

(c) 2007 Six Apart Ltd

PostVoxとか

ThisIsGoodとか

作りました

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

自己紹介

bull 高山 裕司(たかやま ゆうじ)

bull 入社1年半

bull Movable Type開発チーム所属

bull PostgreSQL使ってます

bull 最近はemacsです

bull プラグインもたまに作ります

bull httptakayamavoxcom

(c) 2007 Six Apart Ltd

PostVoxとか

ThisIsGoodとか

作りました

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

PostVoxとか

ThisIsGoodとか

作りました

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

この辺読むと良いと思うhttpwebsig247jpdoc14thwebsig14th_cheebowpdf

MTのPlugin開発とは

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

それだとすぐに終わってしまうので

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Why plugin

bullPlugin vs Customizebull Customizeを行うと色々問題

bull バージョンアップの度に同じ事の繰り返し

bull 製品サポートは受けられない

bull 自己責任

bull Pluginで出来ることはPluginに

bull Pluginで出来ないことは是非フィードバックフォームに

bull もしかすると検討されるかもしれない

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Pluginで出来ること

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Pluginで出来ること

bull 新しいTemplate Tagを作る

bull 新しいModifier(旧姓グローバルフィルタ)を作る

bull MTの管理画面をTransformする

bull Spamと闘う

bull (コールバック)イベントに応じてごにょごにょ

bull オレオレフォーマットのインポーターを作る

bull 新しいオブジェクトを作る

bull etc

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

Transformerの謎

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

MTと言えば

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Transformer

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Unicron (MTE15)

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

開発コードネームにもhellip

Wheeljack(幻のMT35)Unicron (MTE15)

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

ちなみにMT4からは

ばとるすたーぎゃらくてぃか

Battle Star Galactica

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Transformerとは

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Transformerとは

bull MTの管理ページUIをカスタマイズできる

bull MT33から導入

bull MT32の頃にはBigPAPIで実現されていた

bull 例えばRightFieldsやTiny MCE for MTとか

bull 表示しているメッセージを変えて大阪弁UIとか作れちゃう

bull まるで現実的ではないですけど

bull メニューにプラグインの呼び出しを追加したり出来る

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

これまでの問題点

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

これまでの問題点

bull 管理画面のテンプレートが書き換わるとまったく動作しない 正規表現を使っているから

bull 複数のTransformer Pluginを入れると挙動がおかしい Transform後のテンプレートが変わってたりする

bull 使い方が難しい AppTemplateSourceAppTemplateParamAppTemplateOutputをどう使い

分けるの

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

MT4のTransformer

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

MT4のTransformer

bull 管理ページがMTTemplate化された

bull IDベースのDOMライクな操作が可能に

bull レジストリのサポート

bull レジストリを使うことでTransformerせずに済む場合も

bull AppTemplateSourceParamOutputの使い分けが明確に

bull AppTemplateSourceコンパイルされる前のテンプレートを取得可能(コード)

bull AppTemplateParamMTTemplateオブジェクトとしてテンプレートを取得可能

bull AppTemplateOutputHTMLにコンパイルされたテンプレートを取得可能

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

MTTemplateMTTemplateが提供するメソッド

bull getElementsByTagName

bull getElementsByClassName

bull getElementsByName

bull getElementById

bull createElement

bull createTextNode

bull insertAfter

bull insertBefore

bull childNodes

bull hasChildNodes

bull appendChild

bull setAttribute

bull getAttribute

bull template

bull nextSibling

bull previousSibling

bull firstChild

bull lastChild

bull parentNode

bull childNodes

bull hasChildNodes

bull nodeType

bull nodeName

bull nodeValue

bull innerHTML

bull appendChild

bull removeChild

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

MTTemplateを使ってみるpackage MTPluginSampleTransfomer

~ 中略 ~

MT-gtadd_callback( MTAppCMStemplate_paramedit_entry 9 $plugin ampadd_field )

sub add_field my ( $eh $app $param $tmpl ) = _ return unless UNIVERSALisa( $tmpl MTTemplate )

my $innerHTML my $host_node = $tmpl-gtgetElementById(tags) my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello ) my $word = ltstronggtHello Transformerltstronggt $child_node-gtinnerHTML($word) $tmpl-gtinsertBefore( $child_node $host_node )

1

テキスト

Transformer Callbackの登録

IDがrsquotagsrsquoのMTタグを取得

新しいElementを作成

新しいElementの内容を追加

新しいElementを挿入

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

MT-gtadd_callback( template_paramedit_entry 9 $plugin ampadd_field )

1TransformerのCallbackを追加する

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

my $host_node = $tmpl-gtgetElementByI(tags)

2 IDが「tags」というMTタグを取得する

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

my $child_node = $tmpl-gtcreateElement( appsetting id =gt hello label =gt Hello )

3 IDが「hello」というmtappsettingタグを生成する

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

my $word = ltstronggtHello Transformerltstronggt$child_node-gtinnerHTML($word)

4 生成したタグに内容をセットする

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

$tmpl-gtinsertBefore( $child_node $host_node)

5 生成したタグをテンプレートに挿入する

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Transformerの勘所

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Transformerの勘所

bull 注意点bull getElementXXXはMTタグ要素に対してのみ操作が可能bull HTML要素は取得できない

bull MTタグ要素のnameアトリビュートの先頭にMTは不要bull ex) MTInclude rarr  name =gt Include

bull Callback名が変わってますbull AppTemplateSourcexxx rarr template_sourcexxx

bull AppTemplateParamxxx rarr template_paramxxx

bull AppTemplateOutputxxx rarr template_outputxxx

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

レジストリでTransformerinit_registryで関連するレジストリに登録をする

$plugin-gtregistry( applications =gt cms =gt menus =gt toolsversion =gt label =gt Running Version order =gt 1000 view =gt system handler =gt sub

レジストリーapplicationscmsmenus に追加している

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

Dashboard Widgetで色々管理

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Dashboard Widget

Dashboard(ダッシュボード)

Widget(ウィジェット)

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Dashboard Widget

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Dashboard Widget

bull DashboardはMTの新しいトップページ

bull DashbordにはWidgetを表示させる

bull Widgetはユーザー毎に表示内容のカスタマイズが可能

bull WidgetはPluginで追加が出来る

bull ちなみにBlog Statsに新しいStats Graphを追加することも出来る

bull WrdPressに似てるとか言わない

bull うまく使えばCMSを超えたものも作れるかもしれない

bull 掲示板カレンダーメールアドレス帳etc

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Widgetを作る

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Widgetを作る1 標準的なPluginを作成する

2 init_registry でWidgetを登録する

3 Widgetの処理を記述する

4 Widgetのテンプレートを作成する

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

標準なPluginを作るmy $plugin = __PACKAGE__-gtnew( name =gt Widget Sample version =gt $VERSION description =gt Widget Sample author_name =gt Six Apart Ltd author_link =gt httpwwwsixapartcom )MT-gtadd_plugin($plugin)

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

init_registryで登録$plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Widgetの処理を記述sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

テンプレートを作成するltmtappwidget class=widget label=Sample Widget can_close=1gt ltdiv class=boxgt ltstronggtlt$mtvarname=hello$gtltstronggt ltdivgtltmtappwidgetgt

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Widget完成package MTPluginSampleWidget

~中略~

sub init_registry my $plugin = shift $plugin-gtregistry( applications =gt cms =gt widgets =gt SampleWidget =gt label =gt Sample Widget template =gt tmplwidgettmpl handler =gt amp_hdlr_widget set =gt sidebar singular =gt 1 )

sub _hdlr_widget my $app = shift my ( $tmpl $param ) = _

$param-gthello = Hello $app-gtuser-gtnickname

1

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Blog Statsを拡張する

bullBlog Stats Widgetbull これまでに投稿したブログ記事やコメント数を視覚化

bull Flashで実現

bull XMLデータを読み込ませることでグラフを表示

bull Google Analytics等のデータを読み込ませることも可能

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

新しいAsset Typeを追加する

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Assetって

bull アップロードされたファイルはMTAssetとして管理されている

bull MT標準のAsset Type

bull 拡張子で判定される

bull Image(JPG PNG GIF)

bull Video(MOV AVI 3GP ASF MP4 QT WMV ASX ASF MGP)

bull Audio(MP3 OGG AIFF WAV WMA AAC)

bull File(上記に当てはまらない物)

bull Pluginで標準以外のAsset Typeを追加可能

bull 例えばFlashに対応 rarr Flash再生に必要なHTMLを自動生成

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Custom Assetの作り方

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装する

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドする

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Custom Assetの作り方1BaseはMTAssetとする

2extesionsサブルーチンを実装するbull 処理可能な拡張子を戻す

ex) sub extensions [ qrgifi qrjpegi qrpngi ]

3as_htmlサブルーチンを実装するbull ブログ記事に差し込むHTMLを戻す

4必要に応じてサブルーチンをオーバーライドするbull meradata

bull thumbnil_file

bull insert_options etc

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Custom Assetを作るpackage MTAssetMovie

use strictuse base qw( MTAsset )

__PACKAGE__-gtinstall_properties( class_type =gt movie)

sub extensions [ qrflvi ]

sub class_label MT-gttranslate(Movie)

sub class_label_plural MT-gttranslate(Movie)

sub as_html my $asset = shift my ($param) = _

my $url = $asset-gturl my $blog = $asset-gtblog my $site_url = $blog-gtsite_url if $blog $site_url = unless $site_url

my $player = $site_urlflvplayerswffile=$url my $text = ltlt HTMLltobject type=applicationx-shockwave-flash width=400 height=220 wmode=transparent data=$playergtltparam name=movie value=$player gtltparam name=wmode value=transparent gtltobjectgtHTML

return $asset-gtenclose($text)

1

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

ブログ記事のテキストエリアにアップロードしたムービーがPlayerと共に表示

アイテム一覧にMovieというAssetが登場

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

新しいアーカイブタイプを追加する

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Extensible Archiving

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

Extensible Archiving

bull MT4で新しく追加されたアーカイブタイプ

bull 日付別カテゴリーアーカイブ(年月週日)

bull 投稿者別アーカイブ

bull 日付別投稿者アーカイブ(年月週日)

bull 年別日付アーカイブ

bull MT4ではアーカイブをPluginで拡張可能

bull MT4ベータテスト中に嵌った方居ませんか

bull PluginsフォルダのExtensibleArchivesを消す必要アリ

bull 現時点では限られたタイプのアーカイブのみ拡張可能

bull エントリーベースカテゴリーベース日付ベース

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

四半期別アーカイブを作るpackage MTPluginExtensibleArchivesQuaterArchive

中略

sub init_registry my $plugin = shift $plugin-gtregistry( archive_types =gt Quater =gt ArchiveType( name =gt Quater archive_label =gt ampquater_archive_label archive_file =gt ampquater_archive_file archive_title =gt ampquater_archive_title date_range =gt ampquater_date_range archive_group_iter =gt ampquater_group_iter archive_group_entries =gt ampquater_group_entries default_archive_templates =gt [ ArchiveFileTemplate( label =gt yyyyquatehtml template =gt yq default =gt 1)

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_class =gt yearly-archive quater_archive =gt 1 main_template =gt 1 archive_template =gt 1 ) )

アーカイブのレジストリキーarchive_typesarchive_labelを初めとするメソッドを定義実装する

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

夢が広がりんぐ

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

最後に

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

本日ご紹介した以外にも

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

bull アイディア次第で出来ることはたくさんあります

bull 例えばTheSchwartzのタスクを作成する

bull 例えばRating Frameworkを使ってカスタムレーティング

bull 例えばコメント認証にLDAPを使うProviderを作成する

bull レジストリの詳細はを説明するスペースはありませんので libMTCorepmをご覧下さい

bull 開発者向けドキュメントは wwwmovabletypeorg をご覧下さい(日本語版は鋭意制作中)

bull 技術情報ブログTechTalkBlogmovabletype-jaも併せてご活用下さい

本日ご紹介した以外にも

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

(c) 2007 Six Apart Ltd

終了