• Home
  • Movable Type
  • MTAppjQuery
  • MTAppjQuery で特定のコンテンツデータを公開・更新した時に別のコンテンツタイプアーカイブを再構築する方法

MTAppjQuery で特定のコンテンツデータを公開・更新した時に別のコンテンツタイプアーカイブを再構築する方法

MTAppjQuery v2.5.0 を使って特定のコンテンツデータを公開・更新したときに、別のコンテンツタイプアーカイブテンプレートを強制的に再構築する方法をご紹介します。

DataAPI を有効化

システム及びサイトの「Webサービス」の設定でDataAPIを有効化します。

Auto rebuild01 min
Auto rebuild02 min

また、システムの MTAppjQuery の設定の中の「管理画面での DataAPI の利用」を 有効 に、「Data API バージョン」を v4 に設定します。

Auto rebuild03 min

トリガーページのパラメータを確認

保存しときに「別のコンテンツタイプアーカイブ」を再構築するトリガーとなる「特定のコンテンツデータ」にサンプルデータを入れて保存し、ブラウザの開発者ツールのコンソールで console.table(mtappVars.params); と入力して、起動させるためのパラメータを確認します。

Auto rebuild04 min

また、「特定のコンテンツデータ」を「公開状態で保存した時」に「別のコンテンツタイプアーカイブ」を再構築したい場合は、コンソールで console.table(mtappVars.content_data); と入力して、status の値も確認しておきます。

Auto rebuild05 min

再構築するテンプレートのパラメータを確認

再構築したいテンプレートの編集ページを開き、コンソールで console.table(mtappVars.template); を実行して blog_idid を確認します。

Auto rebuild06 min

user.js(確認画面なし編)

特定のコンテンツデータを公開・更新した時に別のコンテンツタイプアーカイブを再構築するため、下記のコードを user.js に追記します。

(function($){

  if (
    // console.table(mtappVars.params);で確認した中の下記のパラメータで条件分岐
    mtappVars.params.__mode === "view"
    && mtappVars.params._type === "content_data"
    && mtappVars.params.blog_id === "6"
    && mtappVars.params.content_type_id === "8"
    // console.table(mtappVars.content_data);で確認した status の値で条件分岐
    && mtappVars.content_data.status === "2"
    // 新規保存または更新時のパラメータ
    && (mtappVars.params.saved_added === "1" || mtappVars.params.saved_changes === "1")) {

    // console.table(mtappVars.template); で確認した blog_id を第一引数に、id を第二引数にセット
    mtappVars.DataAPI.publishTemplate(5, 49, {data: "{}"}, function (response) {
      console.log(response);
    });
  }

})(jQuery);

user.js(確認画面あり編)

別のコンテンツタイプアーカイブを再構築する前に確認ウィンドウを出したい場合は mtapp.modalConfirm (v2.5.0 で追加)を利用して下記のようにします。

(function($){

  if (
    // console.table(mtappVars.params);で確認した中の下記のパラメータで条件分岐
    mtappVars.params.__mode === "view"
    && mtappVars.params._type === "content_data"
    && mtappVars.params.blog_id === "6"
    && mtappVars.params.content_type_id === "8"
    // console.table(mtappVars.content_data);で確認した status の値で条件分岐
    && mtappVars.content_data.status === "2"
    // 新規保存または更新時のパラメータ
    && (mtappVars.params.saved_added === "1" || mtappVars.params.saved_changes === "1")) {

    // mtapp.modalConfirm を利用して確認ウィンドウを表示
    mtapp.modalConfirm({
      content: '〇〇コンテンツデータのページを更新しますか?',
      callback: function () {
        // console.table(mtappVars.template); で確認した blog_id を第一引数に、id を第二引数にセット
        mtappVars.DataAPI.publishTemplate(5, 49, {data: "{}"}, function (response) {
          console.log(response);
        });
      }
    });
  }

})(jQuery);

下図のように確認ウィンドウが表示され、「OK」をクリックすると別のコンテンツデータが再構築されます。

Auto rebuild07 min

以上です。お試しください。

MTAppjQuery について

Movable Type の管理画面をフロントエンドの知識だけで簡単にカスタマイズすることができます。

クライアントの満足度を高めるためにぜひお使いください。

MTAppjQuery の詳細を見る

MTAppjQuery