PowerCMS XのComponentBlocksプラグインで追加可能なブロック数を制限する(改修版)

投稿日: 更新日:

公式に次のFAQがあり、制限の為のサンプルコードがある。
ComponentBlocksプラグインで追加可能なブロック数を制限できますか? | よくあるご質問 | PowerCMS X

しかし、(あくまでサンプルの為なのか)編集画面の初期表示で制限がかからず、ブロック追加メニューの追加ボタンを押して初めて制限が発動する不完全なものとなっている。

そこで、改修を加えて初期表示でも制限が発動するようにしてみた。

window.addEventListener('load', () => {
  if (document.body.classList.contains('edit-page')) {
    const maxBlocks = 1;

    const vm = window.componentBlocks?.[0]?.[0];
    if (!vm) return;

    const toggleButton = (blocks) => {
      const select_component_container = document.querySelector('#component_[対象のカラムのベースネーム] > .select-component-container');
      if (!select_component_container) return;

      if ( blocks.length >= maxBlocks ){
        select_component_container.style.display = "none";
      }
      else{
        select_component_container.style.display = "flex";
      }
    };

    // 初期状態のブロック数に応じてボタンを制御
    toggleButton(vm.blocks);

    // 変更を監視してボタン状態を更新
    vm.$watch('blocks', toggleButton, { deep: true });
  }
});

というか、標準機能で制限かける機能ぐらいつけてくれよー(´`)

関連するタグ

関連するタグは現在ありません。