Submitted by admin on Mon, 09/16/2019 - 13:25

Image removed.

One of our students is learning Drupal and trying to master Views. They wanted to know how to style different areas of each Views. We wrote this tutorial as an introduction for them to templates and theming for Views.

As our example, we're going to use the "Front page" view, which is on the defaults available when you first intall Views.

Image removed.

Here's how the view appears:

Image removed.

Let's see how we can modify that view.

  • Go to the editing screen for the Front page view.
  • Look in the Advanced area on the right-hand side.
  • Click Theme: Information as shown below.
Image removed.

You'll now see a pop-up with all sort of useful information about Views theming.

Views is suggesting files that you can use to override the default display.

The files in bold are the ones that are actually being used. In this example, Views is using views-view.tpl.php and views-view-unformatted.tpl.php. The other files names are simply suggestions.

Image removed.

Where are those files located? In /sites/all/modules/views/theme

Image removed.

If you want to modify these files, copy them into your theme folder, as below:

Image removed.

Let's test to see if our changes take effect.

  • Open up views-view.tpl.php for editing.
  • Make a change to the file. Here's one simple (although childish!) change:
Image removed.
  • Save views-view.tpl.php
  • Go to Configuration > Development > Performance > Clear all caches to make sure that your change is visible.
  • Check your frontpage view to see if your change has taken.
Image removed.

Because we edited views-view.tpl.php, the above change applied to all of our views, not just the frontpage view.

If we wanted to get more specific, we should change the name of views-view.tpl.php to views-view--frontpage.tpl.php. This name was suggested earlier in this tutorial in the Views pop-up when we clicked Theme: Information.

We can also change the text we added to the view.

Image removed.

We can also make more substantive changes. For example, we can add a div to various elements of the page:

Image removed.

We can then add some CSS to our theme's CSS file:

Image removed.

And that CSS will take effect:

Image removed.

One limitation to this process is that the fields are not included in the template files. This is because the fields are stored in the database for flexibility.

If you want to style your fields, rather than simply the whole view or elements of the view, you need a different approach.

  • Go to the editing screen for your view.
  • Make sure that your Format it set to Fields.
Image removed.
  • Under the Fields area, click on any field name.
  • In the Style Settings area, you'll be able to add HTML elements and CSS classes directly to each field.
Image removed.
Solutions Img