Ramapriya
@Ramapriya

Как привязать bitrix:main.ui.filter к конкретному инфоблоку?

Всем привет.

Создал новый инфоблок для публикации документов.

Хотел узнать, как к нему можно привязать компонент bitrix:main.ui.filter? А то начал прописывать параметры типа (код примерный пока ещё, только начал работать с данным компонентом, поэтому мало что ещё понимаю)

$APPLICATION->IncludeComponent(
    'bitrix:main.ui.filter', '',
    [
        'FILTER_ID' => 'roster_list',
        'GRID_ID' => 'roster_list',
        'FILTER' => [
            'id' => 'DOCUMENT_TYPE',
            'name' => 'Тип документа',
            'type' => 'list',
            'items' => []
        ],
        'ENABLE_LIVE_SEARCH' => TRUE,
        'ENABLE_LABEL' => TRUE
    ]
);

а в результате получил вот что:

5ce3ae0774d05381995862.png

И где его разместить, чтобы он выводился над основной рабочей областью (как в CRM, задачах и т.п.)? А то когда на самой странице размещаю или в шаблоне, то он просто сливается со страницей.

А когда появляются элементы инфоблока, они просто съезжают в сторону

5ce3b21ede3a9687706303.png

Заранее спасибо.
  • Вопрос задан
  • 3100 просмотров
Пригласить эксперта
Ответы на вопрос 1
s_panteleev
@s_panteleev
25 yo, Yaroslavl
Для начала, 'FILTER' => [] должен быть массив массивов (у вас сейчас просто массив)

Посмотрите статью - описывал в ней примеры подключения

Связку с инфоблоком нужно будет кодом реализовывать.

Чтобы добавить фильтр над рабочей областью, попробуйте обернуть в шаблоне компонента CBitrixComponentTemplate::SetViewTarget
<?php
// например, в /local/components/company/report.list/templates/.default/template.php

$this->SetViewTarget('inside_pagetitle');

$APPLICATION->IncludeComponent('bitrix:main.ui.filter', '', [ 
    'FILTER_ID' => 'report_list', 
    'GRID_ID' => 'report_list', 
    'FILTER' => [ 
        ['id' => 'IS_SPEND', 'name' => 'Тип операции', 'type' => 'list', 'items' => ['' => 'Любой', 'P' => 'Поступление', 'M' => 'Списание'], 'params' => ['multiple' => 'Y']],
    ], 
    'ENABLE_LIVE_SEARCH' => true, 
    'ENABLE_LABEL' => true 
]);

$this->EndViewTarget();?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы