Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member
We already covered the concept of relationships and gave one of their most basic applications. Now we're going to actually put them to use. We set up this fictional family, the De Nadas. Each member of the family is described in a node of the content type Person. I've gone ahead and set up another content type called Event. And I've added a few events for them to attend. I've also gone back and edited the content type Person so that they can specify which events they're attending. You can set up these events yourself or import the exercise files. Then we'll use Views to show who's planning to attend each event.
Very briefly, here's how I set it up. I created an Event content type. To see that, go to Administer > Content management and Content types. Here's that event content type. I added only one field, which is Date of event. That Date of event has an optional two-field, i.e., an event could be for one day or it could be for many days. I'm letting people name dates as far forward as 10 years. I'm only showing the Year, Month and Day. Obviously, you could also show the Hour and Minute that an event starts, but I'm keeping it simple. I click on Save field settings to get back to my previous screen.
The other content type that I affected was the Person content type. If I go there and click on Manage fields, we see that we now have an Event attending field. That's a node reference showing nodes of the event content type as checkboxes. You can see how that works, if you go to anyone of these people and edit them. Scroll down to that field of events attending and you see the checkboxes. These are three events that I already set up as nodes. Terrific! We've set up our site and now I can show how you to use Views to list out who is going to what events. To do so, scroll up to the top and click Administer, then Site building, and then Views.
Now we start to get into the mind- blowing part of relationships. We want to set up a list of events, showing under each everyone who is going to attend them. The opposite version would be a list of people showing which events they planned to attend. Very often when you first start setting up relationships, you'll get these two mixed up. Try not to get too upset about it, because remember, you can always go back and fix it. You're not creating or destroying any data, only changing the way that it's presented to the user. So we've gone to our Views page and we want to add a view that's called events. First, we'll type in events. That's the machine-readable version of the name, so all lowercase. The description will be Events, with a capital E.
It's View of type Node. So we'll leave it as it is and scroll to the bottom and click Next. As usual, we want to add some filters. Make sure that we're showing only nodes that have been published and that are of the content type Person. So I click Add, scroll down, go to my Node Group as usual. Scroll down until I see Node: Published, scroll down a little further to Node: Type. We've done this so many times, really, by now you should be an old hand at filtering out your nodes. If you want it, Yes to be Published and of the Type Person, and Update. As usual, I'm also going to add the Node: Title. I always do this when I create a view, so I can see exactly what I'm working with.
So I scroll back up, add the view, Group, Node, scroll down, well until I see Node: Title. Add it, scroll up a little bit. As usual, I'll link it to its node. We're ultimately going to set up a table. So I'll leave the Label here. Remember the labels show up as the sortable header on tables. Then I click on Update, good. So now we see the first ten people in our database. Another thing I like to do is to increase the number of Items to display, so I see everything. Again, the code for that is 0 in this Items to display box, and Update, there. Now we see all of the published people down here.
The last thing I'll do just to make this look a little bit better is change it to a Table Style. Update, make it sortable as usual, scroll down, add our sticky headers and Update. It already looks good. If you need any help setting up this table, see the video about improving view appearance with Grid, List and Table formatting. Now it's time to do the magic, i.e., to add the relationship to events. You remember how to do that from the other video we had about relationship in this series. Scroll up to the top, add a relationship, and since we want it to be between people and events, we need to add the part that relates to events.
In our case, that's this content field, Event attending. Click on Add and we'll leave it as it is. However, keep an eye on this Require this relationship. We'll come back to that and see how it's useful in just a moment. But for now, we'll just click on Update. Good! As before adding a relationship doesn't change the look of the view, but it gives us some additional capabilities. So we've added our relationship. Now, I'm actually going to show the events. To do so, go up to Fields and Add and we're going to show the title of the events, i.e., the flute recital, the Garage sale and so forth. So we scroll down to Node and add as usual, Node: Title.
However, this time we're going to use the relationship Event attending and I'm going to change the Label to Event attending. I'm also going to link it to its node. Click on Update, there. Now we actually have pretty much what we wanted, but there is still a problem. For one thing, it's listing a lot of people who aren't actually attending an event. The other thing is it's listing many people multiple times. It shows Eli only time because he's going to one event, but look at Dave. He's listed twice, because he's going to two and Dani is going to three. We're going to fix these one at a time. First, we'll get rid of all of these people who aren't going to any events. We do that with that checkbox that I skipped over a minute ago, Require this relationship.
To make the change, go up to the Relationship and click on it to edit it. Then scroll down and Require this relationship, and click Update. There, that got rid of everybody who is not attending an event. Since they don't have the relationship they just fall out. The next thing is to group this by event. We can do that by changing the Table Style options. We scroll up to the top. You remember this little gear lets us set the options. Scroll down a bit. Change the Grouping field to Event attending and click on Update. There, and now we actually have exactly what we wanted.
For each event, we can see what the event is and, in fact, who is attending it. However, we now have redundant information as well. We have the event listed up here and then we have the name with the event again. We don't really actually need to show the name of the event again, do we? So I'm going to remove that field, but there is a little trick here. If I go up here and simply remove that Event attending, that actually gets rid of the grouping field and we'll just go back to having a list of people again. What you have to do instead is click on it and then exclude it from display.
That means that it can still be grouped on, but it won't show up in those individual areas. You'll see what I mean when I go down and click Update. And there we are. As we scroll up, we see the event. We can click on it and go to it. We see all the people attending. That's exactly what we wanted. You could go even further by styling these event listings using CSS, as you learned in the video about altering a Views appearance using CSS. The last thing we want to do as always with our Views is scroll up to the top and click on Save. Otherwise, we could lose all of the work we just did.
There's one last thing that we want to do. We want to make this view available to people as a page. So we'll scroll up to the top of the view, add a page display, give it the path events. Scroll down and save that, and finally, give it a menu item, so that people can go to it quickly. We'll make it a Normal menu item labeled Events and put that in our Primary links at the top of screen, next to people, and click on Update. Finally, once again, we save. There, we see we have Events and we have People.
Let's just take a quick look at it to be sure it looks good, and yes it does. You now have all the knowledge you need to do just about any data manipulation trick that Views is capable of, straight-out-of-the-box. But Views has been so successful that it's inspired the creation of dozens of contributed Drupal models that build on its strength. For the most part, the rest of videos in the series discuss some of the contributed modules that are the most useful for data presentation. Like most Drupal modules, you can download them for free at Drupal.org.
Get unlimited access to all courses for just $25/month.Become a member
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
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.