File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/modules/iblock/lib/userfield/types/sectiontype.php
Back
<?php namespace Bitrix\Iblock\UserField\Types; use Bitrix\Main\Loader; use Bitrix\Main\Localization\Loc; use Bitrix\Main\Type; use Bitrix\Iblock; use CDBResult; use CUserTypeManager; use CIBlockSectionEnum; /** * Class SectionType * @package Bitrix\Iblock\UserField\Types */ class SectionType extends ElementType { public const USER_TYPE_ID = 'iblock_section', RENDER_COMPONENT = 'bitrix:iblock.field.section'; /** * @return array */ public static function getDescription(): array { return [ 'DESCRIPTION' => Loc::getMessage('USER_TYPE_IBSEC_DESCRIPTION'), 'BASE_TYPE' => CUserTypeManager::BASE_TYPE_INT, ]; } /** * @param array $userField * @return string */ public static function onSearchIndex(array $userField): string { $res = ''; if (!isset($userField['VALUE'])) { return $res; } if (is_array($userField['VALUE'])) { $val = $userField['VALUE']; } else { $val = [$userField['VALUE']]; } Type\Collection::normalizeArrayValuesByInt($val); if (!empty($val) && Loader::includeModule('iblock')) { $iterator = Iblock\SectionTable::getList([ 'select' => [ 'NAME', 'LEFT_MARGIN', ], 'filter' => [ '@ID' => $val, ], 'order' => [ 'LEFT_MARGIN' => 'ASC', ], ]); while ($row = $iterator->fetch()) { $res .= $row['NAME'] . "\r\n"; } unset($row, $iterator); } unset($val); return $res; } /** * @param array $userField * @return bool|CDBResult */ public static function getList(array $userField) { if(self::$iblockIncluded === null) { self::$iblockIncluded = Loader::includeModule('iblock'); } $section = false; if(self::$iblockIncluded && (int)$userField['SETTINGS']['IBLOCK_ID']) { $section = CIBlockSectionEnum::getTreeList( (int)$userField['SETTINGS']['IBLOCK_ID'], $userField['SETTINGS']['ACTIVE_FILTER'] ); } return $section; } /** * @param array &$userField * @param array $additionalParameters * @return void */ public static function getEnumList(array &$userField, array $additionalParameters = []): void { if (self::$iblockIncluded === null) { self::$iblockIncluded = Loader::includeModule('iblock'); } if (!self::$iblockIncluded) { return; } $userField['SETTINGS']['IBLOCK_ID'] ??= 0; $userField['SETTINGS']['SHOW_NO_VALUE'] ??= 'Y'; $userField['SETTINGS']['DISPLAY'] ??= ''; $userField['SETTINGS']['ACTIVE_FILTER'] ??= 'N'; $result = []; $showNoValue = ( $userField['MANDATORY'] !== 'Y' || $userField['SETTINGS']['SHOW_NO_VALUE'] !== 'N' || ( isset($additionalParameters['SHOW_NO_VALUE']) && $additionalParameters['SHOW_NO_VALUE'] === true ) ); if( $showNoValue && ( $userField['SETTINGS']['DISPLAY'] !== self::DISPLAY_CHECKBOX || $userField['MULTIPLE'] !== 'Y' ) ) { $result = [ null => static::getEmptyCaption($userField) ]; } $sectionEnumList = CIBlockSectionEnum::getTreeList( (int)$userField['SETTINGS']['IBLOCK_ID'], $userField['SETTINGS']['ACTIVE_FILTER'] ); if(!is_object($sectionEnumList)) { return; } while($section = $sectionEnumList->Fetch()) { $result[$section['ID']] = $section['NAME']; } $userField['USER_TYPE']['FIELDS'] = $result; } /** * @param array $userField * @param array $additionalParameters * @return array|string */ public static function getDefaultValue(array $userField, array $additionalParameters = []) { $value = ($userField['SETTINGS']['DEFAULT_VALUE'] ?? ''); return ($userField['MULTIPLE'] === 'Y' ? [$value] : $value); } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.26 |
proxy
|
phpinfo
|
Settings