/** * @param array $fields Section fields. * @return bool */ public static function onBeforeUpdate(&$fields) { if ($settings = InterfaceHelper::getIblockSettings($fields['IBLOCK_ID'])) { if (static::checkDoubleSection($fields, $settings)) { return false; } } }
/** * Verify the existence of duplicate elements. * * @param array $fields Element fields. * @param array $settings Internationalization settings of info block. * @param string $action Action name. * @return bool */ protected static function checkDoubleElement(array $fields, $settings, $action) { global $APPLICATION; $propIdPublicId = InterfaceHelper::getPropIdByCode($fields['IBLOCK_ID'], $settings['PROP_CODE_PUBLIC_ID']); $propIdLang = InterfaceHelper::getPropIdByCode($fields['IBLOCK_ID'], $settings['PROP_CODE_LANG']); if ($action === static::ACTION_ADD) { $publicId = $fields['PROPERTY_VALUES'][$propIdPublicId]['n0']['VALUE']; $langId = $fields['PROPERTY_VALUES'][$propIdLang]['n0']['VALUE']; } else { $publicId = $fields['PROPERTY_VALUES'][$propIdPublicId][$fields['ID'] . ':' . $propIdPublicId]['VALUE']; $langId = $fields['PROPERTY_VALUES'][$propIdLang][$fields['ID'] . ':' . $propIdLang]['VALUE']; } if ($fields['PROPERTY_VALUES'][$propIdPublicId]) { $rsElement = \CIBlockElement::GetList([], ['IBLOCK_ID' => $fields['IBLOCK_ID'], 'PROPERTY_' . $settings['PROP_CODE_PUBLIC_ID'] => $publicId, 'PROPERTY_' . $settings['PROP_CODE_LANG'] => $langId, '!ID' => $fields['ID']], false, ['nTopCount' => 1], ['ID', 'IBLOCK_ID']); if ($element = $rsElement->Fetch()) { $APPLICATION->ThrowException(Loc::getMessage('NOTAMEDIA_I18N_IBLOCK_HANDLER_ELEMENT_ALREADY_EXIST')); return true; } } return false; }
public static function getPropertyFieldHtml($property, $value, $strHTMLControlName) { return InterfaceHelper::getLangFieldHtml($strHTMLControlName['VALUE'], $value['VALUE'], InterfaceHelper::MODEL_ELEMENT); }
public function GetEditFormHTML($userField, $htmlControl) { return InterfaceHelper::getLangFieldHtml($htmlControl['NAME'], $htmlControl['VALUE'], InterfaceHelper::MODEL_SECTION); }