Работа- досуг

Заголовок и навигация карусели Opencart

2022-09-07

Стандартные модули для главной страницы типа карусели или слайдшоу выглядят безлико и одинаково. Эти модули построены на базе библиотеки owl-carousel, ранее, я уже писал об обновлении этой карусели до более новой версии, в которая предусматривает более широкие настройки отображения и поведения.

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

Стандартная карусель

Смотрится это не очень интересно, нужно хотя-бы добавить заголовок к этому блоку и видоизменить кнопки навигации.
Чтобы добавить заголовок, нужно в файлe "catalog/controller/extension/module/carousel.php" после строки
$data['banners'][] = array(
добавить строку
'name' => $result['name'],
В итоге мы получим массив с полями name(заголовок), title(название изображения), link(ссылка), image(изображение).

Теперь нужно сделать вывод поля name в качестве заголовка, заголовка в теге h3. Достаточно взять name первого элемента массива, для этого в файле catalog/view/theme/default/template/extension/module/carousel.tpl нужно добавить строки в самое начало:

<?php 
  reset($banners);
  echo "<h3>".$banners[key($banners)]['name']."</h3>";
?>
Также можно немного украсить заголовки такого типа, сделать его более крупным и голубым, в цвет стандартной темы. В файле catalog\view\theme\default\stylesheet\stylesheet.css у тега h3 заменить стиль на
h3 {
	font-size: x-large;
	font-weight: bold;
	color: #23a1d1;
}
Теперь заголовок выглядит так как нужно.

Улучшенная карусель с заголовком и кнопками

Осталось сделать навигацию такой как на картинке выше.
Для этого нужно изменить параметры карусели в файле, который редактировали ранее - catalog/view/theme/default/template/extension/module/carousel.tpl, здесь нужно убрать точки и установить навигацию в тег "div", для этого заменяем параметры на эти:

items: 6,
loop: true,
autoplayTimeout: 3000,
smartSpeed: 1000,
nav: true,
dots: false,
navText: ['', ''],
navElement: 'div'
И я добавил класс для контейнера карусели "owl-widenav", заменить строку
Теперь нужно добавить стили к добавленным элементам, в конец файла catalog\view\javascript\jquery\owl-carousel\owl.theme.css
.owl-widenav .owl-nav {
  margin-top: -40px;
  text-align: justify;
  padding-bottom: 40px; }
.owl-widenav .owl-nav div.owl-prev {
  position: relative;
  left: 0px;
  }
.owl-widenav .owl-nav div.owl-next {
  position: absolute;
  right: 0;
}
.owl-widenav .owl-nav [class*='owl-']:hover{
  background: #23a1d1;
}
Теперь все выглядит как и планировалось, заголовок, стрелочки по краям карусели, подсветка навигации при наведении. Выглядит все так как и планировалось изначально, хотя возможностей для дальнейших украшательств еще достаточно.

Скачать готовые файлы к статье можно ЗДЕСЬ