3namespace Bitrix\Iblock\UserField\Types;
6use Bitrix\Main\Localization\Loc;
11use CIBlockSectionEnum;
29 'DESCRIPTION' => Loc::getMessage(
'USER_TYPE_IBSEC_DESCRIPTION'),
30 'BASE_TYPE' => CUserTypeManager::BASE_TYPE_INT,
41 if (!isset($userField[
'VALUE']))
46 if (is_array($userField[
'VALUE']))
48 $val = $userField[
'VALUE'];
52 $val = [$userField[
'VALUE']];
68 'LEFT_MARGIN' =>
'ASC',
73 $res .= $row[
'NAME'] .
"\r\n";
88 if(self::$iblockIncluded ===
null)
95 if(self::$iblockIncluded && (
int)$userField[
'SETTINGS'][
'IBLOCK_ID'])
97 $section = CIBlockSectionEnum::getTreeList(
98 (
int)$userField[
'SETTINGS'][
'IBLOCK_ID'],
99 $userField[
'SETTINGS'][
'ACTIVE_FILTER']
112 if (self::$iblockIncluded ===
null)
117 if (!self::$iblockIncluded)
122 $userField[
'MANDATORY'] ??=
'N';
123 $userField[
'SETTINGS'][
'IBLOCK_ID'] ??= 0;
124 $userField[
'SETTINGS'][
'SHOW_NO_VALUE'] ??=
'Y';
125 $userField[
'SETTINGS'][
'DISPLAY'] ??=
'';
126 $userField[
'SETTINGS'][
'ACTIVE_FILTER'] ??=
'N';
130 $userField[
'MANDATORY'] !==
'Y'
131 || $userField[
'SETTINGS'][
'SHOW_NO_VALUE'] !==
'N'
133 isset($additionalParameters[
'SHOW_NO_VALUE'])
134 && $additionalParameters[
'SHOW_NO_VALUE'] === true
141 $userField[
'SETTINGS'][
'DISPLAY'] !== self::DISPLAY_CHECKBOX
142 || $userField[
'MULTIPLE'] !==
'Y'
147 null => static::getEmptyCaption($userField)
153 $checkValue = ($additionalParameters[
'mode'] ??
'') === self::MODE_VIEW;
156 $currentValues = static::getFieldValue($userField, $additionalParameters);
178 $userField[
'USER_TYPE'][
'FIELDS'] =
$result;
183 $filter[
'ACTIVE'] = $userField[
'SETTINGS'][
'ACTIVE_FILTER'] ===
'Y';
185 if (isset($additionalParameters[
'SKIP_CHECK_PERMISSIONS']) && $additionalParameters[
'SKIP_CHECK_PERMISSIONS'])
187 $filter[
'CHECK_PERMISSIONS'] =
'N';
191 (
int)$userField[
'SETTINGS'][
'IBLOCK_ID'],
195 if (!is_array($sections))
209 $userField[
'USER_TYPE'][
'FIELDS'] =
$result;
214 if (self::$iblockIncluded ===
null)
218 if (
$iblockId <= 0 || !self::$iblockIncluded)
223 $additionalFilter[
'ACTIVE'] ??=
false;
227 'CHECK_PERMISSIONS' => $additionalFilter[
'CHECK_PERMISSIONS'] ??
'Y',
228 'MIN_PERMISSION' => \CIBlockRights::PUBLIC_READ,
230 if ($additionalFilter[
'ACTIVE'])
234 if (isset($additionalFilter[
'ID']))
236 $filter[
'ID'] = $additionalFilter[
'ID'];
242 'LEFT_MARGIN' =>
'ASC',
254 $result[$element[
'ID']] = $element[
'NAME'];
271 $enum = call_user_func([$userField[
'USER_TYPE'][
'CLASS_NAME'],
'getlist'], $userField);
277 while ($item = $enum->GetNext())
279 $result[] = [
'NAME' => $item[
'VALUE'],
'VALUE' => $item[
'ID']];
298 $value = ($userField[
'SETTINGS'][
'DEFAULT_VALUE'] ??
'');
300 return ($userField[
'MULTIPLE'] ===
'Y' ? [$value] : $value);
static getDefaultValue(array $userField, array $additionalParameters=[])
static getElements(int $iblockId, array $additionalFilter=[])
static getEnumList(array &$userField, array $additionalParameters=[])
static getList(array $userField)
static onSearchIndex(array $userField)
static getGroupActionData(array $userField, ?array $additionalParameters)
static includeModule($moduleName)
static getList(array $parameters=array())
static normalizeArrayValuesByInt(&$map, $sorted=true)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if($request->isPost() && $currentAction !==null &&check_bitrix_sessid()) $currentValues