logo
Submitted by Mikhail Ismajlov on Wed, 09/11/2019 - 10:47

Very often, the Views template does not suit us, so we can override the templates for Views. Unfortunately, there is no UI to search for the desired template in Views, but we can use patterns to redefine templates.

More about patterns in this article:

6.6. Working with templates in Drupal 8. What are the templates in the core of Drupal 8.

In particular, we are interested in this:

Below are the possible template names to override.

View Name - foobar (machine name)
Display format - unformatted (unformatted list, add possible options)
Display Style - fields
Display Name — page

views-view--foobar--page.html.twig
views-view--page.html.twig
views-view--foobar.html.twig
views-view.html.twig

views-view-unformatted--foobar--page.html.twig
views-view-unformatted--page.html.twig
views-view-unformatted--foobar.html.twig
views-view-unformatted.html.twig

views-view-fields--foobar--page.html.twig
views-view-fields--page.html.twig
views-view-fields--foobar.html.twig
views-view-fields.html.twig

The Owl Carousel 1.x plugin does not have the ability to display thumbnails to the gallery. Therefore, we will use Owl Carousel version 2.x, there is support for thumbnails. If you do not want to understand redefinition of templates, writing CSS, Javascript code, then you can simply install the Views Slideshow module:

https://www.drupal.org/project/views_slideshow

Or the Flex Slider module:

https://www.drupal.org/project/flexslider

You can quickly configure slideshows on them without knowledge of CSS, jQuery.

We will practice redefining Views templates and connecting jQuery libraries.

To get started, download and include the Owl Carousel 2.x library:

https://github.com/OwlCarousel2/OwlCarousel2

Perhaps you have found Owl Carousel 1.x:

https://github.com/OwlFonk/OwlCarousel

It will not suit us, it does not support thumbnails, for it you need to write additional code.

Copy the owl-carousel folder (where the owl.carousel.min.js file is located) to the folder with our theme, now let's include the css and js carousel files. We add the following lines to the theme .libraries.yml file:

global-styling:
  version: 1.x
  css:
    theme:
      owl-carousel/owl.carousel.css: {}
      owl-carousel/owl.theme.css: {}    
      owl-carousel/owl.transitions.css: {}
      css/style.css: {}
      css/print.css: { media: print }
  js:
    js/custom.js: {}
    owl-carousel/owl.carousel.min.js: {}
  dependencies:
    - core/jquery

I did not move js files in the / js, css folder to the / css folder, but you can do it, then remember to correct the paths in the css files to the pictures that I think you put in the images folder.

To apply the changes you need to clean the cache.

Now let's create a gallery content type and add an image field to it.

Create a new view, where we display one field image from a new content type.