/** * <p>Прикрепляет группу валидаторов с заданными настройками к полю формы. Аналогична вызову <a href="http://dev.1c-bitrix.ru/api_help/form/classes/cformvalidator/set.php">CFormValidator::Set</a> для каждого валидатора группы.</p> * * * * * @param int $WEB_FORM_ID ID <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#form">веб-формы</a>. * * * * @param int $FIELD_ID ID <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопроса</a>. * * * * @param array $arValidators = array() Массив валидаторов. Каждый элемент массива должен представлять * собой ассоциативный массив с ключами: <ul> <li> <b>NAME</b> - идентификатор * валидатора;</li> <li> <b>PARAMS</b> - массив параметрова валидатора.</li> </ul> * * * * @return mixed * * @static * @link http://dev.1c-bitrix.ru/api_help/form/classes/cformvalidator/setbatch.php * @author Bitrix */ public static function SetBatch($WEB_FORM_ID, $FIELD_ID, $arValidators) { global $DB; $rsValList = CFormValidator::GetAllList(); $arValList = array(); while ($arVal = $rsValList->Fetch()) { $arValList[$arVal["NAME"]] = $arVal; } $C_SORT = 0; foreach ($arValidators as $key => $arFieldVal) { if ($arVal = $arValList[$arFieldVal["NAME"]]) { $C_SORT += 100; $arQueryFields = array( "~TIMESTAMP_X" => $DB->CurrentTimeFunction(), "FORM_ID" => intval($WEB_FORM_ID), "FIELD_ID" => intval($FIELD_ID), "ACTIVE" => "Y", "C_SORT" => $C_SORT, "VALIDATOR_SID" => $arFieldVal["NAME"], ); if (is_array($arFieldVal["PARAMS"]) && is_set($arVal, "CONVERT_TO_DB")) { $arParams = array(); foreach ($arFieldVal["PARAMS"] as $key => $arParam) { $arParams[$arParam["NAME"]] = $arParam["VALUE"]; } if (count($arParams) > 0) { $strParams = CFormValidator::GetSettingsString($arVal, $arParams); $arQueryFields["PARAMS"] = $strParams; } } $DB->Add("b_form_field_validator", $arQueryFields); } } }