Здравствуйте!
Имеется интернет-магазин на платформе битрикс. Нужно реализовать блок товаров-новинок на странице элемента каталога (товара).
Сделал через catalog.section. Вставил этот компонент внутрь шаблона "catalog.element".
Все выводит, но до первого обновления страницы. После обновления у этого как будто стили слетают или вроде того, остаются только название и кнопки.
Возможно какой то конфликт? как правильно это реализовать? спасибо.
Размещать компоненты в template.php нужно очень осторожно.
Во-первых, этот вариант без дополнительных манипуляций будет работать только при отключенном кешировании сайта или, как вы и заметили, только при первой загрузке страницы после сброса кеша. Во-вторых, это может привести к некорректному кешированию компонентов и к росту файлов кеша.
В случае такой вложенности стили и скрипты подключаются только для catalog.element, а для внутреннего catalog.section стили style.css и скрипты script.js подключатся только на первый раз, когда кеш для страницы еще не готов, но при повторном запросе страниц подгружаться уже не будут.
Один из способов - это вынести содержимое файлов style.css, script.js из шаблона для catalog.section и разместить их в соответствующих файлах catalog.element, но этот способ не очень красивый и логичный.
Правильнее сделать так:
подключите catalog.section либо в файле element.php, если используете комплексный компонент catalog
либо в файле component_epilog.php шаблона catalog.element.
либо в файле result_modifier.php шаблона catalog.element сделайте через API выборку новинок, а в template.php без использования дополнительных компонентов выведите эти данные