Как создать тип пользовательского свойства раздела «Привязка к элементам ИБ определенного раздела»?

Ссылка скопирована
1 ответ

Столкнулся с проблемой. Просидел уже кучу времени.
Пытаюсь создать пользовательский тип свойства ДЛЯ РАЗДЕЛА "Привязка к элементам ИБ определенного раздела". То есть нужно, чтобы в выборке элементов ИБ были не все элементы, а только те, которые относятся к определенному разделу.
Наследую класс привязки к элементам, но вот при создании свойства почему-то даже выбор инфоблока никак не выводится, хотя я только решил пока класс скопировать и не переопределять ничего, кроме описательных моментов.
Подскажите, пожалуйста, почему не выводятся "Дополнительные настройки поля (зависят от типа)", когда я пытаюсь создать свойство своего унаследованного типа?
Буду благодарен любой помощи.

КОД

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
Артём Dev Ответ

Для создания пользовательского свойства типа "Привязка к элементам ИБ определенного раздела" вам потребуется выполнить следующие шаги:

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);

$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);

После выполнения этих шагов у вас будет создано пользовательское свойство типа "Привязка к элементам ИБ определенного раздела", которое позволит вам привязывать элементы инфоблока только к определенному разделу.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно