Подскажите пожалуйста, как правильно в Битриксе изменить шаблон комплексного компонента «Каталог товаров»?
В документации: «Папка шаблона комплексного компонента может содержать следующие подпапки и файлы… Шаблоны простых компонентов, которые входят в состав комплексного. Эти шаблоны располагаются в папках вида /пространство_имен/название_простого_компонента/ относительно папки шаблона комплексного компонента.»
Проблема в том, что от путей и количества уровней вложенности папок Битрикса у меня просто сносит уже крышу. Никак не могу сообразить, куда положить эти самые шаблоны простых компонентов.
Шаблон комплексного компонента лежит в папке bitrix/templates/шаблон_сайта/components/bitrix/catalog/catalog (он туда поместился при копировании через меню в разделе «Разработка», следовательно, этот путь правильный). В этой папке есть подпапка bitrix, в которую скопировались также папки простых шаблонов. Но, к примеру, в папке catalog.section.list нет файла template.php, а если я его создаю — он не применяется!
P.S. пробую пока на демосайте.
Вот вызов компонента:
<?$APPLICATION->IncludeComponent("bitrix:catalog", "catalog", Array(
"IBLOCK_TYPE" => "catalog", // Тип инфо-блока
"IBLOCK_ID" => "14", // Инфо-блок
"BASKET_URL" => "/personal/cart/", // URL, ведущий на страницу с корзиной покупателя
"ACTION_VARIABLE" => "action", // Название переменной, в которой передается действие
"PRODUCT_ID_VARIABLE" => "id", // Название переменной, в которой передается код товара для покупки
"SECTION_ID_VARIABLE" => "SECTION_ID", // Название переменной, в которой передается код группы
"SEF_MODE" => "Y", // Включить поддержку ЧПУ
"SEF_FOLDER" => "/catalog/", // Каталог ЧПУ (относительно корня сайта)
"AJAX_MODE" => "N", // Включить режим AJAX
"AJAX_OPTION_SHADOW" => "Y", // Включить затенение
"AJAX_OPTION_JUMP" => "N", // Включить прокрутку к началу компонента
"AJAX_OPTION_STYLE" => "Y", // Включить подгрузку стилей
"AJAX_OPTION_HISTORY" => "N", // Включить эмуляцию навигации браузера
"CACHE_TYPE" => "A", // Тип кеширования
"CACHE_TIME" => "3600", // Время кеширования (сек.)
"CACHE_FILTER" => "N", // Кэшировать при установленном фильтре
"DISPLAY_PANEL" => "Y", // Добавлять в админ. панель кнопки для данного компонента
"SET_TITLE" => "Y", // Устанавливать заголовок страницы
"SET_STATUS_404" => "Y", // Устанавливать статус 404, если не найдены элемент или раздел
"USE_FILTER" => "Y", // Показывать фильтр
"FILTER_NAME" => "FILTER", // Фильтр
"FILTER_FIELD_CODE" => array( // Поля
0 => "NAME",
1 => "",
),
"FILTER_PROPERTY_CODE" => array( // Свойства
0 => "",
1 => "",
2 => "",
3 => "",
),
"FILTER_PRICE_CODE" => "", // Тип цены
"USE_REVIEW" => "Y", // Разрешить отзывы
"MESSAGES_PER_PAGE" => "0", // Количество сообщений на одной странице
"USE_CAPTCHA" => "N", // Использовать CAPTCHA
"PATH_TO_SMILE" => "/bitrix/images/forum/smile/", // Путь относительно корня сайта к папке со смайлами
"FORUM_ID" => "2", // ID форума для отзывов
"URL_TEMPLATES_READ" => "/communication/forum/forum#FORUM_ID#/topic#TOPIC_ID#/", // Страница чтения темы (пусто - получить из настроек форума)
"SHOW_LINK_TO_FORUM" => "N", // Показать ссылку на форум
"POST_FIRST_MESSAGE" => "N", // Начинать тему текстом элемента
"USE_COMPARE" => "Y", // Использовать компонент сравнения
"COMPARE_NAME" => "CATALOG_COMPARE_LIST", // Уникальное имя для списка сравнения
"COMPARE_FIELD_CODE" => array( // Поля
0 => "",
1 => "",
),
"COMPARE_PROPERTY_CODE" => array( // Свойства
0 => "",
1 => "",
2 => "",
3 => "",
4 => "",
),
"DISPLAY_ELEMENT_SELECT_BOX" => "N", // Выводить список элементов инфоблока
"ELEMENT_SORT_FIELD_BOX" => "sort", // По какому полю сортируем список элементов
"ELEMENT_SORT_ORDER_BOX" => "asc", // Порядок сортировки списка элементов
"COMPARE_ELEMENT_SORT_FIELD" => "name", // По какому полю сортируем товары в разделе
"COMPARE_ELEMENT_SORT_ORDER" => "asc", // Порядок сортировки товаров в разделе
"PRICE_CODE" => array( // Тип цены
0 => "RETAIL",
),
"USE_PRICE_COUNT" => "N", // Использовать вывод цен с диапазонами
"SHOW_PRICE_COUNT" => "0", // Выводить цены для количества
"PRICE_VAT_INCLUDE" => "Y", // Включать НДС в цену
"PRICE_VAT_SHOW_VALUE" => "N", // Отображать значение НДС
"SHOW_TOP_ELEMENTS" => "Y", // Выводить топ элементов
"TOP_ELEMENT_COUNT" => "3", // Количество выводимых элементов
"TOP_LINE_ELEMENT_COUNT" => "1", // Количество элементов, выводимых в одной строке таблицы
"TOP_ELEMENT_SORT_FIELD" => "id", // По какому полю сортируем товары в разделе
"TOP_ELEMENT_SORT_ORDER" => "desc", // Порядок сортировки товаров в разделе
"TOP_PROPERTY_CODE" => array( // Свойства
0 => "",
1 => "",
),
"PAGE_ELEMENT_COUNT" => "5", // Количество элементов на странице
"LINE_ELEMENT_COUNT" => "1", // Количество элементов, выводимых в одной строке таблицы
"ELEMENT_SORT_FIELD" => "sort", // По какому полю сортируем товары в разделе
"ELEMENT_SORT_ORDER" => "asc", // Порядок сортировки товаров в разделе
"LIST_PROPERTY_CODE" => array( // Свойства
0 => "",
1 => "",
),
"INCLUDE_SUBSECTIONS" => "Y", // Показывать элементы подразделов раздела
"LIST_META_KEYWORDS" => "-", // Установить ключевые слова страницы из свойства раздела
"LIST_META_DEscriptION" => "-", // Установить описание страницы из свойства раздела
"LIST_BROWSER_TITLE" => "UF_BROWSER_TITLE", // Установить заголовок окна браузера из свойства раздела
"DETAIL_PROPERTY_CODE" => array( // Свойства
0 => "width",
1 => "height",
2 => "thickness",
3 => "",
4 => "",
5 => "",
),
"DETAIL_META_KEYWORDS" => "-", // Установить ключевые слова страницы из свойства
"DETAIL_META_DEscriptION" => "-", // Установить описание страницы из свойства
"DETAIL_BROWSER_TITLE" => "BROWSER_TITLE", // Установить заголовок окна браузера из свойства
"LINK_IBLOCK_TYPE" => "catalog", // Тип инфо-блока, элементы которого связаны с текущим элементом
"LINK_IBLOCK_ID" => "7", // ID инфо-блока, элементы которого связаны с текущим элементом
"LINK_PROPERTY_SID" => "catalog", // Свойство, в котором хранится связь
"LINK_ELEMENTS_URL" => "/catalog/reviews/detail.php?ID=#ELEMENT_ID#", // URL на страницу где будет показан список связанных элементов
"USE_ALSO_BUY" => "N", // Показывать блок "С этим товаром покупают"
"ALSO_BUY_ELEMENT_COUNT" => "0",
"ALSO_BUY_MIN_BUYES" => "0",
"DISPLAY_TOP_PAGER" => "N", // Выводить над списком
"DISPLAY_BOTTOM_PAGER" => "Y", // Выводить под списком
"PAGER_TITLE" => "Двери", // Название категорий
"PAGER_SHOW_ALWAYS" => "N", // Выводить всегда
"PAGER_TEMPLATE" => "orange", // Название шаблона
"PAGER_DESC_NUMBERING" => "N", // Использовать обратную навигацию
"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000", // Время кеширования страниц для обратной навигации
"PAGER_SHOW_ALL" => "N", // Показывать ссылку "Все"
"AJAX_OPTION_ADDITIONAL" => "", // Дополнительный идентификатор
"SEF_URL_TEMPLATES" => array(
"sections" => "",
"section" => "#SECTION_ID#/",
"element" => "#SECTION_ID#/#ELEMENT_CODE#/",
"compare" => "compare.php?action=#ACTION_CODE#",
),
"VARIABLE_ALIASES" => array(
"compare" => array(
"ACTION_CODE" => "action",
),
)
),
false
);?>
777 стоит, на домашней машинке гоняю. Да и все остальное-то без проблем скопировалось. Но даже если я создаю этот файл — он не применяется… Может быть, дело в вызове компонента (вызов скопировала с демо-компонента с книгами, т.к. у меня будет похожая структура связей). ID инфоблока прописала свой, путь свой. Список разделов инфоблока отображается, но в стандартном виде. А мне надо туда картинки добавить и во флоаты запихнуть…
В общем, я разобралась. Если копировать все шаблоны составляющих по отдельности — то они и складываются в отдельные папки вида bitrix/templates/prinzip_catalog/components/bitrix/catalog.element/templates/имя_шаблона bitrix/templates/prinzip_catalog/components/bitrix/catalog.section.list/templates/имя_шаблона
В составе комплексного компонента (bitrix/templates/prinzip_catalog/components/bitrix/catalog) они почему-то не копируются
P.S. Может, кому-нибудь интересно будет. Сравнила папочки демосайтов HostCMS Малый бизнес (включает интернет-магазин, новости — в общем, практически тот же функционал, только нет модуля пользователей) и Bitrix Управление сайтом Малый бизнес.
HostCMS — ~2600 папок и файлов, ~ 18 Мб
Bitrix — больше 14000 папок и файлов, ~92 Мб
(значения приблизительные, т.к. оба сайта не свежеустановленные, в обоих я уже повозилась с шаблонами).
И почему я, интересно, не люблю Битрикс?..
Храню великолепную цитату:
«Качество кода, сроки разработки, юзабилити, нагрузка на сервер и скорость работы»
Если эти параметры важны, то от битрикса придётся отказаться. Можно даже заказчикам вопрос задавать: вам вот это вот это и вот это — важно или пофигу? Помогает=)
От себя добавлю:
—расширяемость
—бесплатность
—важность сайта в поисковых системах (да-да, на некоторых хостингах страницы генерятся по 15 секунд, это влияет. на директ влияет кардинально)
быстрая загрузка посетителями (вроде одно и тоже с предыдущим, но назвать стоит)
—возможность менять что угодно и как угодно, возможность сказать программисту — сделайте именно так,
—поиск по каталогу товаров (да, в битриксе это ограничено, вопрос скользкий, но когда я спросил у техподдержки, мол, что вот такой стандартный поиск по каталогу не работает?, они ответили — это реализовать невозможно.)
Если эти возможности важны, то битрикс не для вас.