20070824 mt-devcon

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

Upload: yuji-takayama

Post on 27-May-2015

1.715 views

Category:

Technology


1 download

DESCRIPTION

2007.8.24 資料

TRANSCRIPT

Page 1: 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

終了

Page 2: 20070824 MT-DEVCON

(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

終了

Page 3: 20070824 MT-DEVCON

(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

終了

Page 4: 20070824 MT-DEVCON

(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

終了

Page 5: 20070824 MT-DEVCON

(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

終了

Page 6: 20070824 MT-DEVCON

(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

終了

Page 7: 20070824 MT-DEVCON

(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

終了

Page 8: 20070824 MT-DEVCON

(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

終了

Page 9: 20070824 MT-DEVCON

(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

終了

Page 10: 20070824 MT-DEVCON

(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

終了

Page 11: 20070824 MT-DEVCON

自己紹介

(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

終了

Page 12: 20070824 MT-DEVCON

(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

終了

Page 13: 20070824 MT-DEVCON

(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

終了

Page 14: 20070824 MT-DEVCON

(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

終了

Page 15: 20070824 MT-DEVCON

(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

終了

Page 16: 20070824 MT-DEVCON

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

終了

Page 17: 20070824 MT-DEVCON

(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

終了

Page 18: 20070824 MT-DEVCON

(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

終了

Page 19: 20070824 MT-DEVCON

(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

終了

Page 20: 20070824 MT-DEVCON

(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

終了

Page 21: 20070824 MT-DEVCON

(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

終了

Page 22: 20070824 MT-DEVCON

(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

終了

Page 23: 20070824 MT-DEVCON

(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

終了

Page 24: 20070824 MT-DEVCON

(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

終了

Page 25: 20070824 MT-DEVCON

(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

終了

Page 26: 20070824 MT-DEVCON

(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

終了

Page 27: 20070824 MT-DEVCON

(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

終了

Page 28: 20070824 MT-DEVCON

(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

終了

Page 29: 20070824 MT-DEVCON

(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

終了

Page 30: 20070824 MT-DEVCON

(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

終了

Page 31: 20070824 MT-DEVCON

(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

終了

Page 32: 20070824 MT-DEVCON

(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

終了

Page 33: 20070824 MT-DEVCON

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

終了

Page 34: 20070824 MT-DEVCON

(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

終了

Page 35: 20070824 MT-DEVCON

(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

終了

Page 36: 20070824 MT-DEVCON

(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

終了

Page 37: 20070824 MT-DEVCON

(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

終了

Page 38: 20070824 MT-DEVCON

(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

終了

Page 39: 20070824 MT-DEVCON

(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

終了

Page 40: 20070824 MT-DEVCON

(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

終了

Page 41: 20070824 MT-DEVCON

(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

終了

Page 42: 20070824 MT-DEVCON

(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

終了

Page 43: 20070824 MT-DEVCON

(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

終了

Page 44: 20070824 MT-DEVCON

(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

終了

Page 45: 20070824 MT-DEVCON

(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

終了

Page 46: 20070824 MT-DEVCON

(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

終了

Page 47: 20070824 MT-DEVCON

(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

終了

Page 48: 20070824 MT-DEVCON

(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

終了

Page 49: 20070824 MT-DEVCON

(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

終了

Page 50: 20070824 MT-DEVCON

(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

終了

Page 51: 20070824 MT-DEVCON

(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

終了

Page 52: 20070824 MT-DEVCON

(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

終了

Page 53: 20070824 MT-DEVCON

(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

終了

Page 54: 20070824 MT-DEVCON

(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

終了

Page 55: 20070824 MT-DEVCON

(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

終了

Page 56: 20070824 MT-DEVCON

(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

終了

Page 57: 20070824 MT-DEVCON

(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

終了

Page 58: 20070824 MT-DEVCON

(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

終了

Page 59: 20070824 MT-DEVCON

(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

終了

Page 60: 20070824 MT-DEVCON

(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

終了

Page 61: 20070824 MT-DEVCON

(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

終了

Page 62: 20070824 MT-DEVCON

(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

終了

Page 63: 20070824 MT-DEVCON

(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

終了

Page 64: 20070824 MT-DEVCON

(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

終了

Page 65: 20070824 MT-DEVCON

(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

終了

Page 66: 20070824 MT-DEVCON

(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

終了

Page 67: 20070824 MT-DEVCON

(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

終了

Page 68: 20070824 MT-DEVCON

(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

終了

Page 69: 20070824 MT-DEVCON

(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

終了

Page 70: 20070824 MT-DEVCON

(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

終了

Page 71: 20070824 MT-DEVCON

(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

終了

Page 72: 20070824 MT-DEVCON

(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

終了

Page 73: 20070824 MT-DEVCON

(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

終了

Page 74: 20070824 MT-DEVCON

(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

終了

Page 75: 20070824 MT-DEVCON

(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

終了

Page 76: 20070824 MT-DEVCON

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

終了

Page 77: 20070824 MT-DEVCON

(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

終了

Page 78: 20070824 MT-DEVCON

(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

終了

Page 79: 20070824 MT-DEVCON

(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

終了

Page 80: 20070824 MT-DEVCON

(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

終了

Page 81: 20070824 MT-DEVCON

(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

終了

Page 82: 20070824 MT-DEVCON

(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

終了

Page 83: 20070824 MT-DEVCON

(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

終了

Page 84: 20070824 MT-DEVCON

(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

終了

Page 85: 20070824 MT-DEVCON

(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

終了

Page 86: 20070824 MT-DEVCON

(c) 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

終了

Page 87: 20070824 MT-DEVCON

(c) 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

終了

Page 88: 20070824 MT-DEVCON

(c) 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

終了

Page 89: 20070824 MT-DEVCON

(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

終了

Page 90: 20070824 MT-DEVCON

(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

終了

Page 91: 20070824 MT-DEVCON

(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

終了

Page 92: 20070824 MT-DEVCON

(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

終了

Page 93: 20070824 MT-DEVCON

(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

終了

Page 94: 20070824 MT-DEVCON

(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

終了

Page 95: 20070824 MT-DEVCON

(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

終了

Page 96: 20070824 MT-DEVCON

(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

終了

Page 97: 20070824 MT-DEVCON

(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

終了

Page 98: 20070824 MT-DEVCON

(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

終了

Page 99: 20070824 MT-DEVCON

(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

終了

Page 100: 20070824 MT-DEVCON

(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

終了

Page 101: 20070824 MT-DEVCON

(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

終了

Page 102: 20070824 MT-DEVCON

(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

終了

Page 103: 20070824 MT-DEVCON

(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

終了

Page 104: 20070824 MT-DEVCON

(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

終了

Page 105: 20070824 MT-DEVCON

新しい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

終了

Page 106: 20070824 MT-DEVCON

(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

終了

Page 107: 20070824 MT-DEVCON

(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

終了

Page 108: 20070824 MT-DEVCON

(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

終了

Page 109: 20070824 MT-DEVCON

(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

終了

Page 110: 20070824 MT-DEVCON

(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

終了

Page 111: 20070824 MT-DEVCON

(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

終了

Page 112: 20070824 MT-DEVCON

(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

終了

Page 113: 20070824 MT-DEVCON

(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

終了

Page 114: 20070824 MT-DEVCON

(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

終了

Page 115: 20070824 MT-DEVCON

(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

終了

Page 116: 20070824 MT-DEVCON

(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

終了

Page 117: 20070824 MT-DEVCON

(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

終了

Page 118: 20070824 MT-DEVCON

(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

終了

Page 119: 20070824 MT-DEVCON

(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

終了

Page 120: 20070824 MT-DEVCON

(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

終了

Page 121: 20070824 MT-DEVCON

(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

終了

Page 122: 20070824 MT-DEVCON

(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

終了

Page 123: 20070824 MT-DEVCON

(c) 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

終了

Page 124: 20070824 MT-DEVCON

(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

終了

Page 125: 20070824 MT-DEVCON

(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

終了

Page 126: 20070824 MT-DEVCON

(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

終了

Page 127: 20070824 MT-DEVCON

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

(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

終了

Page 128: 20070824 MT-DEVCON

(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

終了

Page 129: 20070824 MT-DEVCON

(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

終了

Page 130: 20070824 MT-DEVCON

(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

終了

Page 131: 20070824 MT-DEVCON

(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

終了

Page 132: 20070824 MT-DEVCON

(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

終了

Page 133: 20070824 MT-DEVCON

(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

終了

Page 134: 20070824 MT-DEVCON

(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

終了

Page 135: 20070824 MT-DEVCON

(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

終了

Page 136: 20070824 MT-DEVCON

(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

終了

Page 137: 20070824 MT-DEVCON

(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

終了

Page 138: 20070824 MT-DEVCON

(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

終了

Page 139: 20070824 MT-DEVCON

(c) 2007 Six Apart Ltd

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

中略

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

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

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

(c) 2007 Six Apart Ltd

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

中略

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

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

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

(c) 2007 Six Apart Ltd

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

中略

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

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_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

終了

Page 140: 20070824 MT-DEVCON

(c) 2007 Six Apart Ltd

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

中略

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

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

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

(c) 2007 Six Apart Ltd

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

中略

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

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_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

終了

Page 141: 20070824 MT-DEVCON

(c) 2007 Six Apart Ltd

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

中略

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

] dynamic_support =gt 0 date_based =gt 1 template_params =gt archive_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

終了

Page 142: 20070824 MT-DEVCON

(c) 2007 Six Apart Ltd

アーカイブマップに表示

(c) 2007 Six Apart Ltd

(c) 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

終了

Page 143: 20070824 MT-DEVCON

(c) 2007 Six Apart Ltd

(c) 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

終了

Page 144: 20070824 MT-DEVCON

(c) 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

終了

Page 145: 20070824 MT-DEVCON

(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

終了

Page 146: 20070824 MT-DEVCON

(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

終了

Page 147: 20070824 MT-DEVCON

最後に

(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

終了

Page 148: 20070824 MT-DEVCON

(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

終了

Page 149: 20070824 MT-DEVCON

(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

終了

Page 150: 20070824 MT-DEVCON

(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

終了

Page 151: 20070824 MT-DEVCON

(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

終了

Page 152: 20070824 MT-DEVCON

(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

終了

Page 153: 20070824 MT-DEVCON

(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

終了

Page 154: 20070824 MT-DEVCON

(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

終了

Page 155: 20070824 MT-DEVCON

(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

終了

Page 156: 20070824 MT-DEVCON

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

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

Page 157: 20070824 MT-DEVCON

(c) 2007 Six Apart Ltd

あそうそう

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

Page 158: 20070824 MT-DEVCON

(c) 2007 Six Apart Ltd

明日はHack-a-thon

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

Page 159: 20070824 MT-DEVCON

(c) 2007 Six Apart Ltd

質問はその時にでも

(c) 2007 Six Apart Ltd

終了

Page 160: 20070824 MT-DEVCON

(c) 2007 Six Apart Ltd

終了