Исследование и доработка шаблона bitrix.FAQ

Буквально несколько дней назад мне впервые пришлось столкнуться с компонентом bitrix:support.faq. Стандартный его шаблон произвел на меня сильное впечатление. Сразу скажу, что оно было отрицательное. Еще одним поводом для написания статьи стала просьба одного из подписчиков опубликовать инструкцию по настройке этого компонента (Вы тоже можете присылать свои вопросы на контактный e-mail). Итак, начнем…

Теория

Комплексный компонент bitrix:support.faq выводит FAQ категории и вопросы из инфоблока.

Состоит он из компонентов:
support.faq.section.list — список секций инфоблока с вопросами
support.faq.element.list — список вопросов (элементов инфоблока) какой-либо секции
support.faq.element.detail — отдельный вопрос из FAQ

Вопрос — название элемента, ответ — анонс+детальное описание. Картинки анонса и деталки не выводятся.

Необходимым условием работы является наличие в инфоблоке хотя бы одной категории, элементы из корневого уровня не отображаются.

Настроек в компоненте немного, обязательными являются:
типы инфоблоков — выбираем один из созданных в системе типов
список инфоблоков — выбираем один из инфоблоков вышеуказанного типа

Список секций позволяет ограничить область действия компонента отдельной категорией, галочка «Показывать вложенные секции» включает отображение вложенных категорий и вопросов из них.

ЧПУ настраивается аналогично новостной ленте.

Специфические особенности

Компонент support.faq.element.detail входит в комплексный, однако не используется в нем. Более того, результат, который приходит в шаблон списка элементов, не содержит ссылку на детальный просмотр. Следовательно, если появится необходимость сделать ответы на отдельной странице, комплексный компонент в исходном виде не позволит сделать этого.

Стандартный шаблон вывода ответов содержит код, который помещает содержимое тега в таблицу и заменяет специальные символы на их html-аналоги (например, чтобы выводить php-код). Такое преобразование производится для детального описания. В моем шаблоне компонента, который Вы можете скачать внизу страницы, эта возможность используется и для анонса.

Шаблон компонента

Шаблоны рассматриваемых компонентов — образец безолаберности разработчиков:) Классы таблиц не прописаны в style.css шаблона, но есть в стилях шаблона демо-сайта, лишние стили в детальном ответе, элементы списка без открывающего тега и т.д. Ничего страшного, но впечатление качественности продукта портится.

Ниже Вы можете скачать исправленный шаблон комплексного компонента (включает в себя все остальные), в котором устранены эти недостатки. Также он подойдет любителям валидного кода.

Шаблон комплексного компонента bitrix:support.faq
32.4 KiB
711 Downloads
Детали...
Если вам понравилась статья, подписывайтесь на обновления блога по rss или присоединяйтесь в twitter

Поделиться ссылкой с друзьями:

Метки: ,

Категории: Bitrix

Комментарии (11)

  1. Владимир Куликов:

    Если не трудно, распишите, как этот компонент задействовать. Файл .description.php у этого компонента отсутствует, значит в списке компонентов он не появиться. В демо версии сайта имеем страницу с стандартным компонентом, как его заменить на ваш?

  2. Это не компонент, а шаблон компонента. Копируем содержимое архива в /bitrix/templates/имя_шаблона/components/bitrix/ и в настройках комплексного компонента выбираем новый шаблон

  3. Андрей Гонин:

    Возможно ли сделать этот модуль как на этом сайте? http://limo5stars.ru/faq/part1/
    очень нужен такой вариант, а опыта сделать самому не хватает.

  4. Андрей Гонин, да, возможно — нужно немного подправить шаблон вывода

  5. Андрей Гонин:

    если Вам не сложно подскажите как, буду очень благодарен!

  6. rihh:

    «Компонент support.faq.element.detail входит в комплексный, однако не используется в нем.»

    При поиске по вопросам/ответам используется.

  7. Не знал, спасибо!

  8. Елена:

    На сайте с кодировкой UTF-8 слово «Наверх» отображается в виде шести вопросиков в зеленых ромбиках.

  9. Нужно файлы шаблона сконвертировать в UTF-8

  10. Елена:

    Извините, вопрос решен.

  11. у меня этот компонент почему-то не захотел обрабатывать в чпу #section_code#, т.е. шаблон пути так и подставлялся «/сайт/#section_code#». Плюс чтобы попасть на детальную страницу через поиск надо скрипт element.php в шаблоне переименовать в detail.php как прописано в компоненте. называется сделали чтобы было, а как клиенты с этим должны жить не важно.