New Feature: Playlist Center! Pick a topic and let our playlists guide the way.

Start learning with our library of video tutorials taught by experts. Get started

Drupal 6: Online Presentation of Data
Illustration by

Extending views with arguments


From:

Drupal 6: Online Presentation of Data

with Tom Geller

Video: Extending views with arguments

Now we are going to show a method that makes Views even more dynamic by allowing the user to provide input to the View, usually at the end of the URL. The method uses something that called in Drupal speak, Arguments. An understanding of them opens your data display possibilities up enormously. The system of arguments is conceptually tricky and the possibilities through it are far too numerous to cover in depth here but here is a taste. If we go to http://localhost/node/3, we see whatever node three is. That last part, the three is the argument and the argument is being passed to Drupal through the URL after this little bit node.
Expand all | Collapse all
  1. 12m 56s
    1. Welcome
      1m 12s
    2. Reviewing requirements
      3m 35s
    3. Using the exercise files
      3m 11s
    4. Touring examples of data visualization
      4m 58s
  2. 27m 56s
    1. Planning data structure
      8m 26s
    2. Importing and manipulating data
      6m 40s
    3. Looking at Drupal's database
      6m 13s
    4. Deciding whether to store personal data as nodes or users
      6m 37s
  3. 1h 13m
    1. Understanding the Content Construction Kit (CCK)
      4m 57s
    2. Creating new content types with CCK
      7m 26s
    3. Hiding the Body field
      2m 46s
    4. Reflecting CCK field data in the Title field
      7m 28s
    5. Managing CCK field placement
      7m 34s
    6. Exploring CCK's other features
      8m 22s
    7. Using other CCK field types
      3m 25s
    8. Adding date information as a CCK field
      8m 43s
    9. Including images as CCK fields
      10m 23s
    10. Connecting content to existing nodes
      5m 58s
    11. Using taxonomies to categorize and group data
      5m 59s
  4. 53m 54s
    1. Understanding why views are useful
      6m 12s
    2. Using SimpleViews to create basic content views
      5m 49s
    3. Diving into the Views interface
      11m 16s
    4. Adding fields to a view
      7m 12s
    5. Understanding iconic controls in the Views interface
      7m 15s
    6. Surveying the Sort, Filter, and Field options in Views
      5m 40s
    7. Adding view displays as pages, blocks, and RSS feeds
      10m 30s
  5. 43m 34s
    1. Overriding default settings on view displays
      8m 56s
    2. Attaching more information to views
      10m 57s
    3. Improving view appearances with grid, list, and table formatting
      9m 20s
    4. Surveying other basic display settings in Views
      11m 3s
    5. Altering a view's appearance through CSS
      3m 18s
  6. 55m 8s
    1. Importing, exporting, and cloning views
      6m 9s
    2. Controlling access to views
      7m 19s
    3. Learning from built-in views
      5m 52s
    4. Creating views that aren't based on nodes
      10m 6s
    5. Extending views with arguments
      10m 17s
    6. Extending views with relationships
      7m 2s
    7. Going further with relationships
      8m 23s
  7. 46m 40s
    1. Understanding geographic data
      4m 26s
    2. Setting up the Location module
      16m 20s
    3. Entering geographic data with the Location module
      10m 10s
    4. Displaying basic maps with the GMap module
      6m 43s
    5. Integrating the GMap module with Views
      9m 1s
  8. 54m 21s
    1. Exporting data in tabular form
      11m 25s
    2. Planning with the calendar modules
      11m 31s
    3. Using the Charts module and Google Charts
      7m 11s
    4. Graphing data with Open Flash Chart
      4m 50s
    5. Making important data pop out with tag clouds
      7m 46s
    6. Putting it all together in an attractive package
      11m 38s
  9. 36s
    1. Conclusion
      36s

Watch this entire course now—plus get access to every course in the library. Each course includes high-quality videos taught by expert instructors.

Become a member
please wait ...
Drupal 6: Online Presentation of Data
6h 8m Intermediate Jul 01, 2009

Viewers: in countries Watching now:

Drupal's built-in data presentation tools offer several ways for web designers to clearly and attractively package their data. In Drupal 6: Online Presentation of Data, Tom Geller explains how Drupal handles data so users can set up intelligent structures and implement them with Drupal's Content Construction Kit. Tom also shows how a data-driven web site can improve its interactivity by using geographic data to connect real-world addresses to maps. Exercise files accompany the course.

Topics include:
  • Importing and manipulating data in Drupal
  • Presenting date-formatted information in calendars
  • Understanding Drupal's data-query interface, "Views"
  • Improving view appearances with grid, list, and table formatting
  • Importing, exporting, and cloning views
  • Extending views with arguments and relationships
Subjects:
Web CMS Web Development
Software:
Drupal
Author:
Tom Geller

Extending views with arguments

Now we are going to show a method that makes Views even more dynamic by allowing the user to provide input to the View, usually at the end of the URL. The method uses something that called in Drupal speak, Arguments. An understanding of them opens your data display possibilities up enormously. The system of arguments is conceptually tricky and the possibilities through it are far too numerous to cover in depth here but here is a taste. If we go to http://localhost/node/3, we see whatever node three is. That last part, the three is the argument and the argument is being passed to Drupal through the URL after this little bit node.

Here is another example. If you go to Administer > User management and Users, you see list of all of the users on your system. Click on any one of them and it goes to the page for that user, which is localhost or whatever your domain name is, /user/6. Once again, the 6 is the argument that's being sent to Drupal. If we change that 6 to 5, we would see user number 5 and so forth. In computer science terms, a value that changes is called a variable and the value that feed into it is called an argument. You can write out how arguments work by using a placeholder. In our case, we are going to use the Percent sign as our placeholder. So as you saw, the Nodes are viewed by using /node/placeholder and Edit would be /node/ placeholder/edit. Same is true for Users.

So you may ask, what use is such a system of arguments to you and how can you implement them? Let's step back a second and take a look at how we are showing off the people on our site right now. Let's pretend that we didn't want to show everybody in the site, but instead only wanted to show those people whose name you already knew. Well, you could do that by forcing people to type in that name as an argument. I'll show you how by setting up a view. Go to Administer > Site building and Views and we are going to add one.

We'll call this View argument_directory and the view description will be Argument directory. As before, it's a view of the Node type. Scroll to the bottom and click Next. First, we'll just add a Field, say the node title, just to give us something to work with. Scroll down here, filter by Node and find Node: Title, add it and do our usual business where we take away the Label and Link the field to its node. Update and we see everything as we usually do. We are going to filter that out so we only see those nodes that have been published and that are of the Person content type.

Once again, we select the Node group, roll down, find Published and Type and add those. We want only those that have been published and that are of the Person type and Update. There, we now have our list. I'm going to add one more piece of information just to demonstrate how sensitive information might be shown otherwise. I'll make it the date of birth. Scroll down and you'll remember since it's a CCK field, it will be under Content and there it is. Content: Date of birth, add it, scroll down a little bit and Update, there.

Now we have the names and the Date of birth. Now comes the tricky part, where we'll only show Eli de Nada's date of birth if somebody enters the name Eli de Nada. We go back up to Arguments and add one, scroll down, the argument is going to be based on the Node: Title, so we'll scroll down and find that and add it. Now once we click Add, we'll be confronted with a lot of options. Don't worry. We are going to go through a few of the more important ones. We won't touch all of them but when you are done, you will understand well enough how this works.

Click on Add. There are options. Let's scroll down and see what happens if you just leave it in its default form. Click Update and then go back down and take a look at our preview. Well, nothing actually happened. But let's try typing in Tom de Nada. This live preview area has a space where you can enter arguments to test things out and that's exactly what we are doing. We'll preview it and we see only Tom de Nada. So it is actually working, except we are also seeing everything when no argument is entered.

Fortunately, there is a way to fix that. We go back up here and click on the Argument again. One of the settings is Action to take if argument is not present. In our case, we'll Display empty text. Scroll down, click Update and let's see how that works. Aha! Now we see nothing unless we enter someone's name. Let's try Dani de Nada and Preview. Very good! It's actually working exactly as we want. Now how does this actually come to play? Well, if we go back up here and Add a Page and let's add a path to that, say hidden, and Update. Now we are still using all of our default values including that default Argument. Let's save it and go to that page, hidden.

Now we see nothing, right? But if we add a slash to the end of it and then add say Tom de Nada, now we see the record. This is exactly what we originally wanted to happen, right? I'll click on Edit to go back to that view. There is still a security hole in our Argument however and I'll show you by clicking on the Argument and scrolling down to look at the options. It's in this Wildcard. Right now if we type in someone's name, as you saw, we see just that person's name and if we type in nothing, we see nothing. However, if we type in that Wildcard value, which is All, we see everybody.

Let's go back up and edit that Argument and remove the Wildcard. Scroll down some more, click Update and let's try it. As you can see, the All argument now doesn't do anything. I'd like to show you one other use of arguments and this is to override the way that Drupal works when it shows you a node. Right now if we go to localhost/node/3, we actually see a node, just as we would expect. However, for the way that we are now building our website, we don't want people to be able to directly enter in those node numbers. So we are going to create a new View, which overrides that. This is an important point. Views will actually override what Drupal does naturally in its core installation, which gives you a lot of control and let's you add a lot of security and other features.

We will go to Administer > Site building and Views and once again, we are going to add one. This one will be called override_nodes and again the description, Override nodes. It's going to be a View of Nodes again. Click on Next. In this case, we want to give the user unhelpful information. In other words, when they try to go to that Node, instead of getting the node that they want, they will get something saying "sorry you can do that." To do that, we'll add a field and you may remember that there is a global field where you can enter pretty much any text you want. We'll add that, get rid of the Label and add the text "I'm sorry, you can't do that." Scroll down and click Update.

Right now we are seeing that text one time for every node that exists in the site. However, we'll change that with Arguments. Go up to Arguments and add one. Now the part that we are trying to override is the Node id. You remember it's localhost/node/ and then some number. That number is the way Drupal internally identifies the different nodes and it's called the node id. Scroll down, go into the node group and select Node: Nid and Add and there is our Argument.

Once again, we want it to Display empty text if nothing is given as an argument and we want there to be no Wildcards. Delete that, scroll down a bit more and Update. So what happens now if our Argument is Node 3? We get that message, 'I'm sorry, you can't do that.' What if we have no Argument? We get empty text. What if we say All? We get nothing. Once again, we get empty text. So how can we use this? You remember that people are going to see those nodes on specific pages.

The way we can actually put these arguments to use is by adding a page and setting its Path to be node followed by that argument. Its placeholder once again in Drupal is the Percent sign and that's explained right here underneath the field. In fact, you can have multiple arguments and separate them out by %1, %2, in many places in the interface. We'll leave it like this and click Update. Now let's save it and try to go to that page, node/3. We go to localhost/node/3 and we get exactly what we expected. 'I'm sorry, you can't do that.' Because we are the administrator, we are also allowed to edit the node, but you get the idea, we can also add another Argument for node/argument/edit and go on from there. I think you can now start to see the power of using arguments, right? In fact, for the purposes of our videos, we don't really want to restrict the access quite so much. So we are going to get rid of those two Views that we just created.

Of course, we go to Administer > Site building and Views and then it's very easy to simply find that hidden and delete it and the override_nodes and delete it. As I said earlier, Arguments are a big subject and these are just a few things you could do with them. If you want to go further, certainly poke around the built-in views after being sure you know how to revert them to normal. The video "Learning from Built-in Views" shows you how. There are several other resources, which will also help you learn about arguments. One of them is Learning from Built-in Views, as I mentioned, and the other one is the site drupaleasy, which has several articles on the subject.

Further more as always, you can find a lot more information on the drupal.org website.

Find answers to the most frequently asked questions about Drupal 6: Online Presentation of Data.


Expand all | Collapse all
please wait ...

Q: The exercise files for the course appear to be missing.

A: Full exercise files for this course were not provided because of the unusually large amount of images, modules, and other files that would have to be installed in specific places, in addition to the database. We hope to have a solution for future Drupal courses that installs all items in their correct places.

Q: During the course the author makes reference to being able to add data via the exercise files; however, the data is not in the exercise files.
A: During the recording of the title, some of the exercise files were removed, since the frequent updates to Drupal itself and to the modules that are needed to run the exercise files cause them to break.

The data referenced in the video consists mostly of names and addresses, which will need to be typed by hand.
 
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.
Upgrade now


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ.

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

join now Upgrade now

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed Drupal 6: Online Presentation of Data.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferencesfrom the dropdown menu.

Continue to classic layout Stay on new layout
Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Are you sure you want to delete this note?

No

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.