Как создать тип пользовательского свойства раздела «Привязка к элементам ИБ определенного раздела»?
Столкнулся с проблемой. Просидел уже кучу времени.
Пытаюсь создать пользовательский тип свойства ДЛЯ РАЗДЕЛА "Привязка к элементам ИБ определенного раздела". То есть нужно, чтобы в выборке элементов ИБ были не все элементы, а только те, которые относятся к определенному разделу.
Наследую класс привязки к элементам, но вот при создании свойства почему-то даже выбор инфоблока никак не выводится, хотя я только решил пока класс скопировать и не переопределять ничего, кроме описательных моментов.
Подскажите, пожалуйста, почему не выводятся "Дополнительные настройки поля (зависят от типа)", когда я пытаюсь создать свойство своего унаследованного типа?
Буду благодарен любой помощи.
КОД
AddEventHandler("main", "OnUserTypeBuildList", array("UserTypeElementComplect", "GetUserTypeDescription")); class UserTypeElementComplect extends CUserTypeEnum { public static function GetUserTypeDescription() { return array( "USER_TYPE_ID" => "element_complect", "CLASS_NAME" => "UserTypeElementComplect", "DESCRIPTION" => "Привязка к элементам ИБ определенного раздела", "BASE_TYPE" => "iblock_element", ); } } |
AddEventHandler("main", "OnUserTypeBuildList", array("UserTypeElementComplect", "GetUserTypeDescription")); class UserTypeElementComplect extends CUserTypeEnum { public static function GetUserTypeDescription() { return array( "USER_TYPE_ID" => "element_complect", "CLASS_NAME" => "UserTypeElementComplect", "DESCRIPTION" => "Привязка к элементам ИБ определенного раздела", "BASE_TYPE" => "iblock_element", ); } }
Дополнительно:
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для создания пользовательского свойства типа "Привязка к элементам ИБ определенного раздела" вам потребуется выполнить следующие шаги:
1. Откройте раздел администрирования вашего сайта и перейдите в раздел "Настройки инфоблоков".
2. Выберите нужный инфоблок, для которого вы хотите создать пользовательское свойство.
3. Перейдите на вкладку "Пользовательские поля" и нажмите на кнопку "Добавить пользовательское поле".
4. В выпадающем списке выберите тип поля "Привязка к элементам инфоблока" и введите название свойства.
5. Далее в настройках поля укажите ID инфоблока, к элементам которого вы хотите привязаться, а также выберите нужный раздел этого инфоблока.
6. Сохраните изменения.
Пример кода для создания пользовательского свойства типа "Привязка к элементам ИБ определенного раздела" для инфоблока с ID 1 и разделом с ID 2:
$obUserTypeEntity = new CUserTypeEntity(); $aUserFields = array( 'ENTITY_ID' => 'IBLOCK_1_SECTION_2', 'FIELD_NAME' => 'UF_LINK_TO_ELEMENTS', 'USER_TYPE_ID' => 'iblock_element', 'XML_ID' => '', 'SORT' => 100, 'MULTIPLE' => 'Y', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'I', 'SHOW_IN_LIST' => '', 'EDIT_IN_LIST' => '', 'IS_SEARCHABLE' => '', 'SETTINGS' => array( 'IBLOCK_ID' => 1, 'DEFAULT_VALUE' => '', 'DISPLAY' => 'A', 'LIST_HEIGHT' => 5, ), 'EDIT_FORM_LABEL' => array( 'ru' => 'Привязка к элементам ИБ определенного раздела', ), 'LIST_COLUMN_LABEL' => array( 'ru' => 'Привязка к элементам ИБ определенного раздела', ), 'LIST_FILTER_LABEL' => array( 'ru' => 'Привязка к элементам ИБ определенного раздела', ), 'ERROR_MESSAGE' => array( 'ru' => '', ), 'HELP_MESSAGE' => array( 'ru' => '', ), ); $intID = $obUserTypeEntity->Add($aUserFields);
После выполнения этих шагов у вас будет создано пользовательское свойство типа "Привязка к элементам ИБ определенного раздела", которое позволит вам привязывать элементы инфоблока только к определенному разделу.