Урок 8. Создание детальной страницы товара в Битрикс
Приветствую взявшихся изучить Битрикс! Порой CMS-Bitrix рассматривается пользователями и даже программистами, как черный ящик. Т.е. мы что-то пытаемся делать и смотрим, прокатило или нет. Есть такая беда. Но с каждым новым уроком, новым проектом "черный ящик" становится меньше приходит понимание и умение докопаться до сути проблемы. Но все равно "черный ящик" остается, и у каждого разработчика Битрикс он свой. Скажу по секрету даже у техподдержки Битрикса есть этот "черный ящик"... Хватит о наболевшем, двигаемся дальше.Детальная страница товара
В прошлом уроке мы доделали каталог и он стал выглядеть вполне прилично.
Теперь же нужно создать детальную страницу (карточку товара). Изобретать велосипед мы не будем и снова обратимся к заготовкам, которые мы взяли у CSS-фреймворка Foundation. Чтобы понять в чем суть обратитесь к одному из первых уроков из этого цикла. Напомню карточка товара в шаблоне выглядит так.
Чтобы не искать долго исходники шаблона их можно взять отсюда.
Ну а мы вспомним предыдущие уроки и по аналогии отредактируем шаблон детальной страницы bitrix:news.detail компонента Новости. Сам шаблон компонента у нас уже скопирован, поэтому достаточно открыть на редактирование файл.
Код:
<div class="medium-6 cell">
<img class="thumbnail" src="<?=$arResult['PREVIEW_PICTURE']['SRC']?>">
<div class="grid-x small-up-4">
</div>
</div>
<div class="medium-6 large-5 cell">
<h3><?=$arResult['NAME']?></h3>
<p><?=$arResult['DETAIL_TEXT']?></p>
<div class="grid-x">
<div class="small-3 cell">
<label for="middle-label" class="middle">Количество</label>
</div>
<div class="small-9 cell">
<input type="text" id="middle-label" placeholder="One fish two fish">
</div>
</div>
<a href="#" class="button large expanded">Купить</a>
</div>
</div>
Проверяем.
Не знаю, как у вас, но у меня возникло 2 проблемы:
- По клику по картинке я не перешел на детальную страницу товара а получил сообщение, что страница не найдена.
- Не отображается картинка. (это после того, как решил первую проблему)
Отладка в Битрикс и разбор проблем
Проблема перваяЕсли встать на карточку товара и посмотреть URL по которому нас переводит Битрикс, то можно увидеть, что путь совсем не тот, который мы ожидали увидеть.
Это проблема с ЧПУ. Если вы помните, то в инфобллоке было настроено ЧПУ следующим образом.
А по факту мы получаем совсем другую ссылку. Значит мы забыли настроить ЧПУ в параметрах компонента Новости. Исправим это. Главное правило тут одно:
ЧПУ в настройках инфоблока должно совпадать с настройками ЧПУ в компонентах Битрикс
- Каталог ЧПУ - здесь указывается путь до папки в которой расположен компонент или путь относительно которого мы хотим строить ссылки.
- Страница общего списка - это страница корня, у меня она совпадает с предыдущем параметром по этому оставлена пустой.
- Страница раздела - задана в виде символьного кода раздела
- Страница детального просмотра - задана составным полем символьный код раздела + символьный код элемента инфоблока.
После настройки ЧПУ детальная страница у нас стала замечательно открываться.
Проблема вторая
Не выводится изображение. Если вы помните, то все данные вывод в шаблоне хранятся в массиве arResult. А за вывод изображения товара у нас отвечает строка:
Код:
Код:
У меня сейчас эта секция уже есть, но изначально её не было. Информации о изображении не было в массиве arResult вобще. А где заполняется массив? Правильно в компоненте. Можно конечно идти в сам файл компонента bitrix:news.detail он находится в ядре /ut11-bitrix.ru/bitrix/components/bitrix/news.detail/component.php и там искать причину. Но я уже догадался, что просто в параметрах компонента Новости не включен вывод изображений.
И вот после включение вывода поля картинки для анонса в параметрах детальная страница товара выводится с изображением. Все проблемы решены.
Навигационная цепочка в Битрикс
И сразу, чтобы потом не возвращаться добавлю один важный штрих - выведу навигационную цепочку. Или хлебные крошки ещё её называют. Для вывода воспользуемся компонентом bitrix:breadcrumb, который нужно разместить в файле /startshop.ru/catalog/index.php. Можно просто скопировать приведенный ниже код, а можно вывести через визуальный редактор страницы. Никаких особенных настроек не требуется.
Или вставить этот код перед кодом вызова компонента bitrix:news.
Код:
"bitrix:breadcrumb",
"",
Array(
"PATH" => "",
"SITE_ID" => "s1",
"START_FROM" => "0"
)
);?>
Шаблон этого урока можно скачать отсюда.
От автора:
Ну а на этом все. В следующем уроке мы сделаем слайдер. Ну а как без него это сейчас модно, хотя многие интернет магазины уже приходят к выводу, что слайдер занимает полезную площадь страницы выводя по сути не интересную покупателю информацию. Но мы сделаем слайдер наших лучших товаров, чтобы он наоборот привлек внимание. До скорых встреч!
Комментарии
Можно узнать, как установить стикер "Новинка" (картинка) на товар в детальном и не только шаблоне? А именно как прописать в самом шаблоне и в стилях.
Вывод Новинки можно настроить через настройку компонента (если это прописано в вашем шаблоне). Например в типовом шаблоне я показал, как настроить. В кастомных шаблонах возможно примерно так же. Если вы сами хотите программно вывести, то в шаблоне компонента /tampalate_name/components/bitrix/catalog.element/templates/.default/template.php нужно обратиться к свойству NEWPRODUCT, например так: if ($arResult['PROPERTIES']['NEWPRODUCT']['VALUE'] == 'да') { echo 'Новинка'; } И вывести информацию о новинке, текстом или картинкой.