39 'DESCRIPTION' => Loc::getMessage(
'USER_TYPE_IBEL_DESCRIPTION'),
40 'BASE_TYPE' => CUserTypeManager::BASE_TYPE_INT,
53 static::getEnumList($userField, $additionalParameters);
55 return parent::renderField($userField, $additionalParameters);
70 $additionalParameters ?? [],
71 [
'mode' => self::MODE_VIEW]
75 return parent::renderView($userField, $additionalParameters);
90 $additionalParameters ?? [],
91 [
'mode' => self::MODE_EDIT]
95 return parent::renderEdit($userField, $additionalParameters);
107 $enum = call_user_func([$userField[
'USER_TYPE'][
'CLASS_NAME'],
'getlist'], $userField);
113 while($item = $enum->GetNext())
115 $items[$item[
'ID']] = $item;
117 $additionalParameters[
'items'] =
$items;
119 return parent::renderEditForm($userField, $additionalParameters);
131 $enum = call_user_func([$userField[
'USER_TYPE'][
'CLASS_NAME'],
'getlist'], $userField);
137 while($item = $enum->GetNext())
139 $items[$item[
'ID']] = $item[
'VALUE'];
141 $additionalParameters[
'items'] =
$items;
142 return parent::renderFilter($userField, $additionalParameters);
154 $emptyCaption =
' ';
156 $value = (int)($additionalParameters[
'VALUE'] ?? 0);
157 $index = static::USER_TYPE_ID . $value;
159 if (!isset(self::$itemCache[$index]))
161 $enum = call_user_func([$userField[
'USER_TYPE'][
'CLASS_NAME'],
'getlist'], $userField);
164 $additionalParameters[
'VALUE'] = $emptyCaption;
166 return parent::renderAdminListView($userField, $additionalParameters);
168 while ($item = $enum->Fetch())
170 self::$itemCache[static::USER_TYPE_ID . $item[
'ID']] = $item[
'NAME'];
173 if (!isset(self::$itemCache[$index]))
175 self::$itemCache[$index] = $emptyCaption;
178 $additionalParameters[
'VALUE'] = self::$itemCache[$index];
180 return parent::renderAdminListView($userField, $additionalParameters);
192 $enum = call_user_func([$userField[
'USER_TYPE'][
'CLASS_NAME'],
'getlist'], $userField);
196 while($item = $enum->GetNext())
198 $values[$item[
'ID']] = $item[
'VALUE'];
201 $additionalParameters[
'enumItems'] = $values;
203 return parent::renderAdminListEdit($userField, $additionalParameters);
238 $height = (int)($userField[
'SETTINGS'][
'LIST_HEIGHT'] ?? 1);
239 $display = ($userField[
'SETTINGS'][
'DISPLAY'] ??
'');
241 $availableDisplayVariants = [
242 static::DISPLAY_DIALOG,
244 static::DISPLAY_LIST,
245 static::DISPLAY_CHECKBOX,
248 if (!in_array($display, $availableDisplayVariants,
true))
250 $display = static::DISPLAY_UI;
253 $iblockId = (int)($userField[
'SETTINGS'][
'IBLOCK_ID'] ?? 0);
260 $elementId = (int)($userField[
'SETTINGS'][
'DEFAULT_VALUE'] ?? 0);
267 $activeFilter = (($userField[
'SETTINGS'][
'ACTIVE_FILTER'] ??
'') ===
'Y' ?
'Y' :
'N');
270 'DISPLAY' => $display,
271 'LIST_HEIGHT' => (max($height, 1)),
273 'DEFAULT_VALUE' => $elementId,
274 'ACTIVE_FILTER' => $activeFilter,
287 if (!isset($userField[
'VALUE']))
292 if (is_array($userField[
'VALUE']))
294 $val = $userField[
'VALUE'];
298 $val = [$userField[
'VALUE']];
315 $res .= $row[
'NAME'] .
"\r\n";
333 $enum = call_user_func([$userField[
'USER_TYPE'][
'CLASS_NAME'],
'getlist'], $userField);
337 while($item = $enum->GetNext())
339 $items[$item[
'ID']] = $item[
'VALUE'];
343 'id' => $additionalParameters[
'ID'],
344 'name' => $additionalParameters[
'NAME'],
347 'params' => [
'multiple' =>
'Y'],
360 $iblockId = (int)($userField[
'SETTINGS'][
'IBLOCK_ID'] ?? 0);
361 $activeFilter = (string)($userField[
'SETTINGS'][
'ACTIVE_FILTER'] ??
'N');
363 if (self::$iblockIncluded ===
null)
367 if (
$iblockId <= 0 || !self::$iblockIncluded)
374 $iblockRights = self::getIblockRightsMode(
$iblockId, $cacheTtl);
375 if ($iblockRights ===
null)
386 if ($activeFilter ===
'Y')
397 'filter' => \CIBlockElement::getPublicElementsOrmFilter(
$filter),
407 while($element = $elements->fetch())
415 $result = new \CIBlockElementEnum();
422 $filter[
'CHECK_PERMISSIONS'] =
'Y';
423 $filter[
'MIN_PERMISSION'] = \CIBlockRights::PUBLIC_READ;
424 if ($activeFilter ===
'Y')
429 $result = \CIBlockElement::GetList(
461 if (self::$iblockIncluded ===
null)
466 $userField[
'MANDATORY'] ??=
'N';
467 $userField[
'SETTINGS'][
'IBLOCK_ID'] ??= 0;
468 $userField[
'SETTINGS'][
'SHOW_NO_VALUE'] ??=
'Y';
469 $userField[
'SETTINGS'][
'DISPLAY'] ??=
'';
470 $userField[
'SETTINGS'][
'ACTIVE_FILTER'] ??=
'N';
473 !self::$iblockIncluded
474 || (
int)$userField[
'SETTINGS'][
'IBLOCK_ID'] <= 0
482 $userField[
'MANDATORY'] !==
'Y'
483 || $userField[
'SETTINGS'][
'SHOW_NO_VALUE'] !==
'N'
485 isset($additionalParameters[
'SHOW_NO_VALUE'])
486 && $additionalParameters[
'SHOW_NO_VALUE'] === true
493 $userField[
'SETTINGS'][
'DISPLAY'] !==
'CHECKBOX'
494 || $userField[
'MULTIPLE'] !==
'Y'
499 null => static::getEmptyCaption($userField)
505 if (isset($additionalParameters[
'SKIP_CHECK_PERMISSIONS']) && $additionalParameters[
'SKIP_CHECK_PERMISSIONS'])
507 $filter[
'CHECK_PERMISSIONS'] =
'N';
510 $checkValue = ($additionalParameters[
'mode'] ??
'') === self::MODE_VIEW;
513 $currentValues = static::getFieldValue($userField, $additionalParameters);
535 $userField[
'USER_TYPE'][
'FIELDS'] =
$result;
540 $filter[
'ACTIVE'] = $userField[
'SETTINGS'][
'ACTIVE_FILTER'] ===
'Y';
543 (
int)$userField[
'SETTINGS'][
'IBLOCK_ID'],
547 if (!is_array($elements))
561 $userField[
'USER_TYPE'][
'FIELDS'] =
$result;
572 $message = ($userField[
'SETTINGS'][
'CAPTION_NO_VALUE'] ??
'');
575 ? HtmlFilter::encode($userField[
'SETTINGS'][
'CAPTION_NO_VALUE'])
576 : Loc::getMessage(
'USER_TYPE_IBEL_NO_VALUE')
589 return static::renderAdminListEdit($userField, $additionalParameters);
601 $value = ($userField[
'SETTINGS'][
'DEFAULT_VALUE'] ??
'');
602 return ($userField[
'MULTIPLE'] ===
'Y' ? [$value] : $value);
614 return ($userField[
'MULTIPLE'] !==
'Y' && is_array($value)) ? array_shift($value) : $value;
626 $valueFromForm = ($additionalParameters[
'bVarsFromForm'] ??
false);
627 if (!$valueFromForm && !isset($additionalParameters[
'VALUE']))
630 isset($userField[
'ENTITY_VALUE_ID'], $userField[
'ENUM'])
631 && $userField[
'ENTITY_VALUE_ID'] <= 0
634 $value = ($userField[
'MULTIPLE'] ===
'Y' ? [] :
null);
635 foreach($userField[
'ENUM'] as $enum)
637 if($enum[
'DEF'] ===
'Y')
639 if($userField[
'MULTIPLE'] ===
'Y')
641 $value[] = $enum[
'ID'];
645 $value = $enum[
'ID'];
653 $value = $userField[
'VALUE'] ??
null;
656 elseif(isset($additionalParameters[
'VALUE']))
658 $value = $additionalParameters[
'VALUE'];
662 $value = Context::getCurrent()->getRequest()->get($userField[
'FIELD_NAME']);
670 if (self::$iblockIncluded ===
null)
674 if (
$iblockId <= 0 || !self::$iblockIncluded)
681 $iblockRights = self::getIblockRightsMode(
$iblockId, $cacheTtl);
682 if ($iblockRights ===
null)
687 $additionalFilter[
'ACTIVE'] ??=
false;
692 if ($additionalFilter[
'ACTIVE'])
696 if (isset($additionalFilter[
'ID']))
698 $filter[
'@ID'] = $additionalFilter[
'ID'];
707 'filter' => \CIBlockElement::getPublicElementsOrmFilter(
$filter),
717 while($element = $elements->fetch())
719 $result[$element[
'ID']] = $element[
'NAME'];
721 unset($element, $elements);
732 'CHECK_PERMISSIONS' => $additionalFilter[
'CHECK_PERMISSIONS'] ??
'Y',
733 'MIN_PERMISSION' => \CIBlockRights::PUBLIC_READ,
735 if ($additionalFilter[
'ACTIVE'])
739 if (isset($additionalFilter[
'ID']))
741 $filter[
'ID'] = $additionalFilter[
'ID'];
761 $result[$element[
'ID']] = $element[
'NAME'];
769 private static function getIblockRightsMode(
int $iblockId,
int $cacheTtl): ?string
784 return (
$iblock[
'RIGHTS_MODE'] ??
null);
static renderAdminListEdit(array $userField, ?array $additionalParameters)
static renderEdit(array $userField, ?array $additionalParameters=[])
static getDefaultValue(array $userField, array $additionalParameters=[])
static getFilterData(array $userField, array $additionalParameters)
static getElements(int $iblockId, array $additionalFilter=[])
static renderEditForm(array $userField, ?array $additionalParameters)
static getEnumList(array &$userField, array $additionalParameters=[])
static getList(array $userField)
static renderField(array $userField, ?array $additionalParameters=[])
static onBeforeSave($userField, $value)
static renderView(array $userField, ?array $additionalParameters=[])
static canUseDialogAndUiViews()
static onSearchIndex(array $userField)
static bool $iblockIncluded
static getFieldValue(array $userField, array $additionalParameters=[])
static checkFields(array $userField, $value)
static renderFilter(array $userField, ?array $additionalParameters)
static getEmptyCaption(array $userField)
static prepareSettings(array $userField)
static renderAdminListView(array $userField, ?array $additionalParameters)
static getAdminListEditHtmlMulty(array $userField, ?array $additionalParameters)
static getConnection($name="")
static includeModule($moduleName)
static getRow(array $parameters)
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
if(! $catalogEdit->isSuccess()) $iblock
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)