MTプラグイン作成への道 Perlメモ

まだ自分用のメモレベルです...
今後、覚えた事を追記していきます。

参考

続・初めてのPerl 改訂版
続・初めてのPerl 改訂版
Amazonで詳しく見る
サイト
SA技術情報提供ブログ
MT33プラグイン開発について
MT32プラグインの書き方
MovableTypeプラグインの作り方
とほほのperl入門
Perl入門

本棚にPerlの本がありました。
7年前、営業時代にPGの女の子に『経費で買って♪』と言われて自腹買ったんでしたw
今頃、陽の目を見るとは...
私が持っているのは「初めてのPerl」ですが、なかなか良い本です。
本があると断然理解が早まりますね。

Perlメモ


変数
$ スカラー
@ リスト
% ハッシュ 

¥&,& 関数呼び出し

ローカル変数
 my (perl5~),local

範囲検索
~  例~ /abc/  ⇔ abcを含んでいれば...
置換
~ s 例~ s/^\d+\)/$arg/ ⇔ 数字+)を変数argに置換

範囲表示 htmlのpreと同じ
<< aaa;

aaa

サブルーチンの引数宣言 javaでいうaa(cc,dd)と同じ
aaa{
my(cc.dd)=@_
}
呼び出し元はaaa(ccc,ddd)

未解決
->
=>

目標は年内に記事投稿画面のリンクポップアップに外部リンクを選択できるラジオボタンを追加するプラグインを開発することです。 プラグイン名『 InsertLinkTarget 』にしました。

とりあえず管理画面直接編集
/mt-static/js/common/Editor/Textarea.js99行目を
this.setSelection( '&lta href="' + argument + '" target="_blank">' + text + "</a>" );
とすれば、 管理画面のポップアップリンクはtarget="_blank"入ります。
これで満足してしまいそうで怖い...

ちなみに管理画面のボタンは
/public_html/cgi/mt4/tmpl/cms/edit_entry.tmpl 845行目で制御

この二つと
public_html/cgi/mt4/mt-static/css/editor/editor.css
をいじればボタンを増やす事はできます。

バージョンあがったファイル上書きすると消えちゃいますが...

ということでプラグイン開発がんばるぞ~


追記 既に藤本さんがプラグイン開発されてました。。。
    ということで色ボタン追加のプラグインをがんばります。

MTプラグインタグ


■変数タグを追加する場合
MT::Template::Context->add_tag ($name => \&subroutine)
■ループタグ(コンテナ・タグ)を追加する場合
MT::Template::Context->add_container_tag($name => \&subroutine)
■属性(グローバル・フィルター)を追加する場合
MT::Template::Context->add_global_filter($name, \&subroutine)
■テンプレートへ追加する場合
MT::App::CMS::template_source.asset_options_image

■phpの画像変換


<? //画像のリンク変換
$entry = '<$MTEntryBody$>';
$new = preg_replace('/&ltimg src="([^"]+)"[^>]*>/','&lta href="$1">[ 画像 ]</a>', $entry) ;
echo $new;
?>

<? //絵文字の削除
$entry = '<$MTCommentBody$>';
$pat = '/' . chr(0x5C) . chr(0x5B) . '.*' . chr(0x5C) . chr(0x5D) . '/';
$new = preg_replace($pat, '' , $entry) ;
echo $new;
?>


プラグインの基本的な用語

  • ファンクションタグ 各項目名など
  • モディファイアタグ 装飾 変換や分岐条件に使用
  • ブロックタグ 文字通り一ブロックの塊で処理する為に使用