« 当サイトで公開しているMTプラグイン等のMT4.2対応状況 | メイン | MovableType用FullScreenEditプラグイン v1.00 »

MovableType用TemplateSetExporter Plugin Ver.0.60

MovableType用TemplateSetExporterプラグインのバージョンアップを行いました。変更点は次の通りです。

  • MT4.2対応
  • widgetsetに対応
  • テンプレートセット書き出し後の戻り先URLの修正

Movable Type 4.1からテンプレートセット機能が搭載されました。

テンプレートセットの選択と入れ替え | Movable Type 4 ドキュメント

テンプレートセットは、自由に作成することができます。

テンプレートセットの登録 | Movable Type 4 ドキュメント

しかし、作成するのは難しいと言う声も良く聞きます。
もっと簡単にテンプレートセットが作成できれば、テンプレートの配布の敷居もぐっとさがりますし、テスト環境から本番環境へのテンプレートの移行も気楽に行えるようになります。

そこで、テンプレートセットを作成するためのプラグインを作ってみました。

このプラグインを使うと、ブログごとのテンプレートをテンプレートセットとして出力することができるようになります。

テンプレートは、テンプレートセットの形で、ディレクトリに保存されます。
保存されたテンプレートセットは別のMovable Typeシステムに移動することもできますので、テスト環境で構築したテンプレートを本番環境に適用することが簡単に行えるようになります。
また、本プラグインで作成したテンプレートセットを配布することも簡単にできます。

ぜひ、お試しください。

ドキュメント:TemplateSetExporterプラグイン ドキュメント

ダウンロード:zip形式tar.gz形式

本プラグインは、GNU GENERAL PUBLIC LICENSE Version 2と独自ライセンスのデュアルライセンスにて公開されます。

MTで使用する場合
無償で利用できます。
MTOSで使用する場合
GNU GENERAL PUBLIC LICENSE Version 2にしたがいます

お問い合わせ

エムロジック株式会社ではMovable Typeによるサイト構築やプラグイン開発、iPhone・Windows等のアプリケーション開発業務を行っています。
お問い合わせはこちらまで。

コメント (15)

yama:

はじめまして。
テンプレートの保存と別環境に移行できるプラグインという事で大変素晴らしいものを提供していただき感謝いたします。
早速使わせてもらったのですが、書き出しそのものはバッチリ出来ています。しかし、そのファイルを読み込み(テンプレートの初期化)させると問題発生しているようです。
具体的には、書き出されたファイルの中身通りにインポートされていないという事です。テンプレートの中身が欠損している状態です。元テンプレと比較してみると、一番最初に全角文字が記述されている辺りの部分以降が消えているような感じに見受けられます。

MT4.2とMT4.21でこの現象を確認しております。

yama:

ちなみにEUC-JP環境です。これが問題しているのでしょうか・・。

せきね:

>yamaさん
欠損するテンプレートはconfig.yamlでは、どのようなファイルネームになっているでしょうか?
可能であれば、具体的な名称を教えていただけますか?

euc-jpというのも、原因かもしれません。

yama:

お返事ありがとうございます。
一例ですが、

template_14:
 label: インデックスページ
 outfile: index.php
 rebuild_me: 1

といった感じで、他のファイルネームもおかしな部分は無く
特に問題は無いです。

とりあえず全て見てみましたが、全角文字が発生する箇所以降が
全て消えた状態でインポートされる感じです。

やはりエンコードの問題でそこから先が読み込めていないのでしょうか。

yama:

あとこれは関係ないかもしれませんが、
rebuild_me: 1
rebuild_me: 0
この指定に関係なく、全てがスタティックとしてインポートされているようです。

yama:

何度も申し訳ありません。
今、試しに全角文字が入っていて欠損していたテンプレートファイル(mtmlファイル)を1つだけEUC-JPにて新規保存し、それをFTPアップロードしてみてインポートしてみたところ、そのファイルだけMT管理画面上で全角文字も含め正常に反映されていました。
やはりエンコードの違いで問題が発生していたようです。

但しこの方法を行っても、rebuild_me: 0であってもスタティック反映になってしまうようです。

せきね:

>yamaさん
templatesディレクトリにtemplate_14.mtmlファイルはありますか?
そのファイルの中味は空白ですか?
それから、「全角文字が発生する箇所以降」というのは、config.yamlで、「template_14:」以降に記述がないということでしょうか?

rebuild_meは、MT4.2でもしかすると仕様が変わっているのかもしれません。以前は、再構築を行うかどうかのフラグでした。

せきね:

>yamaさん
「テンプレートの文字コードはUTF-8でなければならない」はずですので、EUCに変換されたらうまくいくというのは、もしかすると取り込み側の問題かもしれません……。
それと、取り込み側で強制的にスタティックにしている可能性があります。MT/CMS/Template.pmの1079行目が「$tmpl->build_dynamic(0);」となっているので。

yama:

お手数をお掛けしております。

>templatesディレクトリにtemplate_14.mtmlファイルはありますか?
>そのファイルの中味は空白ですか?

template_14.mtmlファイルは存在しており、ファイルの中身は元テンプレートの内容と全く同一です。その他のmtmlファイルも全て同一でしたので、エクスポート自体は正常に行われているはずです。

>それから、「全角文字が発生する箇所以降」というのは、config.yamlで、
>「template_14:」以降に記述がないということでしょうか?

config.yamlの中身は完璧で全角文字も含め全て記述は正常です。
「全角文字が発生する箇所以降」というのはエクスポートして、”MT管理画面上で見るテンプレの中身”という意味です。template_14.mtmlファイル自体は正常にも関わらず、MT管理画面上でインデックステンプレートの中身を見ると、template_14.mtmlファイル上で最初に出てくる全角文字以降が全て欠損(消えている)しているという事です。

例:
※mtmlファイルの中身
マイブログタイトル


以下続く~

※インポート後のMT管理画面上でのテンプレ表示
←ここで表示が終わっている


>rebuild_meは、MT4.2でもしかすると仕様が変わっているのかもしれません。
>以前は、再構築を行うかどうかのフラグでした。

>それと、取り込み側で強制的にスタティックにしている可能性があります。
>MT/CMS/Template.pmの1079行目が「$tmpl->build_dynamic(0);」となっているので。

なるほど。管理画面上ではエクスポートしたテンプレ全てが「スタティック」表示であるものの、先ほど再構築を行ってみたら、rebuild_me通りの再構築をしているようです。

>「テンプレートの文字コードはUTF-8でなければならない」はずですので、EUCに
>変換されたらうまくいくというのは、もしかすると取り込み側の問題かもしれません……。

mtmlファイルを全てEUC-JP変換して保存し直し、ブログのテンプレートを初期化にてインポートしてみたら全て正常に反映されました。EUCで保存し直す時に文字変換できない文字(”~”とか)が若干出ていたようですが、ほぼ上手くいった感じです。
ちなみにconfig.yamlをEUC-JPにしてしまうとMT管理画面上のテンプレート名が化けて判読不明になりましたので、こちらはUTF-8のままで良さそうです。

yama:

すいません、例が消えてますね・・

例:
※mtmlファイルの中身
<title><$MTBlogName encode_html="1"$>マイブログタイトル</title>
</head>
<body>
以下続く~

※インポート後のMT管理画面上でのテンプレ表示
<title><$MTBlogName encode_html="1"$> ←ここで表示が終わっている

せきね:

>yamaさん
ありがとうございました。
やはり、取り込み側で、文字コードの変換がうまく行っていない可能性がありますね。
テンプレートセットの文字コードはUTF^8である必要があるので、TemplateSetExporterもそれにしたがう必要がありますので、こちらのプラグインでの対応は難しそうです。
いろいろと調べていただいたのに、すみません。

yama:

いえいえ、こちらこそお手数をお掛けしました。
EUC環境の方の参考になればと思い、色々調査・報告させてもらいました。
ありがとうございました。

やすお:

かたつむりくんwww経由でこちらに来ました。素晴らしいプラグインありがとうございます。

使用しての報告という感じですが、マニュアルどおりにpluginフォルダに書き出したテンプレートフォルダを移し、新しいブログに適応させて、再構築したところ、

「テンプレート「最新記事のフィード」の再構築中にエラーが発生しました: タグでエラーがありました: 'feed_recent'というテンプレートが見つかりませんでした。 」

とアラートがでました。その後、「最新記事のフィード」のテンプレートの種類をみたところ、通常、「最新記事のフィード(feed_recent)」となっている部分が、「最新記事のフィード(template_23)」となっていました。

ので、タグを
mt:Link template="feed_recent"
から
mt:Link template="template_23"

書き換えたら、無事再構築が完了し、テンプレートも適応されてました。問題ありませんが、feed_recentがそのまま残るようになるとベストかと思いました。

MT4.2にあがってからか、テンプレートを修正したあと、再構築するとなぜかテンプレートの内容が途中から消えてしまっているという問題に頻繁に遭遇するようになってしまいまして、このプラグインでバックアップが気軽に取れるようになってもう感謝感激です。

せきね:

>やすおさん
ご報告ありがとうございます。
mt:Linkでの問題に対応したVer0.70を公開しましたので、お試しください。

やすお:

せきねさん

早速にVer0.70公開してくださいましてありがとうございます!
今度は再構築きちんと通りました!

コメントを投稿