株式会社HAMWORKS
🤖

MTAppjQueryのmtappVars.debug_modeを活用してみる

2022/11/29に公開

mtappVars.debug_mode を利用することで、MovableTypeのデバッグモードで条件を加えることが可能です。

デバッグモード

コンソールで mtappVars.debug_mode と打つと 設定した値が返ってきます。

コンソール

user.jsの定数にこのような真偽値を用意しておきます。

const CONSTANT = {
  DEBUG_MODE : mtappVars.debug_mode === '1',
}

DEBUG_MODEは、MovableTypeのデバッグモードが ON になってるときに trueを返します。
この値を利用してデバッグモードの時だけ実行したいコードの検証に使えます。

マルチフィールドのデバッグモードをONにできる

MTAppjQueryのマルチフィールドの中身はJSONです。
デバッグモードをONにすることで、セットされた値をJSONで参照することができます。

コンソール

mtapp.multiField({
    version: 2,
    debug: false,  // 真偽値でJSONを表示できます。
    id: 28,
})

先程の定数 DEBUG_MODE を利用して以下のように設定しておくことで、MOvable Typeのデバッグモード時にマルチフィールドもデバッグモードに変更されます。

const CONSTANT = {
  DEBUG_MODE : mtappVars.debug_mode === '1',
}
mtapp.multiField({
    version: 2,
    debug: CONSTANT.DEBUG_MODE,
    id: 28,
})

デバッグモードが有効の時だけ処理を加える

定数に真偽値を返すことで、マルチフィールド以外の活用方法ができます。

例えば、デバッグモード時に出しておきたいアラートメッセージなども活用できます。

前回の記事で紹介した、getMultiField.idを当てることでフィールドのIDの上部に追加することができます。

デバッグモードの時だけアラートメッセージ

  const debugModeMessage = (id) =>
    CONSTANT.DEBUG_MODE &&
    $(`#contentField${id}`).before(
      `<div class="mt-3 h4 alert alert-danger" role="alert">開発者モードのため、下記のテキストエリアの編集はお控えください。</div>`
    );

  // ここは前回の記事を参照してください。
  debugModeMessage(getMultiField.id);

user.jsに直接デバッグモードを記述せずに、Movable TypeのデバッグモードのON/OFFで処理を変えることが可能になります。
コードをいじらずにモードを切り替えすることが可能になるので、様々な場面で利用できると思います。

株式会社HAMWORKS
株式会社HAMWORKS

Discussion