MTの再構築トリガーを細か〜く指定する。

| コメント(0) | トラックバック(0)

RebuikdTriggerというプラグインがあります。これ相当の処理はPowerCMSに含まれていますが、再構築のトリガーを細かく制御したい時に利用できる便利プラグインです。

ドキュメントは下記のエントリに記載したのですが、記載されているのは一部の機能のみで、他にもこのプラグインで実現できることがあります。ちょうど機能新しい機能(テンプレートタグ)を追加したので、紹介します。

システムプラグイン設定から再構築トリガーを登録できます。トリガーはcgiのパラメーターで設定します。書式はYAML形式です。

URLが mt.cgi?__mode=cfg_prefs&_type=blog&saved=1 の時、テンプレートのIDが1、2のテンプレートを再構築するには以下のように記述します。再構築出来るのはインデックスアーカイブのみです。YAMLの中に1等のテンプレートタグが記述できます。

TriggerName:
    params:
        - __mode=cfg_prefs
        - _type=blog
        - saved=1
    template_id:
        - 1
        - 2

このプラグインではテンプレート・タグによって再構築トリガーを指定することができます。タグが実行(ビルド)される時に指定されたテンプレートやブログを再構築するような動作をします。タグはいずれもファンクションタグです。

MTRebuildBlog

ブログをまるっと再構築します。archive_typeモディファイアを指定することで、指定されたアーカイブのみを対象にすることができます。以下の例では、ブログ(IDが、1、2)の記事アーカイブを再構築します。

<MTRebuildBlog archive_type="Individual" blog_ids="1,2">

制限事項なのですが、このタグで再構築できるのは、MT標準のアーカイブのみです。PowerCMSのカスタムオブジェクトアーカイブやフォルダアーカイブ、タグアーカイブといった拡張されたアーカイブは再構築できません(これらのアーカイブの再構築トリガーについては後述します)。

MTRebuildIndexById

トップページを再構築する、など特定のインデックステンプレートへのトリガーに利用できます。モディファイアにはテンプレートのIDを指定します。

<MTRebuildIndexById id="77">

MTRebuildIndexByBlogId

ブログIDを指定して、インデックスアーカイブをまるっと再構築します。上記のタグでも実現できるのですが。

<MTRebuildIndexByBlogId blog_id="1">

この指定は、以下の指定と同様となります。

<MTRebuildBlog archive_type="index" blog_id="1">

MTRebuild

あららに追加したタグがこれになります。urlモディファイアを指定して再構築を行いますので、これはMT標準以外の拡張アーカイブにも対応できます。カスタムオブジェクトアーカイブなどにも有効です(が、PowerCMSとの併用については未サポート(怒られるのでw))、次期バージョンでPowerCMSがサポートするまでお待ちくださいm(_ _)m。

以下は、記事の同一カテゴリに属する記事アーカイブを再構築するテンプレートの例です。昨日紹介した 横着なMTSetVar - SetFields2Varsプラグイン を併用しています。

<MTEntryCategory setvar="cat_name">
<MTEntries lastn="100" category="$cat_name">
<MTSetFields2Vars object="entry">
<MTRebuild url="$permalink" blog_id="$blog_id">
</MTEntries>

実はその他の地味に便利な機能

これは、MTが標準でサポートすべき機能かと思うのですが、このプラグインを入れることで、下記の再構築トリガーをサポートします。

  • 記事/ページを削除した時に、MultiBlogプラグインで指定した再構築トリガーを実行
  • ウェブページを削除した時にインデックスページを再構築
  • 指定日時非公開処理が走った後にMultiBlogプラグインで指定した再構築トリガーを実行

再構築処理が重くなるのを避ける

mt-config-cgi に、RebuildTriggerBackgroundTasks 1 を指定することで、テンプレートタグからの再構築を別プロセスでバックグラウンド処理できるようになります。これがうまく動くかどうかは環境依存の面があるので、テストの上指定してください。

それでは、よいMTライフを。

トラックバック(0)

トラックバックURL: http://junnama.alfasado.net/cgi/mt/mt-tb.cgi/830

コメントする

Facebook

Twitter

このブログ記事について

このページは、Junnama Nodaが2014年5月 9日 11:42に書いたブログ記事です。

ひとつ前のブログ記事は「横着なMTSetVar - SetFields2Varsプラグイン」です。

次のブログ記事は「PHPerのための Movable Type 講座(その13)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.2.6