第2回 Movable Type 勉強会 開催しました(1)
onagataniです。
本日開催させて頂いたMovable Type 勉強会の内容を早速ブログにメモべースですがUPさせて頂きます。
■藤本様のセッション
MTプラグインとは
MTの機能を拡張するプログラム
できること
テンプレートタグの追加
グローバルモディファイアの追加
独自の管理画面の追加
既存の管理画面のカスタマイズ
テーブルフィールドの追加
データベースに独自テーブルの追加
各種コールバック
テキストフィルタ
スパムフィルタ
etc。。。 なんでもできます
プラグインの基本的な配置
MTディレクトリ
pluginsディレクトリ
config.yaml
libディレクトリ
プラグイン毎のディレクトリ
*.pmファイル
tmplディレクトリ
*.tmpl
config.yamlファイル
プラグインの各種情報を記述
作者情報やプラグインの情報
管理画面に追加するメニューの追加
mt.cgiに追加する処理に記述
追加するテンプレートタグの情報
追加するフィールド情報
etc...
yamlで記述
yamlの概要
データ構造を簡潔に記述
データ構造を配列・ハッシュ・値だけで表す
ハッシュのキーと値はコロンで表す
配列の要素はマイナス
など。
YAMLの例
name: プラグイン名
id: プラグインID
description: プラグイン概要
author_name: 作者名
author_link: 作者のサイトアドレス
plugin_link: プラグインのページアドレス
version: バージョン番号
・・・他色々
テンプレートタグの追加
IloveSapporoと出力するMTLoveタグの作成
config.yamlname:MTLove
id: MTlove
author_name: ExsampleName
author_link: http://exsample.com
description: I love Sapporo
plugin_link: http://exsample.com/plugin/
etc...package MTLove::Plugin;
use strict;
sub love {
my ($ctx, $args) = @_;
return 'I love sapporo';
}1;
■コールバック
MTのコアの処理の節目にプラグインの処理を追加する仕組み
MTの処理を部分的に置き換える際に使用
以下のようなタイミングで発動
オブジェクトを保存する直前
オブジェクトを削除する直前
etc...
作成するプラグイン
ブログ記事中の全角英数字と全角起動を半角記号に変換
タイトル・本文・続き・概要・キワードを変換
ソースコードは中略します。