PowerCMS X Q&A

PowerCMS Xを用いてWebサイトを構築する際の技術的なヒントや解決策をご紹介します。

ComponentBlocksプラグインで追加可能なブロック数を制限できますか?

標準機能では追加可能なブロックの数を制限する機能を提供しておりませんが、 user.jsに下記のように記述すると制限が可能です。

window.addEventListener('load', () => {
    if (document.body.classList.contains('edit-page')) { // pageモデルの編集画面のみ対象
        const maxBlocks = 5; // 最大ブロック数
        const vm = window.componentBlocks[0][0]; // 1番目のブロックエディタのViewModelを取得(2番目だったら[1][0])
        const toggleButton = (newValue) => {
            const button = document.querySelector('#component_blocks_block_edit > .select-component-container .add-block'); // #component_blocks_カラム名 > .select-component-container .add-blockで取得(現状refの設定がないため)
            if (newValue.length >= maxBlocks) {
                button.disabled = true;
            } else {
                button.disabled = false;
            }
        };
        vm.$watch('blocks', toggleButton, { deep: true });
    }
});

関連するQ&A