Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member
We've already set up Drupal to geocode addresses. Now we're going to provide a place where each member of our fictional family lives. First, we need to add location fields to the content type that stores that information. We could add it to the Person content type, in which case each member has their own address. But we know that some family members live together, so keeping in mind a concept we learned in the Planning your Data Structure video, we're going to create a new content type called Household. We're making the assumption that each person has only one household, but that each household can contain many people in what's called a one-to-many structure. We'll put this altogether later using relationships.
Again, we could do it in other ways. All have their advantages and disadvantages. We could introduce flexibility, but also complexity, by allowing people to have more than one household, for instance. Like many other data management decisions, it's a tradeoff. I'm sure you can see how these tradeoffs can have strong social and political ramifications. So the way you plan your data at the beginning, means a lot. Since we're going to be adding locations to nodes, we have to turn on a module that permits that. To do so, go to Administer > Site building and Modules. Scroll down to the Location group, once there, turn on the Node Locations module and scroll down further and save your configuration. Now we're going to create our Household content type. To do so, go to Administer > Content management and Content types. Then click on Add content type. We'll call this Household, the machine-readable name will also be household with a lowercase h, and the description will be 'A place where people and pets live.' Before we scroll down any further, I'm going to use automatic title generation in this content type. We only want to use this content type to enter some very basic information, i.e., the address of the household, and any notes that we have on the household. We don't really need a title, so we'll have that automatically generated and just get it out of the way, as we did for People.
So let's click on Automatic title generation, automatically generate the title and hide the field, and we could just put in, as you know, a straight-ahead pattern, such as This is a household. Of course, then we couldn't tell one household from another in the Administrator view. It's much better to use Replacement patterns. Fortunately, there are some location replacement patterns. Click on the Replacement patterns link and scroll down a little bit, and you'll see the Location tokens group. Let's see what some of those are. We see that there is a street, city, province and so forth followed by this N. That N represents which of the locations you're giving. The location module is unusual and that it lets you enter many addresses at once. We're only going to use one, so we're going to have the first one indicated in the title. As it says here, that would be the one numbered 0. If we had three, they would be numbered 0, 1 and 2.
But we'll just use this one, location- street, followed by location_city. I copy that by hitting Command+C on the Mac or Ctrl+C on the PC and scroll back up, and paste in location-city_0. Good, so we have our title in place now. Let's scroll down a little further and see what other options we have available to us. As usual, we have our Submission form settings. Instead of saying Body, I'm going to say Notes about this household, and I don't think we need any submission guidelines. Scroll down further and we see the usual Workflow settings. I don't think we need it promoted to the front page, and Comment settings. I don't think we need comments on a household. But there is one other area here, and this is where all of the magic happens with the location, this Locative information.
The first part lets you say how many locations you're going to allow, and it's a little unusual because it says we're allowing None, but they can add three at a time. I think that's an error in the defaults. In our case, we're going to say you can add one at a time, you can choose to add none, but we're going to only add one. Next, for Collection settings, again, the defaults were a little strange. They are allowing you to enter the street, but not the city. Well, I think, we want to allow the city, the state, and the postal code. Scrolling down further, we see the RSS Settings and Display Settings. We're actually not going to touch those RSS Settings, which are somewhat complex. In the Display Settings, we won't be making any other changes. However, there is one final change I do want to make, scrolling back up to this Collection settings, the Collapsible and Collapsed. Unfortunately, if you leave these checked, people very often miss the Location settings in their nodes, so I'm going to make sure they're always front in center and visible.
I believe we're all ready. I'll scroll to the bottom and say Save content type. Good! Now we're ready to add our nodes, but you'll notice something strange when I start to do so. We go to Create content and create a household. We have note title, which is good. Remember that's automatic. We have notes about this household up here, and then way at the bottom we have our Location. It would be nice, if we can move this location to up above the body. Unfortunately, with this module, it's not as easy as it could and perhaps should be.
But watch what happens when we save this. The Latitude and Longitude were automatically given. That's that Google Maps Geocoding that we mentioned earlier in the series. There is one thing to remember, if your addresses don't get a geocode properly. Because the geocoder is getting information form a remote server, it only works if you're online and connected to the Internet. Also, the geocoding will only do as much as it can. The Google Maps API, for example, will figure out a ZIP code if you don't provide one, and will geocode the middle of a city, if you don't give an address.
The next that we'll do is we're going to connect this person to this address. To do so, we'll go back to our content type by going to Administer > Content management and Content types and manage fields of the Household content type. We'll add a new field, we'll call it residence, and the field will be residents, obviously with a lowercase r. The field type will be a Node reference and it will be a Select list as checkboxes. You'll see why in just a moment. Scroll down and save.
We've created this household and we want to connect it to people. Therefore we'll add a list of people and you could check exactly who lives there. Of course, if we have a larger list of names, you could do it with an auto-complete text field or other ways. But for now, with our small number of people, I think that works best. Scroll down a little bit. We don't need a Help text. For Number of values, we'll make it Unlimited, because, of course, any number of people could live at that location. Of course, the type that can be referenced is Person. Scroll down further and save the field settings. Now let's go back to that household that we just created. To do so, go to Administer > Content management and Content and there we see it at the top.
We'll edit it, scroll down, we see the address, then we see all of the people who could live there. I believe that we're going to put Eli, Dani and Sophie in that household. Scroll to the bottom, and Save. There, we've now created a household and found a way to put people into that household. I want to mention one other module that sometimes creates confusion. To see it, go to Administer > Site building and Modules. Then once again, scroll down until you get into the CCK group. It is also possible to add locations using a CCK field. For example, instead of making that location available in the Household group, we could have added another CCK field to the Person group and so forth. That's useful for some purposes, but if you do that, be careful not to add locations both in the node and in a CCK filed.
I've personally found that to be very confusing and most of the time I found it best to just leave the location CCK alone. But if you did want to use it, this is where you'd turn it on. For us though, we're just going to leave it off. So there we go. But before we leave the subject of location, I want to clarify something that causes some confusion. Drupal's core download includes a module called Locale, which confusingly is related to translations, not location. Furthermore, on each user's account page, there is a section called Locale Setting that has nothing to do with any kind of location. It has to do with time zones. So just remember, when you're dealing with physical places, you want Location and not Locale. But back to location, the module is actually capable of more amazing tricks than we're able to go into here. For example, it can find the distance between two points or do a proximity search to find out where other points are in relation to a certain given point.
We're only going to go into one class of such tricks in the video mapping with the GMap module.
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.