2011年08月09日
Movable TypeのテンプレートリストをCSV出力
Movable Type案件での納品時のドキュメント、皆さんはどのようなものを作成していますか? アルファサードではプラグイン開発やカスタムWebアプリ等を作る際には設計ドキュメントやテーブルスキーマ一覧、テスト仕様書やテストのエビデンス等を作成しますが、テンプレート構築を含む案件ではテンプレートの一覧を作成してどの部分を修正するためにはどのテンプレートが対象になるかを一覧にして渡すケースもあるかと思います。
もちろん、テンプレート名やソースから直感的に「どの部分の修正はどこ」が分かるような作り方をしておくのがベターなのはいうまでもありません。
また、再構築処理の最適化のために再構築トリガーの洗い出しにテンプレートの一覧を出力したいといったケースもあるでしょう。そういうシーンでのテンプレートリストを出力する用途でTemplatesプラグインを作成しました。
以下のテンプレートはすべてのウェブサイト/ブログのインデックス・テンプレートのうち公開オプションが「スタティック(既定)」且つ拡張子htmlのものをCSVとして出力するテンプレートです。Power CMS for MTがインストールされている場合、エンコーディング欄の「このアーカイブをShift_JIS出力する出力する」にチェックを入れて、Windows 向けの CSV を書き出すことができます。
<MTTemplates include_blogs="all" sort_by="blog_id" type="index" build_type="1" html="1"><MTTemplatesHeader>ブログ名,テンプレート名,blog_id,template_id,管理画面URL<MTFor regex_replace="/(?<!\r)\n|\r(?!\n)/","\r\n">
</MTFor></MTTemplatesHeader>"<$MTBlogName regex_replace='/(?=")/g','"'$>","<$MTVar name="template_name" regex_replace='/(?=")/g','"'$>",<$MTVar name="template_blog_id"$>,<$MTVar name="template_id"$>,<$MTCGIPath$><$MTAdminScript$>?__mode=view&_type=template&id=<$MTVar name="template_id"$>&blog_id=<$MTVar name="template_blog_id"$><MTFor regex_replace="/(?<!\r)\n|\r(?!\n)/","\r\n">
</MTFor></MTTemplates>
MTTemplatesブロックタグのループ内ではmt_templateテーブルの各カラムの値が <$mt:var name="template_name"$>(テンプレート名の場合)の要中たちで取得できます。カスタムフィールドの値はカスタムフィールドに指定したテンプレート・タグで取り出せますので、テンプレートにテキストエリアを追加してテンプレートの説明を記述するようにしておけばドキュメント作成の手間を軽減できるようになります。
指定可能なモディファイア
blog_id | ブログID |
---|---|
include_blogs | 対象とするブログIDを列記(カンマ区切り)または"all" "children" "siblings"が指定可能です。 |
exclude_blogs | 対象外とするブログIDを列記(カンマ区切り)します。 |
type | テンプレートのタイプです。index(インデックス), individual(ブログ記事), page(ウェブページ), custom(モジュール), archive(アーカイブ)等が指定できます。 |
build_type | 公開オプションです(0=再構築しない, 1=スタティック, 2=手動, 3=ダイナミック, 4=公開キュー経由)。 |
sort_by | 表示順に指定するカラム名 |
sort_order | 表示順(descendもしくはascend) |
include_backup | バックアップテンプレートを含む場合に指定します。typeモディファイアの指定がある場合はそちらが優先されます。 | not_template_id | IDを指定した単一のテンプレートを除いて出力します。 |
プラグインはスタティックパブリッシング専用です。ファイルを実際に生成したくない場合にはインデックス・アーカイブを作成してプレビュー機能を使うとよいでしょう。
アルファサードでは現在 Power CMS パートナーを募集しています。パートナー様に対しては GitHub で公開中のプラグイン(50近くあります!)のサポートも行っています。予算的に Power CMS の導入が難しいケースでもプラグインを活用した構築に関するサポートやライセンスの割引購入、非公開の技術資料のご提供などのメリットがあります。是非この機会にご検討ください。
- カテゴリー
- テンプレート作成Tips
- プラグイン
コメントを投稿する