Concrete5でExpressのセレクト属性のオプションをプログラムからまとめて削除する方法

delete_all_options

こんにちはフロントエンドエンジニアのまさにょんです!

今回は、Concrete5でExpressのセレクト属性のオプションをプログラムからまとめて削除する方法について解説していきます。

Expressのセレクト属性のオプションをプログラムからまとめて削除する方法

次のSampleCodeでは、Expressのセレクト属性のオプションをプログラムからまとめて削除しています。

// 入力フォーム-Table
$request_forms = Express::getObjectByHandle('request_form');

// Option-Listを作成する Handle名-List
$attr_handle = ['information_item_select', 'existing_ocean_info_select', 'api_request_select'];

foreach ($request_forms->getAttributes() as $attr) {

    // 属性情報からハンドル-Keyを取得する
    $handle = $attr->getAttributeKeyHandle();
    
    // Targetのハンドル-Keyだったら処理を開始する
    if (in_array($handle, $attr_handle)) {

        $controller = $attr->getController();

        // 初期化処理 => すべてのOptionを削除する
        $controller->setOptions([]);
    }
}

セレクト属性のオプションをプログラムからまとめて削除するSampleCode全文

セレクト属性のオプションをプログラムからまとめて削除するJob機能のPHPファイルのSampleCode全文です。

<?php
namespace Application\Job;
use \Concrete\Core\Job\Job as AbstractJob;

use Express;
use Concrete\Core\Support\Facade\Log; # Debug専用のLog

// パスカルケースでClass名を命名する
class DeleteInfoItemOption extends AbstractJob
{

    public function getJobName()
    {
        return t("Delete all option list.");
    }

    public function getJobDescription()
    {
        return t("Delete all select-option-list of information items.");
    }

    // Job-実行内容
    public function run()
    {

        \Log::addEntry('Start Delete all option list.!');

                
        // 入力フォーム-Table
        $request_forms = Express::getObjectByHandle('request_form');

        // Option-Listを作成する Handle名-List
        $attr_handle = ['information_item_select', 'existing_ocean_info_select', 'api_request_select'];

        foreach ($request_forms->getAttributes() as $attr) {
            

            // 属性情報からハンドル-Keyを取得する
            $handle = $attr->getAttributeKeyHandle();
            
            // Targetのハンドル-Keyだったら処理を開始する
            if (in_array($handle, $attr_handle)) {

                $controller = $attr->getController();

                // 初期化処理 => すべてのOptionを削除する
                $controller->setOptions([]);
            }
        }

        \Log::addEntry('Finish Delete all option list.!');
    }
}

Twitterやってます!Follow Me!

神聖グンマー帝国の逆襲🔥

神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!

PHP / Laravel書籍

最近の投稿