Personalized Content Feeds in Drupal
One of our members wanted to allow users to create customized information feeds in Drupal.
In this tutorial, we’ll show you how to do that. We’ll demonstrate how to allow users to view only certain types of content.
This could be useful for news sites, but also for many other types of site where users want personalized content.
In this example, we’re going to create a page of movies. Users will be able to choose to see movies only in genres that they choose.
Step #1. Taxonomy
Our first step will be to create a vocabulary and terms that will link the users to content.
- Go to Structure > Taxonomy.
- Create a Vocabulary and add terms. In this example, our vocabulary is “Movie Genres” and our terms are specific genres:
Step #2. Add the Taxonomy to Content and User Profiles
Now let’s add the new taxonomy to our content:
- Go to Structure > Content types.
- Add the Movie Genre vocabulary to a content type. In this example, we have a content type called Movies:
Next, we’re going to add the taxonomy to our user profiles also:
- Go to Configuration > People > Account settings.
- Click the Manage Fields tab.
- Add the Movie Genre vocabulary:
Step #3. Create the view
Now we’re going to create the timeline with Views:
- Go to Structure > Views > Add new view.
- Create a view that shows Users:
- Click Add next to Contextual Filters.
- Add a contextual filter for “User: Uid”.
This will allow us to pull information based on the user who is looking at the view.
- Click Add next to Relationships.
- Add the relationship “Movies You Like” from the User Profile.
- Add the relationship “Taxonomy term: Content using Movie Genre”.
This will allow us to pull in the fields from the content type, even if this view was initially designed to show users.
Now we can add the fields we want from the movies content type. I’ll add the Title and the Body:
- Save the view.
Step #4. Test the view
The fastest way to test this set up is to edit your own user profile:
- Click your name in the top-right corner of the admin bar:
- Click the Edit tab.
- Add Movie Genres to your profile:
Now you can visit the view that you created in Step 3 and test whether its working.