MTAppjQuery を使って特定のコンテンツデータを公開、更新した場合に別のコンテンツタイプアーカイブテンプレートを強制的に再構築させる方法をご紹介します。
MTAppjQuery v2.5.0 を使って特定のコンテンツデータを公開・更新したときに、別のコンテンツタイプアーカイブテンプレートを強制的に再構築する方法をご紹介します。
システム及びサイトの「Webサービス」の設定でDataAPIを有効化します。
また、システムの MTAppjQuery の設定の中の「管理画面での DataAPI の利用」を 有効
に、「Data API バージョン」を v4
に設定します。
保存しときに「別のコンテンツタイプアーカイブ」を再構築するトリガーとなる「特定のコンテンツデータ」にサンプルデータを入れて保存し、ブラウザの開発者ツールのコンソールで console.table(mtappVars.params);
と入力して、起動させるためのパラメータを確認します。
また、「特定のコンテンツデータ」を「公開状態で保存した時」に「別のコンテンツタイプアーカイブ」を再構築したい場合は、コンソールで console.table(mtappVars.content_data);
と入力して、status
の値も確認しておきます。
再構築するテンプレートのパラメータを確認
再構築したいテンプレートの編集ページを開き、コンソールで console.table(mtappVars.template);
を実行して blog_id
と id
を確認します。
特定のコンテンツデータを公開・更新した時に別のコンテンツタイプアーカイブを再構築するため、下記のコードを 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);
別のコンテンツタイプアーカイブを再構築する前に確認ウィンドウを出したい場合は 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」をクリックすると別のコンテンツデータが再構築されます。
以上です。お試しください。