Movable Type Developer's Guide Volume 1
藤本壱さんが執筆された「Movable Type Developer's Guide Volume 1」の紹介です。
これまで、Movable Type のプラグイン作成に関して、書籍の中の1章として書かれたものは何冊かありますが、1冊全体がプラグイン作成に特化した書籍はありませんでした。この「Movable Type Developer's Guide Volume 1」では、約400ページがプラグイン開発の内容で占められています。
「Movable Type Developer's Guide Volume 1」は紙の本ではなく、上記リンクからPDFファイルの形式で販売されています。PC上での閲覧または製本できるように、3種類のフォーマットが用意されています。
価格は3,800円(税込)です。この本を読むためには Perl の基礎知識が必要ですが、プラグイン開発を目指している方は必携です。
- 第1章 Movable Typeでの開発を始める前に
- ・Movable Typeで開発を行うために必要な知識
- ・開発のために必要な環境
- ・Jumpbox for Movable Typeの概要とダウンロード
- ・Jumpbox for Movable Typeのインストール(Windowsの場合)
- ・Jumpbox for Movable Typeのインストール(MacOS Xの場合)
- ・Jumpbox for Movable TypeのIPアドレスを固定する
- ・SFTP/SSHでJumpbox for Movable Typeに接続する
- ・PerlScriptプラグインのインストール
- 第2章 Movable Typeを構成するデータを読み込む
- ・Movable Typeのオブジェクトの概要
- ・ブログのオブジェクト(MT::Blog)の操作
- ・ブログ記事のオブジェクト(MT::Entry)の操作
- ・ウェブページのオブジェクト(MT::Page)の操作
- ・カテゴリのオブジェクト(MT::Category)の操作
- ・フォルダのオブジェクト(MT::Folder)の操作
- ・コメントのオブジェクト(MT::Comment)の操作
- ・トラックバックのオブジェクト(MT::TBPing/MT::Trackback)の操作
- ・アイテムのオブジェクト(MT::Asset/MT::ObjectAsset)の操作
- ・タグのオブジェクト(MT::Tag/MT::ObjectTag)の操作
- ・ユーザーのオブジェクト(MT::Author)の操作
- 第3章 オブジェクトの各種の操作とユーティリティモジュールの使い方
- ・MT::Objectクラスについて
- ・loadメソッドの書き方
- ・オブジェクトの読み込みとプロパティの扱い
- ・オブジェクトの集計
- ・オブジェクトの新規作成/編集と保存
- ・オブジェクト間の関連付け
- ・オブジェクトの削除
- ・ユーティリティモジュール(MT::Util)の利用
- ・日本語関連サブルーチン(MT::I18N)の利用
- 第4章 テンプレートタグをプラグインで拡張する
- ・プラグインの概要
- ・プラグインの登録
- ・グローバル・モディファイアの作成
- ・ファンクションタグの基本
- ・コンテキスト/モディファイアを利用したファンクションタグの作成
- ・ブロックタグの基本
- ・ブロック内のテンプレートタグに情報を渡す
- ・条件判断を行うブロックタグ
- ・繰り返しを行うブロックタグ
- ・アーカイブのタイプを判別して処理を分ける
- ・複数のブログに対応する
- ・テンプレートタグ系プラグインに関する各種のトピック
- 第5章 各種のプラグインの作成とプラグインの日本語対応
- ・プラグインを日本語対応にする
- ・テキストフィルタプラグインの作成
- ・スパムフィルタプラグインの作成
- ・テンプレートセットプラグインの作成・その①(プラグインの作成手順)
- ・テンプレートセットプラグインの作成・その②(プラグインの作成事例)
- 第6章 各種のトピック
- ・ログの記録
- ・メールの送信
- ・再構築とテンプレートの扱い
- ・コマンドラインツールの作成
- ・プログラムのデバッグ
UserNameEditController プラグイン v0.02
先日公開した「UserNameEditController プラグイン」をバージョンアップしました。
1.修正内容
電子メールとウェブサイトURLの編集禁止用のチェックボックスを追加しました。

すべてをチェックすると、システム管理者以外のユーザーは、次のようにユーザー情報を編集できなくなります。

2.ダウンロード
最新版のプラグインは下記のページよりダウンロードしてください。
IE7 で pre 要素が適正に表示されない不具合を修正
当サイトでは、ソースコード等を pre 要素(+code 要素)で表示していますが、「1行だけのソースコードを表示している場合、IE7では適正に表示されません」というご指摘をいただきましたので修正致しました。
1.問題点
pre 要素で1行だけのソースコードを表示していると、IE7 では次のような表示になります。
IE7

2.原因
そもそも、IE6 以外のモダンブラウザで、「overflow: scroll;」指定を行なうと、下に冗長な空白が表示されます。これを避けるために、IE6 以外のモダンブラウザに対し、CSS ハックを利用して「overflow: auto;」を設定しているのですが、IE7 に「overflow: auto;」を適用されると、1項の問題が発生します。
pre {
overflow: scroll;
}
html > body pre {
overflow: auto;
}
3.対策
IE7 の CSS ハックを利用して、IE7 のみ「overflow: scroll;」でさらに上書きします(青色部分)。
pre {
overflow: scroll;
}
html > body pre {
overflow: auto;
}
*:first-child+html pre {
overflow: scroll;
}
とりあえず現在は上記の設定にしています。以下、各ブラウザでの表示を確認しました。
IE6

IE7

Firefox

Opera

Safari

Google Chrome

より良い方法があればご教示ください。
4.参考サイト
下記です。ありがとうございました。
高次元な
EntryNotifier プラグイン
Category:[コールバック, 自作プラグイン]
Tag:[EntryNotifier, MovableType, Plugin]
Permalink
ブログ記事保存後に、アドレス帳に登録されたメールアドレスに更新通知を送信するプラグインを公開します。
実験中ですので、α版ということでご了承ください。
1.EntryNotifier プラグインのダウンロード
下記の EntryNotifier.zip をクリックして、プラグインアーカイブをダウンロード。
2009.03.27 初版
プラグインのご利用および質問に対する回答等について、ご支援・ご賛同くださる方からの寄付をお待ち申し上げます。
2.EntryNotifier プラグインのアップロード・インストール
プラグインアーカイブを展開し、中にある EntryNotifierフォルダごと、Movable Type のアプリケーションディレクトリの plugins ディレクトリにアップロード。
システム管理画面のプラグイン一覧で、「EntryNotifier~」が表示されればインストール完了です。

3.使用方法
「Movable Type 4.2 でアドレス帳機能を利用する」を参考に、アドレス帳に通知したいメールアドレスを追加してください。
追加後、ブログ記事を保存すれば、追加したメールアドレスに更新通知が送信されます。
現在は単に保存動作と連動してメール送信するという基本機能しかありません。オプションやきめ細かい動作についてはこれから追加していきたいと思います。
MovableType逆引きデザイン事典[4.2/4.1対応] 校了
MovableType逆引きデザイン事典[4.2/4.1対応] が校了しました。といってもまだ少し修正しないといけないかもしれませんが、一応一区切りついた感じです。
![]() | MovableType逆引きデザイン事典[4.2/4.1対応] 荒木 勇次郎 翔泳社 2009-04-21 売り上げランキング : Amazonで詳しく見る by G-Tools |
ということで、今日はネタなしです。すいません。
カスタムフィールドのラジオボタンを横並びにする
Movable Type 4.2x で、ラジオボタン形式のカスタムフィールドを横並びにするカスタマイズです。
Movable Type 4.1x では、ラジオボタンのカスタムフィールドは横並びにできたのですが、4.2x ではラジオボタン(多分他も)のマークアップが順不同リストに変更されたため、縦に並びます。
Movable Type 4.1x

Movable Type 4.2x

ラジオボタンを横並びにするには、mt-static/css/main.css を任意のエディタで開き、次のセレクタを最後に追加します。
.custom-field-radio-list li{
float:left;
margin-right:5px;
}
次のように表示されます。
Movable Type 4.2x(修正後)

ExcerptRichText プラグイン v0.03
先日公開した「ExcerptRichText プラグイン」をバージョンアップしました。
1.修正内容
Movable Type 4.25 に対応するようにしました。下は Movable Type 4.25 にプラグインを適用したブログ編集画面です。
また、XREAなどで管理画面にアクセスすると Script Error になる不具合を併せて修正しました。
2.ダウンロード
最新版のプラグインは下記のページよりダウンロードしてください。
孤独な
MovableType逆引きデザイン事典[4.2/4.1対応]
先日お知らせした執筆本ですが、Amazon で検索したらすでに出ていたので、とりあえずリンクを貼っておきます。Amazon での発売は4月21日になってます。
![]() | MovableType逆引きデザイン事典[4.2/4.1対応] 荒木 勇次郎 翔泳社 2009-04-21 売り上げランキング : Amazonで詳しく見る by G-Tools |
目次は追ってお知らせします。
ちなみにこの「逆引きデザイン事典」シリーズですが、ほぼ同時に以下のものも発売されるようです。
![]() | Flash逆引きデザイン事典[CS4/CS3対応] 林 拓也 翔泳社 2009-04-21 売り上げランキング : Amazonで詳しく見る by G-Tools |
![]() | Dreamweaver逆引きデザイン事典[CS4/CS3対応] 土岩 史幸 翔泳社 2009-04-21 売り上げランキング : Amazonで詳しく見る by G-Tools |
![]() | Illustrator逆引きデザイン事典[CS4/CS3対応] 柘植 ヒロポン 翔泳社 2009-04-14 売り上げランキング : Amazonで詳しく見る by G-Tools |
![]() | Photoshop逆引きデザイン事典[CS4/CS3対応] 柘植 ヒロポン 翔泳社 2009-04-14 売り上げランキング : Amazonで詳しく見る by G-Tools |
現在発売中のものは下記です。
![]() | WordPress逆引きデザイン事典[2.X対応] 高山 一登 翔泳社 2008-09-11 売り上げランキング : 135778 Amazonで詳しく見る by G-Tools |
![]() | Premiere Pro逆引きデザイン事典 CS3/2対応 千崎 達也 翔泳社 2008-05-20 売り上げランキング : 149697 Amazonで詳しく見る by G-Tools |
![]() | 写真補正・加工 逆引きデザイン事典 Photoshop CS3/CS2/CS/7.0対応 上原 ゼンジ 翔泳社 2008-05-20 売り上げランキング : 61319 Amazonで詳しく見る by G-Tools |
![]() | After Effects逆引きデザイン事典 CS3/7/6.5/6対応 高木 和明 翔泳社 2008-05-20 売り上げランキング : 124870 Amazonで詳しく見る by G-Tools |
![]() | InDesign 逆引きデザイン事典[CS3/CS2/CS対応] 生田 信一 翔泳社 2008-04-17 売り上げランキング : 70470 Amazonで詳しく見る by G-Tools |
![]() | Flash 逆引きデザイン事典 [CS3/8/MX2004対応] 松村 慎 翔泳社 2007-11-13 売り上げランキング : 67990 Amazonで詳しく見る by G-Tools |
![]() | Dreamweaver 逆引きデザイン事典 [CS3/8/MX2004対応] 植木 友浩 翔泳社 2007-11-13 売り上げランキング : 77831 Amazonで詳しく見る by G-Tools |
![]() | Illustrator 逆引きデザイン事典[CS3/CS2/CS/10/9/8対応] 生田 信一 翔泳社 2007-10-17 売り上げランキング : 51390 Amazonで詳しく見る by G-Tools |
![]() | Photoshop 逆引きデザイン事典[CS3/CS2/CS/7対応] 柘植 ヒロポン 翔泳社 2007-10-17 売り上げランキング : 103001 Amazonで詳しく見る by G-Tools |
Movable Type 4.23 から 4.25 へのアップグレード
当ブログを、Movable Type 4.23 から 4.25 へアップグレードしました(4.24 はスキップ)。ということで、アップグレード手順を紹介します。4.2x から 4.25 のアップグレードでも参考になると思います。

アップグレードは個人の責任で行ってください。正常にアップグレードできなかった場合、申し訳ありませんが当ブログに質問を頂いても解決するお手伝いをすることはできません。作業前には1項に示すバックアップ作業などを行い、ブログのバックアップを行ってください。
1.プラグインディレクトリについて
アップグレードは、新しいアプリケーションディレクトリを作成する方法を紹介していますが、この方法では、プラグインディレクトリにインストールしたプラグインを新しいアプリケーションディレクトリのpluginsディレクトリにコピーする手間が増えます。
私は前回のアップグレードより、自分でインストールしたプラグインを、標準のディレクトリ配下に置くのをやめ、別のところに配置しました。そのおかげで、本エントリーで示すプラグインファイルのコピー作業は(ほぼ)なくなり、かなり楽になりました。
デフォルトでバンドルされているプラグインと、自分でインストールしたプラグインの差分を確認しながら必要なものだけをコピーする手間が省け、非常に便利です。
なお、さきほど「ほぼ」と書いたのは、プラグインにCGIが含まれるものについてはこの方法が使えないためです。また、mt-static/pluginsにあるファイルのコピー作業は必要です。
2.アップロード後の状態について
アップグレード後、「タグ」フィールドの表示位置が「キーワード」フィールド、「概要」フィールドの下になっています。
また、前バージョンまで利用していた mixiComment プラグインが標準でバンドルされましたが、CORESERVERでは必要な Perl モジュールがなく、mixi 認証の設定ができないため、前の mixiComment プラグインを有効にしています。Google 認証も同じ状態です。
再構築はすべて正常に行なえています。
前置きが長くなりましたが、以下、アップグレード手順です。
3.ブログのバックアップ
4.23 の状態でブログのバックアップを取得します。
バックアップした後、正しくバックアップされているかどうか、バックアップファイルを確認した方が良いでしょう。圧縮ファイルでバックアップした場合、バックアップファイルを解凍すれば、XMLファイルなどがテキストエディタで確認できます。
またはバックアップを2回繰り返し、同じサイズになっていれば、経験上大丈夫だと思います。
バックアップはこれ以外にも方法があります。SQLiteであれば、mt-config.cgi に指定してる DBファイルを丸ごとダウンロードしておけば良いでしょう。MySQL であれば、コマンドラインからバックアップを実行するか、phpMyAdmin によるバックアップが可能です。
なお、バックアップはアップグレード前だけでなく、定期的に行いましょう。
4.アプリケーションディレクトリのリネーム
「アプリケーションディレクトリ」は、mt.cgi などがあるディレクトリです。このアプリケーションディレクトリ自体を FTP ツールでリネームして、プログラムを上書きしないようにしています。
例えば、アプリケーションディレクトリ名が
mt
であれば、
mt--
などに変更します。
なお、アプリケーションディレクトリ名を変更した後、一時的にブログ管理画面にアクセスできなくなりますので、注意してください。
5.アプリケーションディレクトリ作成
リネーム前と同じディレクトリを FTP ツールで(同じ位置に)作成します。上の例では、
mt
というディレクトリを作成します。
6.Movable Type 4.25 のアップロード
Movable Type 4.25 のプログラム一式を、アプリケーションディレクトリ配下にアップロードします。
スタティックディレクトリをアプリケーションディレクトリと別のディレクトリに配置している場合は、スタティックディレクトリも手順2~3と同じ要領でディレクトリを作成すると良いでしょう。
7.mt-config.cgi のコピー
旧アプリケーションディレクトリ(mt--)にある mt-config.cgi をFTPツールで一旦ローカルPCにダウンロードし、新アプリケーションディレクトリ(mt)にアップロードします。
この作業を行わずに、うっかり mt.cgi にアクセスすると、新規インストールの動作になってしまう場合があるので注意してください。間違ってアクセスしても、6項のパーミッション変更が行われていなければエラーになります。正常にアクセスできた場合も、ブラウザの操作をそれ以上行わなければ問題ありません。
8.SQLiteのデータベースをコピー(データベースにSQLite/SQLite2を使用している場合)
SQLite を使用していて、データベースファイルが旧アプリケーションディレクトリ(mt--)配下にある場合は、FTP ツールで一旦ローカル PC にダウンロードし、新アプリケーションディレクトリ(mt)配下の同じディレクトリにアップロードします。
SQLite のデータベースファイルがどれか分からない場合は、mt-config.cgi を任意のエディタで開き、Database という項目の右側に書かれている内容が SQLite のデータベースへのパスとファイル名になります。
9.CGIファイルの属性変更
5項でアップロードした、アプリケーションディレクトリ直下にある、各CGIファイル(.cgi)の属性を 644 から 755 や 705 などに変更します。属性が分からない場合は、旧アプリケーションディレクトリの CGI ファイルを参照してください。
10.ブラウザから mt.cgi にアクセス
mt.cgi にアクセスするとアップグレードが開始画面になるので「アップグレード開始」をクリックします。

サインインします。

データベースのアップグレードが実行されます。終了したら「Movable Type に戻る」をクリックします。

ブログ管理画面にアクセスできれば完了です。
11.プラグインファイルのコピー
旧アプリケーションディレクトリから必要なプラグインをコピーします。外部のテンプレートセットを利用していた場合は、必ず新しい plugins ディレクトリに外部テンプレートセットのディレクトリを、plugins ディレクトリにコピーしてください。場合によっては mt-static/plugins ディレクトリからのコピーも必要です。
4.1 からアップグレードした場合、下記の2つのプラグインはコア機能に統合されたので、旧ディレクトリからコピーしないでください(4.1からブログを開始した場合、Template Refresh プラグインは含まれていません)。
- Widget Manager
- Template Refresh
以上です。
複数ブログの情報をひとつのカレンダーにまとめて表示する
Category:[カレンダー]
Tag:[Calendar, Customize, MovableType, MultiCalendar]
Permalink
先日公開した「MultiCalendar プラグイン」を利用して、Movable Type 4 で複数ブログの情報をひとつのカレンダーにまとめて表示するカスタマイズを紹介します。
下のカレンダーは「Main」ブログで作成したカレンダーに、「Main」「Sub1」「Sub2」「Sub3」の4つのブログの情報(ブログ記事タイトル)を表示させた例です。同じ日に複数のブログのブログ記事タイトルが表示されています。

MultiCalendar プラグインはダイナミックパブリッシングにも(多分)対応しているので、それぞれでうまく動作するサブテンプレートを紹介します。
1.スタティックパブリッシング(その1)
下記のカレンダー表示用のサブテンプレートを、テンプレートモジュールまたはウィジェット、あるいはインデックステンプレートに貼り付けてください。
<mt:setVar name="undef(calendar_data)" />
<mt:Blogs include_blogs="2,3,4">
<mt:blogID setvar="blog_number" />
<mt:setVar name="counter" value="1" />
<mt:MultiCalendar blog_id="$blog_number">
<mt:CalendarIfEntries>
<mt:Entries>
<mt:setVarBlock name="calendar_data[$counter]" append="1"><li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li></mt:setVarBlock>
</mt:Entries>
</mt:CalendarIfEntries>
<mt:CalendarIfNoEntries>
<mt:setVar name="calendar_data[$counter]" append="1" value="" />
</mt:CalendarIfNoEntries>
<mt:setVar name="counter" op="++" />
</mt:MultiCalendar>
</mt:Blogs>
<mt:IfArchiveTypeEnabled archive_type="Individual">
<div class="widget-calendar widget">
<h3 class="widget-header"><$mt:Date format="%B %Y"$></h3>
<div class="widget-content">
<table summary="リンク付きのカレンダー">
<tr>
<th abbr="日曜日">日</th>
<th abbr="月曜日">月</th>
<th abbr="火曜日">火</th>
<th abbr="水曜日">水</th>
<th abbr="木曜日">木</th>
<th abbr="金曜日">金</th>
<th abbr="土曜日">土</th>
</tr>
<mt:setVar name="counter" value="1">
<mt:Calendar>
<mt:CalendarWeekHeader>
<tr>
</mt:CalendarWeekHeader>
<td>
<mt:CalendarIfEntries>
<span><$mt:CalendarDay$></span>
</mt:CalendarIfEntries>
<mt:CalendarIfNoEntries>
<span><$mt:CalendarDay$></span>
</mt:CalendarIfNoEntries>
<ul><mt:getVar name="calendar_data[$counter]" /></ul>
<mt:CalendarIfBlank> </mt:CalendarIfBlank>
</td>
<mt:CalendarWeekFooter>
</tr>
</mt:CalendarWeekFooter>
<mt:setVar name="counter" op="++">
</mt:Calendar>
</table>
</div>
</div>
</mt:IfArchiveTypeEnabled>
複数ブログの情報を収集するには、サブテンプレート前半の、MTBlogs タグと MTMultiCalendar タグ、MTEntries タグを組み合わせたもので、取得したデータを配列変数に取得します。
配列変数は、「日付+ブランク(1日までの空の曜日分)」に対応したインデックスに、ブログ記事タイトルを設定します。また、ブランクも配列変数に設定します。
配列変数に設定する時に append モディファイアを利用しているので、MTBlogs タグによる繰り返し処理で、同一日に異なるブログの情報があっても、上書きせずに追加していきます。
そのあと、通常のMTCalendar タグで繰り返しながら、配列変数の値を出力します。MTCalendar タグはtable要素を出力するための役割として使っています。
2.スタティックパブリッシング(その2)
MTBlogs タグを使わずに、テンプレートモジュールを利用する例を示します。
まず、テンプレートモジュール「calendar」に次の内容を設定します。
<mt:setVar name="counter" value="1" />
<mt:MultiCalendar blog_id="$blog_number">
<mt:CalendarIfEntries>
<mt:Entries>
<mt:setVarBlock name="calendar_data[$counter]" append="1"><li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li></mt:setVarBlock>
</mt:Entries>
</mt:CalendarIfEntries>
<mt:CalendarIfNoEntries>
<mt:setVar name="calendar_data[$counter]" append="1" value="" />
</mt:CalendarIfNoEntries>
<mt:setVar name="counter" op="++" />
</mt:MultiCalendar>
次にインクルード元に次のテンプレートを設定します。
<mt:include module="calendar" blog_number="2" />
<mt:include module="calendar" blog_number="3" />
<mt:include module="calendar" blog_number="4" />
<mt:IfArchiveTypeEnabled archive_type="Individual">
<div class="widget-calendar widget">
<h3 class="widget-header"><$mt:Date format="%B %Y"$></h3>
<div class="widget-content">
<table summary="リンク付きのカレンダー">
<tr>
<th abbr="日曜日">日</th>
<th abbr="月曜日">月</th>
<th abbr="火曜日">火</th>
<th abbr="水曜日">水</th>
<th abbr="木曜日">木</th>
<th abbr="金曜日">金</th>
<th abbr="土曜日">土</th>
</tr>
<mt:setVar name="counter" value="1">
<mt:Calendar>
<mt:CalendarWeekHeader>
<tr>
</mt:CalendarWeekHeader>
<td>
<mt:CalendarIfEntries>
<span><$mt:CalendarDay$></span>
</mt:CalendarIfEntries>
<mt:CalendarIfNoEntries>
<span><$mt:CalendarDay$></span>
</mt:CalendarIfNoEntries>
<ul><mt:getVar name="calendar_data[$counter]" /></ul>
<mt:CalendarIfBlank> </mt:CalendarIfBlank>
</td>
<mt:CalendarWeekFooter>
</tr>
</mt:CalendarWeekFooter>
<mt:setVar name="counter" op="++">
</mt:Calendar>
</table>
</div>
</div>
</mt:IfArchiveTypeEnabled>
3.ダイナミックパブリッシング用
ダイナミックパブリッシングでは配列変数がうまく動作しないので、ハッシュ変数を利用します。
サブテンプレートの構造は1項とほぼ同じです。
<mt:setVar name="undef(calendar_data)" />
<mt:Blogs include_blogs="2,3,4">
<mt:BlogID setvar="number" />
<mt:setVar name="counter" value="1" />
<mt:MultiCalendar blog_id="$number">
<mt:CalendarIfEntries>
<mt:Entries blog_ids="$number">
<mt:setVarBlock name="calendar_data" key="$counter" append="1"><li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li></mt:setVarBlock>
</mt:Entries>
</mt:CalendarIfEntries>
<mt:CalendarIfNoEntries>
</mt:CalendarIfNoEntries>
<mt:setVar name="counter" op="++" />
</mt:MultiCalendar>
</mt:Blogs>
<mt:IfArchiveTypeEnabled archive_type="Individual">
<div class="widget-calendar widget">
<h3 class="widget-header"><$mt:Date format="%B %Y"$></h3>
<div class="widget-content">
<table summary="リンク付きのカレンダー">
<tr>
<th abbr="日曜日">日</th>
<th abbr="月曜日">月</th>
<th abbr="火曜日">火</th>
<th abbr="水曜日">水</th>
<th abbr="木曜日">木</th>
<th abbr="金曜日">金</th>
<th abbr="土曜日">土</th>
</tr>
<mt:setVar name="counter" value="1">
<mt:Calendar>
<mt:CalendarWeekHeader>
<tr>
</mt:CalendarWeekHeader>
<td>
<mt:CalendarIfEntries>
<span><$mt:CalendarDay$></span>
</mt:CalendarIfEntries>
<mt:CalendarIfNoEntries>
<span><$mt:CalendarDay$></span>
</mt:CalendarIfNoEntries>
<ul><mt:getVar name="calendar_data" key="$counter" regex_replace="/Array/","" /></ul>
<mt:CalendarIfBlank> </mt:CalendarIfBlank>
</td>
<mt:CalendarWeekFooter>
</tr>
</mt:CalendarWeekFooter>
<mt:setVar name="counter" op="++">
</mt:Calendar>
</table>
</div>
</div>
</mt:IfArchiveTypeEnabled>
一番最初の日に「Array」と表示されてしまうので、regex_replace モディファイアで除去しています。
4.CSS
冒頭のカレンダーのスタイルは次の通りです。カレンダー用ではありませんがご参考まで。
table {
margin-left: 5px;
color: #666;
border: 1px solid #ccc;
border-collapse: separate;
border-spacing: 1px;
}
table th {
color: #444;
padding: 5px;
border-right: 1px solid #ccc;
border-bottom: 1px solid #ccc;
background-color: #e1e2e6;
}
table td {
padding: 2px 5px;
border-right: 1px solid #ccc;
border-bottom: 1px solid #ccc;
background-color: #eff2f3;
}
table td ul {
marginn:0;
padding:0;
list-style:none;
}
table td {
text-align:center;
}
Movable Type 4.25リリース
Movable Type 4.25 がリリースされました。
Movable Type 4.25 では、様々なバグフィクス、セキュリティ強化に加え、モーションブログを作成するためのテンプレートセットや、それに関する新機能を追加。また、プラグインとして提供されていたアクションストリーム機能を強化してバンドルしています。
Movable Type 4.25 は下記のリンクからダウンロードできます。
なお、Community Pack を含まない Movable Type Commercial 4.25 (MT-4.25com), Movable Type 4.25 (Open Source) ではモーションブログ、およびアクションストリーム機能は利用できません。
4.25 関連記事については、以前エントリーした下記の記事をご覧ください。
Six Apart の皆様、お疲れ様でした!
MultiCalendar プラグイン
Category:[拡張テンプレートタグ, 自作プラグイン]
Tag:[MovableType, MultiCalendar, Plugin]
Permalink
Movable Type 4 のカレンダー処理で、MTCalendar タグの代わりに、ブログIDを指定できる MTMultiCalendar タグを提供するプラグインを作成しました。
1.経緯
「複数ブログの情報をひとつのカレンダーに表示したい」という質問を頂いて、色々試したのですが、標準の MTCalendar タグでは、ブログIDや複数ブログIDが指定できないため、プラグインでブログIDを指定できる拡張テンプレートタグを作成しました。
また、MTCalendar タグは再構築時のパフォーマンスを考慮したキャッシュ機能があるので、MultiCalendar プラグインでは、その機能も継承するようにしました。
ちなみに、質問を頂いた方のMTバージョンは3のため、本プラグインでは全くご要望の内容が満たせておりません。
2.価格
- 個人無償版/有償版での非商用利用/Movable Type Open Source:無償
- 有償版での商用利用:1050円/1サーバ(事前に動作確認してください)
無償でご利用の場合も、プラグインのご利用および質問に対する回答等について、ご支援・ご賛同くださる方からの寄付をお待ち申し上げます。
3.MultiCalendar プラグインのダウンロード
下記の MultiCalendar.zip をクリックして、プラグインアーカイブをダウンロード。
変更履歴
2009.03.18 初版
2010.01.03 v0.02 Movable Type 5.0 対応
4.MultiCalendarプラグインのアップロード・インストール
プラグインアーカイブを展開し、中にある MultiCalendarフォルダごと、Movable Type のアプリケーションディレクトリの plugins ディレクトリにアップロード。
システム管理画面のプラグイン一覧で、「MultiCalendar~」が表示されればインストール完了です。

5.タグの使用方法
MultiCalendar タグは、次のように blog_id モディファイアを提供し、ブログIDを指定したカレンダー表示が行なえます。
<mt:IfArchiveTypeEnabled archive_type="Individual">
<div class="widget-calendar widget">
<h3 class="widget-header"><$mt:Date format="%B %Y"$></h3>
<div class="widget-content">
<table summary="リンク付きのカレンダー">
<tr>
<th abbr="日曜日">日</th>
<th abbr="月曜日">月</th>
<th abbr="火曜日">火</th>
<th abbr="水曜日">水</th>
<th abbr="木曜日">木</th>
<th abbr="金曜日">金</th>
<th abbr="土曜日">土</th>
</tr>
<mt:MultiCalendar blog_id="1">
<mt:CalendarWeekHeader>
<tr>
</mt:CalendarWeekHeader>
<td>
<mt:CalendarIfEntries>
<mt:Entries lastn="1">
<a href="<$mt:EntryPermalink$>"><$mt:CalendarDay$></a>
</mt:Entries>
</mt:CalendarIfEntries>
<mt:CalendarIfNoEntries>
<$mt:CalendarDay$>
</mt:CalendarIfNoEntries>
<mt:CalendarIfBlank> </mt:CalendarIfBlank>
</td>
<mt:CalendarWeekFooter>
</tr>
</mt:CalendarWeekFooter>
</mt:MultiCalendar>
</table>
</div>
</div>
</mt:IfArchiveTypeEnabled>
その他、MTCalendar と同じモディファイア(month/category/this)が指定できます(多分)。また、MTMultiCalendar タグブロック内は、MTCalendar と同じカレンダー系タグが使用できます。
複数ブログをひとつのカレンダーに表示するカスタマイズは下記をご覧ください。
2009.03.27
カスタマイズ記事へのリンクを追加しました。
Movable Type 本、再校中
私事ですが、5冊目の Movable Type 本を書かせて頂きました。現在再校中で、間もなく校了します。今のところ、発売は4月末の予定です。
今回は共著で、私はサブとしてカスタマイズの章を担当し、約150ページを執筆しています。カスタマイズは、これまで書いてきた本とあまり重ならないような内容を多めにピックアップしています。
本のタイトルや構成など、詳細は追って紹介したいと思います。
Movable Type の管理画面に「IP禁止リスト」を表示する
Category:[トラブルシューティング, 管理画面]
Tag:[MovableType, mt_ipbanlist, TroubleShooting]
Permalink
Movable Type では、一定期間に大量のスパムコメントを受信した場合、「IP禁止リスト」というものにスパムコメント投稿元のIPアドレスを登録するようですが、デフォルトのブログ管理画面には「IP禁止リスト」のメニューは表示されません。
これは「IP禁止リスト」滅多に操作する必要がないためと思われますが、下記の記事のように、テスト操作などで「IP禁止リスト」に登録されてしまい、その後のコメント投稿で、
- 「短い期間にコメントを大量に送りすぎです。しばらくたってからやり直してください。」
というエラーになってしまうような事象もあるみたいなので、同様の事象が発生している場合、試しに「IP禁止リスト」を表示してみると良いのではないでしょうか。
「IP禁止リスト」を表示するには、mt-config.cgi に下記の1行を追加します。
ShowIPInformation 1
これでブログ管理画面をリロードすれば、ツールメニューに「IP禁止リスト」が表示されます。

「IP禁止リスト」です。これは禁止されているIPアドレスがない状態です。

「IPアドレスの禁止」をクリックすれば手動で登録することもできます。

試しにひとつ登録してみました。日付が実体参照されているのはご愛嬌ということで。

削除するには、削除したいIPアドレスを選択して「削除」をクリックします。

THE PREMIUM CALPIS
最近、「THE PREMIUM CALPIS」に軽くハマッてます。
![]() | THE PREMIUM CALPIS 350ml*24本 カルピス 売り上げランキング : 7360 Amazonで詳しく見る by G-Tools |
普通のカルピスは近頃飲んだ記憶がまったくありませんが、昔飲んでいたカルピスの味を彷彿とさせながら、さらに濃厚でコクがあり、美味しいです。
メーカーのページでは次のように紹介されてます。
今までにないコク深いおいしさを追求するため、当社が保有する数千種類に及ぶ菌株の中から2種類の特別な乳酸菌を厳選。牛乳と独自の乳酸菌から生まれる「カルピス」に、さらにこの2種類の特別な乳酸菌を加えることにより、これまでに味わったことのない、上質な風味とコク深さを実現しました。
Amazon では売り切れですが、コンビニで普通に売ってます。280ml と、細長い350ml の2種類のペットボトルがありますので、目にとまったら一度お試しを。
コンシーラーで
検索結果のブログ記事タイトルからアーカイブページへリンクする
検索結果のブログ記事タイトルからカテゴリーアーカイブページへリンクするカスタマイズです。ご質問を頂きましたので、本エントリーにて情報展開します。
1.カスタマイズ
「ブログ記事の概要」テンプレートの下記の青色部分を追加します。
<$mt:EntryTrackbackData$>
<div id="entry-<$mt:EntryID$>" class="entry-asset asset hentry">
<div class="asset-header">
<mt:if name="search_results">
<h2 class="asset-name entry-title"><a href="<$mt:EntryLink archive_type="Category"$>#entry-<$mt:entryID$>" rel="bookmark"><$mt:EntryTitle$></a></h2>
<mt:else>
<h2 class="asset-name entry-title"><a href="<$mt:EntryPermalink$>" rel="bookmark"><$mt:EntryTitle$></a></h2>
</mt:if>
<$mt:Include module="ブログ記事のメタデータ"$>
...後略...
2.注意事項
すべてのブログ記事がカテゴリーに登録されている必要があります。MTIf タグを組み合わせればカテゴリーに未登録なブログ記事はブログ記事にとばせると思いますが、ここでは割愛します。
HatenaBookmarkAction プラグイン
Category:[管理画面, 自作プラグイン]
Tag:[HatenaBookmarkAction, MovableType, Plugin]
Permalink
Movable Type 4.25 からバンドルされるモーション(ActionStream)に、はてなブックマークのアクションストリームを追加するプラグインを作ってみました。
うまくいけば次のような表示ができると思います。

全く同じプラグインがすでにあったような気がするのですが、記憶が...。
1.HatenaBookmarkAction プラグインのダウンロード
下記の HatenaBookmarkAction.zip をクリックして、プラグインアーカイブをダウンロード。
2009.03.11 初版 2009.03.11 v0.02 画像ファイルのパスを修正
2.HatenaBookmarkAction プラグインのアップロード・インストール
プラグインアーカイブを展開し、中にある HatenaBookmarkAction フォルダごと、Movable Type のアプリケーションディレクトリの plugins ディレクトリにアップロード。また、mt-static/plugins フォルダの中にある、HatenaBookmarkAction フォルダごと、Movable Type のアプリケーションディレクトリの mt-static/plugins ディレクトリにアップロード。
システム管理画面のプラグイン一覧で、「HatenaBookmarkAction ~」が表示されればインストール完了です。

サービスの追加方法は以下の感じで、詳細は省略します。

正常に動作しないようでしたらすいません。
MTOS活用テクニック―カスタムフィールドで本格的なCMS機能を実現!
MTOS(Movable Type Open Source)に対し、プラグインを使ったカスタムフィールドの追加や、追加したフィールドによる検索機能を強化するための本が出ました。著者はおなじみの藤本壱さんです。
![]() | MTOS活用テクニック―カスタムフィールドで本格的なCMS機能を実現! 藤本 壱 ラトルズ 2009-02 売り上げランキング : 29940 Amazonで詳しく見る by G-Tools |
MTOSは商用でも無償で利用できる反面、カスタムフィールド機能が標準でバンドルされていないため、ブログ記事やウェブページのフィールドを簡単に追加することがができません。
この本では、書籍で紹介されているプラグインを追加することで、カスタムフィールドと同等の機能を追加することができます。下に示す目次を見てもらえれば、追加したい機能が概ね実現できるのではないかと思います。
この本を読むために必要なスキルは、以下の通りです。
- Movable Typeの基本操作
- HTML
- CSS
プラグインを作成するため、Perl の知識がないにこしたことはありませんが、本書ではプラグインのサンプルコードが多数用意されていて、その中の一部を書き換えればいいようになっています。
サイト制作にMTOSを使いたいけれど、ユーザーの要望に応えられなかった方々は必携です。カスタムフィールドに限らず、管理画面系のプラグイン作成にも役に立つと思います。
内容は大きく分けて、MTOSのインストールから環境構築・さまざまなフィールドを追加するためのプラグインの作成方法・各種要素へのフィールド追加方法・フィールド作成にあたってのテクニック・追加フィールドを使った検索プラグインと設定方法・Webサイト作成事例、となっています。
- 1 MTユーザーのためのMTOSの基本
- 1-1 商用版MTとMTOSの関係
- 1-2 MTOSをサイト制作のビジネスに生かす
- 1-3 MTOSのインストール
- 1-4 環境を準備する
- 1-5 テスト用のローカルのMTOS環境を作る(Windows)
- 1-6 テスト用のローカルのMTOS環境を作る(MacOS X)
- 1-7 SQLite Managerのインストールと基本的な使い方
- 1-8 第2章に進む前に
- 2 ブログ記事にフィールドを追加する
- 2-1 カスタムフィールド的な機能を作る手順
- 2-2 代替テンプレートを使って管理画面をカスタマイズする
- 2-3 プラグインでブログ記事のテーブルにフィールドを追加する
- 2-4 edit_entry.tmpl を書き換える
- 2-5 チェックボックスのフィールドを作る
- 2-6 ラジオボタン/セレクトで値を選べるようにする
- 2-7 画像のフィールドを作る
- 3 ブログの各種の要素にフィールドを追加する
- 3-1 ウェブページにフィールドを追加する
- 3-2 カテゴリ/フォルダにフィールドを追加する・その①(文字型のフィールドの追加)
- 3-3 カテゴリ/フォルダにフィールドを追加する・その②(画像型のフィールドの追加)
- 3-4 ブログにフィールドを追加する
- 4 プラグイン作成の各種のテクニック
- 4-1 1つのプラグインで複数のフィールドを追加する
- 4-2 数値型のデータを保存する
- 4-3 日付型のフィールドを追加する
- 4-4 フィールドを入力必須にする
- 4-5 ブログごとに追加するフィールドを変える
- 5 ブログ記事を検索して一覧表示する
- 5-1 サンプルデータ等のインストール
- 5-2 SearchEntriesプラグインでブログ記事を検索する
- 5-3 カテゴリやタグも含めて検索する
- 5-4 検索フォームの基本
- 5-5 さまざまな条件で検索する
- 5-6 検索結果ページの分割
- 6 MTOSを使ったWebサイト作成事例
- 6-1 この章で作るWebサイトについて
- 6-2 プラグインやサンプルデータのインストール
- 6-3 プラグインの作成
- 6-4 edit_entry.tmpl のカスタマイズ
- 6-5 メインページのテンプレートの作成
- 6-6 各種のテンプレートのカスタマイズ
- 6-7 検索機能を追加する
FFFTPでサーバ内でのファイルの移動やコピーを一発で行なう方法
FFFTPを使って、サーバ内でのファイル(やディレクトリ)の移動やコピーを一発で行なう方法を紹介します。
また、同一サーバ内だけでなく、異なるサーバ間でも、一発で移動やコピーを行なうこともできます。
1.サーバ内でファイルやディレクトリを移動
この機能は FFFTP 1.94 から標準で装備されています。ここでは、test1 ディレクトリにある hoge.txt を、同じディレクトリ配下の foo ディレクトリに移動する例で示します。
ファイル hoge.txt を選択し、移動先のディレクトリ foo にドラッグします。
ダイアログが表示されるので、「はい」をクリックします。
これで hoge.txt が foo ディレクトリに移動しました。移動後は、移動先の foo ディレクトリの内容が表示されます。
ファイルだけでなく、ディレクトリも同じ方法で移動することができます。
移動ができるのは、移動先のディレクトリが移動元のファイルまたはディレクトリと同じディレクトリである場合のみです。また、この方法ではコピーを行なうことはできません(コピーしたい場合は2項参照)。
2.サーバ内でファイルやディレクトリをコピー
1項で移動した foo ディレクトリの hoge.txt を、元のディレクトリ text1 ディレクトリにコピーする例で示します。
FFFTP をふたつ開き、ひとつは foo ディレクトリ、もうひとつは test1 ディレクトリを表示しておきます。
foo ディレクトリの hoge.txt を選択し、もうひとつの FFFTP画面の test1 ディレクトリにドラッグします。
これで、hoge.txt が test1 ディレクトリにコピーされました。
動作的には、ダウンロードとアップロードを続けて行うようですが、ローカルPCにはファイルは残らないので、手動でダウンロードとアップロードを行い、ローカルPCのファイルを削除するより効率的です。
また、この方法では移動はできません。ただし、きちんと調べた訳ではないので、間違っていたらご指摘ください。
3.サーバ間でファイルやディレクトリをコピー
2つの FFFTP 画面で異なるサーバに接続し、後は2項と全く同じ手順です。
この方法で、20MB程度の容量のディレクトリ(約2500ファイル)を異なるサーバにコピーしてみましたが、問題なく実施できました。
アフィリエイト収入の確定申告をする(平成20年分)
アフィリエイト収入の確定申告をするための、平成20年(2008年)分の申告書作成方法を紹介します。国税庁のホームページにある「確定申告書等作成コーナー」を利用します。
平成20年(2008年)分の所得税の申告は2009年3月16日(月)までですのでお早めに。
ここでは、本業がサラリーマン、副業でアフィリエイトを行っている方を前提にしています。e-Tax は使わない方法ですので、「給与所得の源泉徴収票」とアフィリエイト収入、および関連経費が分かれば、すぐに作業を行えます。前述のデータ(計算含め)が全て揃っていて、手際よく進められれば、ものの数十分~1時間程度で申告書を作成できると思います。
このエントリーは「確定申告書等作成コーナー」の利用方法のみで、「収入がいくら以上で申告が必要」とか、そういった税金に関する基礎知識については一切触れていませんので予めご了承ください。
ただし、収入および経費については、昨年の1月から12月までに振り込まれた分確定している分が対象であることだけは申し上げておきます。
2008.03.22 上記文言を修正しました。誤った情報をお伝えしたことをお詫び致します。詳細は、下記の記事をご覧ください。
1.前処理
国税庁のホームページへアクセスし、左にある「確定申告書等作成コーナー」をクリック。
![]()
「作成開始」をクリック。なお、前年度のデータがある方は、この下にある「作成再開」から進めると、住所・氏名などの入力を省略することができます。
![]()
「所得税の確定申告書」「申告書等を印刷して提出」を選択して、「入力終了(次へ)」をクリック
![]()
確認事項を確認し、それぞれチェックをして「入力終了(次へ)」をクリック
![]()
「次へ」をクリック
![]()
2.申告書の選択
「申告書A」という、大きなアイコンをクリック
![]()
「確定申告書等を印刷して税務署に提出する。」を選択(「電子申告により税務署に提出する。」は、事前に手続や利用環境などの準備が必要ですのでここでは選択しません)。また、税務署から平成20年分の所得税確定申告書が送付されていない場合は、「送付されていない」を選択。そして、生年月日を入力し、右下にある「入力終了(次へ)」をクリック。
![]()
3.各種項目の入力
ここから、実際の金額の入力を開始します。サラリーマンの方は源泉徴収票にしたがって入力していきます。
まず最初に、「収入金額等」欄の「給与」をクリックしてください。

「支払金額」欄に、源泉徴収票の「支払金額」に記載されている金額を入力します。カンマは後で反映されるので入力する必要はありません。

「源泉徴収税額」欄に、源泉徴収票の「源泉徴収税額」に記載されている金額を入力します。住宅借入金等特別控除額があればそれも入力します(その下にも入力項目がありますので注意してください)。

少し下にある、支払者の「住所(居所)又は所在地」と「氏名又は名称」を入力します。アフィリエイトであれば、自宅の住所とご自身の氏名で問題ありません。

すべて入力したら、右下の「入力終了(次へ)」をクリック。

ポップアップは入力項目・入力方法についての案内だけなので、「OK」をクリック。
![]()
ひとつ前の画面に戻ります。これだけで色々な項目に金額が設定されているのが分かると思います。

源泉徴収票に「社会保険料等の金額」が記載されていれば、「所得から差し引かれる金額」欄の「社会保険料控除」をクリック。

「社会保険料の種類」を選択し、「支払保険料」を入力します。ここでは「源泉徴収票の通り」を選択。「支払保険料」には「社会保険料等の金額」を入力します。すべて入力したら、右下の「入力終了(次へ)」をクリック。
![]()
あとは、配偶者特別控除額や扶養控除、生命保険、地震保険料控除など、とにかく数字が記載されているものを、「所得から差し引かれる金額」欄の該当の項目に入力します。

例えば、生命保険の控除がある場合は、このように入力します。
![]()
この記事のメインである、アフィリエイト収入の設定は、「収入金額等」欄の「雑・その他」になります。

アフィリエイトであれば、「種目」は「広告収入」、「名称」はアフィリエイト会社名。「場所」はその会社の所在地で良いと思います(次に述べている、源泉徴収が行われた収入については、所在地を正確に記入してください)。

あとは、受け取った金額の1年間の合計を「収入金額」に設定します。原稿料や多額のアフィリエイト収入であれば、源泉徴収されているはずなので、支払い証明書等に記載された源泉徴収額を記入します。

経費については、一番下に合計額を入力します。すべて入力したら、右下の「入力終了(次へ)」をクリック。
なお、必要事項が記入されていないと、ポップアップ画面で警告が出ます。

これで申請書に、アフィリエイトによる支払い金額が算出されます。

「入力終了(次へ)」をクリックする前に「入力データを保存する」をクリックすることをお勧めします。これを選択しておけば、入力途中のデータをローカル PCに保存し、そこから再開することができます。
ここではデータ保存する手順で進めます。
![]()
「データ保存」をクリック。これでブラウザのファイル保存画面になるので、設定されたファイル名または任意のファイル名(拡張子は変更jしない)で保存します。
![]()
保存後、2つ前の画面から「入力終了(次へ)」をクリック。
![]()
4.住民税、住所・氏名等の入力
「住民税に関する事項(申告書A)」をクリック。
![]()
「給与所得以外の住民税の徴収方法の選択」を「自分で納付(普通徴収)」を選択しておけば、アフィリエイト分の住民税が給与から差し引かれなくなります。この項目については、よく考えて選択してください。

「入力終了(次へ)」をクリックして画面を進めると、住所・氏名等入力になります。下の方にある「申告書を提出する税務署名」は実際に申告に出向く税務署を選択します。
なお、申請書についてはプリンタで印刷した後、手書き入力も可能なので、「提出年月日」など、完璧に入力する必要はありません。
すべて入力したら「入力終了(次へ)」をクリック。
![]()
5.申請書の印刷
あとは申請書を印刷します。印刷する必要がない帳票を選択できますが、とりあえずすべてチェックしておきましょう。
![]()
これで「印刷画面の表示」をクリックします。

Firefox で Acrobat8 が開かない場合は、「ツール」→「オプション」→「プログラム」タブで、「Adobe Acrobat文書」を選択し、「Acrobat Reader 5.0 を使用(標準設定)」を選択して、再度実行してみてください。
![]()
Acrobat Readerで次のような画面が開いたら印刷します。記入漏れがなければ、あとは氏名の右に印鑑を押すだけです。記入不足な部分は手書きでOKです。
![]()
「印刷画面表示」をクリックした画面で「印刷終了(次へ)」をクリックすると、作成後の確認事項が表示されます。確認したら「次へ」をクリックしてください。
![]()
これで終了ですが、データの保存をせずに「終了」をクリックすると、これまで入力した内容がすべてクリアされるので、後で修正を行いたい場合は、以前の手順で、必ず「入力データの保存」を行なっておいてください。
![]()
印刷した書類は、最寄の税務署に持っていき、係員さんに提出してください。特に何も聞かれず、あっさり受理されます。
サラリーマンの方は、添付書類として源泉徴収票が必要です。
6.保存したデータを修正する場合
保存したデータを修正する場合は、最初の方のページから「作成再開」をクリックしてください。
![]()
次のページで「所得税の確定申告書」をクリック。
![]()
ファイルを選択して、「保存データ読み込み」をクリック。
![]()
PowerEdit プラグイン v0.07
公開中の「PowerEdit プラグイン」をバージョンアップしました。
1.改善内容
以下の2点について修正しました。
- テンプレート編集画面で MTEntryBody タグ、MTEntryMore タグがエラーになる不具合を修正しました。
- 一括編集画面について、 Firefox 以外の主要ブラウザで「コメント受信」「トラックバック受信」のチェックボックスが表示されない不具合とレイアウト崩れを修正しました。
- ブログ記事・ウェブページの編集エリアの背景色を交互に変更するようにしました
2つめの事象については、複数のブラウザで下記の通り表示を確認しました。
変更前
IE6

IE7

Safari 3.2.2

Firefox 3.0.6

Google Chrome 1.0.154.48

Opera 9.6.4

変更後
IE6

IE7

Safari 3.2.2

Firefox 3.0.6

Google Chrome 1.0.154.48

Opera 9.6.4

2.ダウンロード
最新版のプラグインは下記のページよりダウンロードしてください。今回入れ替えるのは、4項の「alt-tmpl.zip」と、5項の「PowerEdit.zip」の両方です。
ExcerptRichText プラグイン v0.02
先日公開した「ExcerptRichText プラグイン」をバージョンアップしました。
1.修正内容
ブログ記事投稿編集画面・ウェブページ投稿編集画面以外で、システムメニューのプルダウンやブログ選択操作などができなくなる不具合を修正
変更前

変更後

2.ダウンロード
最新版のプラグインは下記のページよりダウンロードしてください。
Movable Type 4.25 の追加機能と変更点
Movable Type 4.25 の追加機能や変更点について、操作して気がついた部分を紹介します。
1.管理画面
ユーザー情報編集画面に「利用サービス」と「アクション」が追加されました。

「Movable Type 4.25 RC3 リリース」の再掲ですが、システム管理画面からアクションストリーム対象のサービス(プロフィール)を追加することができます。

ブログ記事投稿画面にアイコンが追加されました。左から「ブログ」「写真」「リンク」「動画などのオブジェクト」「音声」となっています。

コメント設定画面から、「登録/認証の設定」画面へのリンクが追加されています。長年親しんできた「TypeKey」という文字が「TypePad」に変わりました。

「登録/認証の設定」画面では、「Yahoo! JAPAN」や「ライブドア」「ミクシィ」など、ベータ版からさらに認証サービスが増えています。

ブログ記事のクイックフィルタも「承認待ちのブログ記事」「スパムブログ記事」が増えています。

コメント編集画面は変更されていないのですが、Movable Type ユーザーの承認解除ができるようになりました。分かりにくいですが、下の図は、Movable Type ユーザーの承認解除をしたところです。

今までは、下のように「承認済み」または「禁止」のいずれかの状態にしか遷移できませんでした。


2.インストール画面
「Movable Type 4.25 RC3 リリース」の再掲ですが、システムのメールアドレスが設定できるようになりました。

3.テンプレートタグ
コア機能で下記のテンプレートタグが追加されています。
- MTIfExternalUserManagement
- 環境変数ExternalUserManagemenを判定
また、カスタムフィールドを利用した下記のテンプレートタグが追加されています。
- MTEntryAudio
- 記事の投稿タイプがオーディオの時、アップロードされたオーディオファイルへのリンクを出力
- MTEntryEmbedCode
- 記事の投稿タイプが埋め込みオブジェクトの時、入力された埋め込みオブジェクトを表示する img 要素を出力
- MTEntryLinkURL
- 記事の投稿タイプがリンクの時、投稿した URL を出力
- MTEntryPhoto
- 記事の投稿タイプが画像の時、アップロードされた画像ファイルを表示する img 要素を出力
- MTEntryRawPostType
- 記事をどの投稿タイプで投稿したのかを出力
ドキュメントでは、下記のテンプレートタグも追加になるようです(MTEntryRawPostTypeとかぶっているような気が...)。
- MTEntryPostType
- 記事をどの投稿タイプで投稿したのかを出力
さらに、アクションストリームで下記のテンプレートタグが追加されています。
- MTActionStreams
- アクションの一覧を出力するブロックタグ
- MTOtherProfiles
- 利用サービスの一覧を出力するブロックタグ
- MTOtherProfileVar
- パラメータを指定して各利用サービスに関連した値を参照
- MTProfileServices
- 登録できるサービス一覧を出力するブロックタグ
- MTStreamAction
- アクションの内容を出力
- MTStreamActionDate
- アクションの日時を出力
- MTStreamActionID
- アクションの ID を出力
- MTStreamActionModifiedDate
- アクションの変更日時を出力
- MTStreamActionRollup
- MTStreamActionTags
- アクションにタグが含まれる場合、そのタグの一覧を出力
- MTStreamActionThumbnailURL
- アクションに含まれる写真やムービーのサムネイル画像を出力
- MTStreamActionTitle
- アクションのタイトルを出力
- MTStreamActionVar
- パラメータを指定して各アクションに関連した値を参照
- MTStreamActionVia
- アクションの詳細を確認できるページの URL を出力
Movable Type 4.25 RC3 リリース
Movable Type 4.25 RC3 がリリースされました。
Movable Type 4.25 では、様々なバグフィクス、セキュリティ強化に加え、モーションブログを作成するためのテンプレートセットや、それに関する新機能を追加。また、プラグインとして提供されていたアクションストリーム機能を強化してバンドルしています。
Movable Type 4.25 は下記のリンクからダウンロードできます。
モーションの機能については、以前エントリーした下記の記事をご覧ください。
上の記事は英語版(しかなかった)をキャプチャしていますが、今回リリースされた日本語版の利用サービス設定画面は、次のようになります。

アクションストリーム一覧画面は次のようになります。

また、インストール時にシステムのメールアドレスが設定できるようになりました。

ExcerptRichText プラグイン
Movable Type 4.x/5.0x のブログ記事投稿画面・ウェブページ作成画面の概要フィールドを、本文・追記と同様にタブで選択し、リッチテキストが使えるようにするプラグインです。
変更前(MT5.0x)

変更後(MT5.0x)

変更前(MT4)

変更後(MT4)

このプラグインを利用することで、概要フィールドについて、本文・追記フィールドと全く同じ編集ができるようになります。
通常の概要フィールドは表示されません。また、概要フィールドは表示オプションから選択対象外にします。

2.価格
- 個人無償版/有償版での非商用利用/Movable Type Open Source:無償
- 有償版での商用利用:1000円/1サーバ(事前に動作確認してください)
無償でご利用の場合も、プラグインのご利用についてご支援・ご賛同くださる方からの寄付をお待ち申し上げます。
2.ExcerptRichText プラグインのダウンロード
下記の ExcerptRichText_x_xx.zip をクリックして、プラグインアーカイブをダウンロード。
2009.03.03 初版 2009.03.05 v0.02 他の画面で一部のメニュー操作ができなくなる問題を修正 2009.03.23 v0.03 4.25対応および、Script Errorになる不具合を修正 2011.03.08 v0.10 プラグイン定義ファイルをYAMLに変更
3.ExcerptRichText プラグインのアップロード・インストール
プラグインアーカイブを展開し、中にある ExcerptRichText フォルダごと、Movable Type のアプリケーションディレクトリの plugins ディレクトリにアップロード。
システム管理画面のプラグイン一覧で、「ExcerptRichText ~」が表示されればインストール完了です。

テンプレートタグはこれまで通り、MTEntryExcerpt や MTPageExcerpt が使えます。画像をアップロードしたときもアイテムの関連付けが行なえます。
Amazon 2009年2月の注文ランキング
2009 年 2 月の Amazon 注文ランキングです。1位は「GriffinTechnology iTalk Pro GRI-IP-000063」がダントツの売り上げで返り咲きました。
1位:GriffinTechnology iTalk Pro GRI-IP-000063
![]() | GriffinTechnology iTalk Pro GRI-IP-000063 Griffin Technology 2006-11-10 売り上げランキング : 314 Amazonで詳しく見る by G-Tools |
2位:基本からしっかりわかる Movable Type 4.2 カスタマイズブック(Web Designing Books)
![]() | 基本からしっかりわかる Movable Type 4.2 カスタマイズブック(Web Designing Books) 大藤 幹 毎日コミュニケーションズ 2008-09-20 売り上げランキング : 6281 Amazonで詳しく見る by G-Tools |
2位:デザインカスタマイズブック MT4.2対応 クリエイターのためのValue Design
![]() | Movable Typeデザインカスタマイズブック MT4.2対応 クリエイターのためのValue Design 下野 宏 ソフトバンククリエイティブ 2008-09-27 売り上げランキング : 14999 Amazonで詳しく見る by G-Tools |
4位:Movable Type サイトデザイン&レシピ事典 Movable Type4.2対応
![]() | Movable Type サイトデザイン&レシピ事典 Movable Type4.2対応 エ・ビスコム・テック・ラボ 毎日コミュニケーションズ 2009-02-17 売り上げランキング : 10863 Amazonで詳しく見る by G-Tools |
4位:現場のプロから学ぶXHTML+CSS
![]() | 現場のプロから学ぶXHTML+CSS CSS Nite 毎日コミュニケーションズ 2008-11-11 売り上げランキング : 517 Amazonで詳しく見る by G-Tools |
6位:CMSとして使うMovable Typeガイドブック
![]() | CMSとして使うMovable Typeガイドブック 黒野 明子 翔泳社 2008-03-14 売り上げランキング : 6429 Amazonで詳しく見る by G-Tools |
6位:Movable Type 4.x 本格的CMSサイトを構築するためのMTスーパーテクニック クリエイターが身につけておくべき新・100の法則。
![]() | Movable Type 4.x 本格的CMSサイトを構築するためのMTスーパーテクニック クリエイターが身につけておくべき新・100の法則。 加藤 善規 インプレスジャパン 2008-09-12 売り上げランキング : 36669 Amazonで詳しく見る by G-Tools |
8位:Movable Type 4.2 パーフェクトガイド
![]() | Movable Type 4.2 パーフェクトガイド 荒木 勇次郎 毎日コミュニケーションズ 2008-07-31 売り上げランキング : 1457 Amazonで詳しく見る by G-Tools |
8位:基本からしっかりわかる WordPress 2.7 カスタマイズブック
![]() | 基本からしっかりわかる WordPress 2.7 カスタマイズブック (Web Designing BOOKS) 大藤 幹 毎日コミュニケーションズ 2009-02-17 売り上げランキング : 1293 Amazonで詳しく見る by G-Tools |
8位:「原因」と「結果」の法則
![]() | 「原因」と「結果」の法則 James Allen 坂本 貢一 サンマーク出版 2003-04 売り上げランキング : 162 Amazonで詳しく見る by G-Tools |
PowerEdit プラグイン v0.06
公開中の「PowerEdit プラグイン」をバージョンアップしました。
1.改善内容
本文・追記のテキストエリアに画像を挿入している場合、form 要素が span 要素になり、アイテムの関連付けがなくなる不具合を修正しました。
変更前

変更後

また、テキストエリアの高さを若干大きくしました。
2.ダウンロード
最新版のプラグインは下記のページよりダウンロードしてください。今回入れ替えるのは、4項の「alt-tmpl.zip」と、5項の「PowerEdit.zip」の両方です。
![MovableType逆引きデザイン事典[4.2/4.1対応]](http://ecx.images-amazon.com/images/I/61EI%2BGy07BL._SL160_.jpg)
![Flash逆引きデザイン事典[CS4/CS3対応]](http://ecx.images-amazon.com/images/I/61-tPvQgwEL._SL160_.jpg)
![Dreamweaver逆引きデザイン事典[CS4/CS3対応]](http://ecx.images-amazon.com/images/I/61u2NXpDRNL._SL160_.jpg)
![Illustrator逆引きデザイン事典[CS4/CS3対応]](http://ecx.images-amazon.com/images/I/61mPMVHavZL._SL160_.jpg)
![Photoshop逆引きデザイン事典[CS4/CS3対応]](http://ecx.images-amazon.com/images/I/61KJXWvpHWL._SL160_.jpg)
![WordPress逆引きデザイン事典[2.X対応]](http://ecx.images-amazon.com/images/I/51wvZ9nbUSL._SL160_.jpg)



![InDesign 逆引きデザイン事典[CS3/CS2/CS対応]](http://ecx.images-amazon.com/images/I/51x-UAgK7tL._SL160_.jpg)
![Flash 逆引きデザイン事典 [CS3/8/MX2004対応]](http://ecx.images-amazon.com/images/I/51bMkrpaaRL._SL160_.jpg)
![Dreamweaver 逆引きデザイン事典 [CS3/8/MX2004対応]](http://ecx.images-amazon.com/images/I/51pQYubuavL._SL160_.jpg)
![Illustrator 逆引きデザイン事典[CS3/CS2/CS/10/9/8対応]](http://ecx.images-amazon.com/images/I/516vzqGFIUL._SL160_.jpg)
![Photoshop 逆引きデザイン事典[CS3/CS2/CS/7対応]](http://ecx.images-amazon.com/images/I/51RrD4McmQL._SL160_.jpg)













