Submitted by admin on Wed, 09/11/2019 - 15:51

Image removed.

Sometimes the name you give something is really important. 

In Drupal 6, a key feature in Views was called "arguments". This term made perfect sense to developers, but caused plenty of raised eyebrows amongst news users.

Both the name and location of this feature has changed in Drupal 7. Arguments are now called "Contextual filters".

Here's an introduction to arguments and contextual filters. We'll show you why they are so useful, whatever they may be called.

Where are Arguments or Contextual Filters?

In the Drupal 6 views screen, Arguments were right in the center of the page:

Image removed.

With Drupal 7, the Arguments area was moved and re-named. There's now a whole, hidden area of the Views screen that is simply called "Advanced":

Image removed.

Under that Advanced tab is the "Contextual Filters" area. That is where Arguments have moved to.

Image removed.

Examples of Contextual Filters: Default Views

Several of the default Views contain contextual filters and would make good starting points to learn more.

Go to Structure > Views and enable both the Archive and Glossary views to see them in action.

The Archive view dynamically organizes content into the month it was published. A normal filter would only allow us to show content from certain months. A contextual filter changes which months it shows, based on the page you're viewing.

Image removed.

Here's the contextual filter that makes that possible:

Image removed.

The Glossary view is similar to the Archive, but it dynamically sorts content by the first letter of the title.

An ordinary filter could show all content that starts with A or B, but a contextual filter is flexible enough to show any of those, depending on the context

Image removed.

Here's the contextual filter for the Glossary:

Image removed.

Examples of Contextual Filters: Fields

One of the most common examples of a contextual filter is a calendar created with Views:

Image removed.

In order to functional correctly, the calendar needs a Contextual Filter which pulls from a Date field.

A simple filter would not suffice here because it's not flexible enough. The user can change between June, July, August and other months. They could even change to view weeks, days or years. Only a contextual filter can adapt automatically to those different displays.

Image removed.

 

Examples of Contextual Filters: Users

A second example of contextual filters involves creating a personalized newsfeed for users. In the View below, the users only see movies that are in genres they have selected:

Image removed.

This is possible because we've added a contextual filter for the user. The view is

An ordinary filter would allow us to choose "Action", "Comedy" or "Romantic" movies, which are set up as taxonomy terms.

However, a contextual filter is flexible enough so that we can dynamically change those taxonomy terms based on the user.

Image removed.
 



 

Solutions Img