Using Views in Drupal 6

Drupal 6 has been out for a while now and modules are getting ported to the new version. For those of us that are relatively new to Drupal it has been a long slow wait – but the benefit is that we have a bit of extra motivation to learn and do “stuff” for ourselves.

If the search for cool modules and functions on the Drupal site one thing you begin to see is the importance of modules that might not necessarily supply a prebuilt function, like a calendar for example, but provide the ability to define new types, views, or displays of data from either your Drupal site or a different source. The modules I’ve been exploring are:

  • Feed Aggregator
  • CCK
  • Views
  • Panels

Feed Aggreagtor is supplied in D6 and is pretty self explanatory. The remaining 3 are very powerful. I checked out the really cool myplay.com site Sony-BMG put together. If you haven’t seen it you should check it out. They made extensive use of Views and Panels to build this site. Views is in beta now for D6 and since I also wanted a calendar, I decided to start experimenting with Views. Ok – to explain that comment: the best Calendar function for D6 uses Views for the rendering of the event data. Because Views are still in beta I had to do some tweaking.

There are a bunch of overviews and tutorials for the original Views modules on drupal.org – so start there if you want an overview. What you’ll find however is that once you get past the “what is a view?” type stuff they aren’t much help. In short a View is a list of “stuff”. The list is defined in the Views administration area through a GUI interface. The list is generated by defining a query against your database – you add attributes to extract; arguments to select what to return; sorting criteria, etc. You can then select how to display the list: a node, a block, as a feed, etc. Pretty cool I think. How do you create one? That’s what I’ll cover.

Drupal View Config PanelTo get started I’m working with the very latest Drupal code (6.2 at time of writing). I have a pretty basic config – but its completely to do date as of 3-May-2008. I’ve installed Views (6.x-2.0-beta2) and I’ve also installed the Advanced Help module (advanced_help-6.x-1.0-beta2).

To start with Views make sure you have the very latest by checking your adminstration area. Once you’ve done that then go into the page for administrating the Views module. You’ll see a few tabs for Adding and Importing views. Click on the Add choice and you should get a screen like this:

This is the main spot where you create your view. Go ahead and bang in some values and make sure you pick off the “node” choice. What we’re going to do is create a simple “node” type view that will look like a page. We can create a link in the Navigation menu for this afterwards.

Once you fill in some values then hit add and you’ll get this next screen. Creating a View query - part one.It looks pretty complicated, but just remember all you’re doing is defining a query.

Start with defining some fields to retrieve – just click on the plus sign. You’ll get an Ajax refresh that listed off the different groupings of fields. You should scroll around in here and see what’s available. Pick a few easy ones from the Node group like Author and Post date. As you pick fields you’ll see that Views is building the query for you and showing you example output:

Checking a View Query Result

As you move through the various items in the menu you can easily build some really cool output. The relationships block is used to define keys between fields. Arguments can be used to filter data based on a parameter, for example s returning records based on a date limiter.

After you get done playing around with the data you need to select a display view for your query results. There are several options, but for this example I’ve selected the page display mode. What this will be is create a view of the output in a “page” – gee imagine that. The output will display in the main content area.

The display view can either inherit from the base display or you can pick a new display mode and over ride the base settings with new fields or different sorting options or whatever. Just add a new display and then pick a setting – be sure to save things with the button down the page:

When doing this make sure to watch the button carefully as they are AJAX and change quickly. If you click something and you think nothing has happened, be sure to scroll down and look at the output.

Once you get done screwing around with your view you can then add it to a menu – for the page type just use the page settings. I added mine to my main menu. Experiment with the other display types.

That’s pretty much it. If you start to experiment with Views you can really learn to do some very interesting things. This is especially true for very active group/team sites where a lot of people are contributing content. One interesting things I’ve done with Views is assemble sorted “update” pages that show the latest contributions sorted by dates, or by users. This is a great way to keep up to date on what your teamates are doing.

12 Comments

  1. Conor Higgins

    excellent article. Thanks a million Ive been trying to get my head around views.

    Conor

    Reply
  2. saurabhambry

    Dude … In the post u have written that of late u’ve been xploring to get around panels module too for drpal 6 . But I dont think that this module exists yet for drupal 6

    Reply
  3. Beren (Post author)

    http://drupal.org/project/panels

    Sure there is…they are not yet full stable releases, but the development releases have been available for quite some time – I think they first came out in September 2008.

    I think at the time I wrote this Panels for d6 was still not very stable and thus I never actually show how to use it in the article. Today panels are working pretty well on d6.

    beren

    Reply
  4. letsnurture

    Hi folk,

    I’m not getting rid over this view 2. I have few node types says “a”,”b”,”c”… etc…Each of these uses own theme. Now I want to list out news corresponding to each “node types”. So I think, i could achieve this by use of View.But I’m not sure whether I should use view or not?

    And how can I theme o/p of view?

    Thanks in advance

    -Web-Farmer

    Reply
  5. MilanG

    Views is not Drupal’s core module – you have to download it and install it manually!

    Reply
  6. Pingback: 2010 at the Lake « Tarn Aeluin

  7. Body Workout

    Can you explain more on how to use Arguments? I’m very confused…

    Reply
    1. Beren (Post author)

      Arguments are values that will narrow the query return. In my example “created year” is an argument that will make the query only return records for a given year. Hope that helps.

      Reply
      1. Body Workout

        Thanks, seems like I’m gonna have to explore this issue a little deeper before I start using arguments.

        Reply
  8. umesh

    How to upgrade views version to new version?

    Reply
    1. Beren (Post author)

      What version? The very latest?

      Reply
  9. Pingback: Using Views in Drupal 6 | Tarn Aeluin

Leave a Reply