These instructions assume your site is at localhost, so adjust paths as necessary
Set up content types, categories, and fields- Find the URL of feeds you want to work with. Other parsers are available but just stick with RSS/ATOM for now
- Go to http://localhost/admin/content/types/add to create your content type
- The content type is the highest level of organization for your data -- it can have fields, categories, and features such as commenting.
- Give it a name. Mine is called "event" because the things I'm tracking are broadly just "events", but this will depend on your feeds and purpose.
- Expand the FeedAPI section
- Check "Is a feed content type"
- Expand and enable "Parser Common Syndication"
- Save
- Go to http://localhost/admin/content/taxonomy/add/vocabulary and create a vocabulary for organizing your data. In our example, we're going to create a category for each feed that will be imported.
- Give it a name
- Check the name of the content type you created in the previous step as well as "Feed"
- Save
- Click on Add Terms and add a term for each feed you'll be importing. For example, I have terms such as "Twitter" and "Last.fm"
- We're going to add a field for the original link from the feed, so we can manipulate this information separately from the rest of the contents in Drupal. There are a ton of fields we could add here later depending on what's appropriate for your data sources, such as an image, coordinates, author, rating, etc. but the source link is pretty universally useful.
- Go to http://localhost/admin/content/types/list and click Manage Fields next to your new content type
- In the Add new field section at the bottom, type "Original link" as the label and "orig_link" (or something similar) as the field name
- Set the Type to Link
- Save
- On the following configuration screen, under Title, select Static Title and enter "[title]". This is a placeholder token that will set the link's text to be the title of the node
- Save
Add feeds- Now we're going to add your first feed! Go to http://localhost/node/add/feed
- Set the title to a useful title for this feed (eg. "My Twitter updates")
- Down in the Feed section, enter the URL for your feed and check Refresh feed on creation
- Expand "Processors" and "Feed API Node"
- Set Node Type to Event (or whatever your earlier created content type's name is)
- Save
- You should see a link to view Feed Items, or go to http://localhost/admin/content/node at any time to see all the content on your site
Map fields in feed to Drupal fields- Click on the Map tab on your new feed
- Expand the Feed Item Example section
- Take a look at how this feed is structured and the mappings we have available in Drupal
- Use the dropdowns below to match items from the feed with Drupal fields
- For example, Delicious has the actual bookmarked URL stored at options->original_url, so you could map that one to your own field_orig_url in the dropdown. There may be other fields you want to map, such as a particular version of the feed item's title to the node title, and a description to the node body. If we had other fields or vocabularies tied to this content type, they would show up as possible fields to map to here.
- Save that form, then use the Remove and Refresh tabs to reload the feed items with their new mappings
Create a view to display our feed imports- Go to http://localhost/admin/build/views/add to create a new view
- Give it a name and leave the type as Node
- Click the + symbol next to Fields
- In the area that opened below, select Content: Original link and Node: Post Date
- Note: because we set up that [title] token earlier for the original link field, we don't need to add the node title here because the link field will already contain it
- Click Add
- Now we'll set some configuration options for each of these fields:
- Set Label: None or delete the text in the "Label:" box for all fields
- The Format dropdown will give you some options for each field that you can change if you'd like, or just leave the defaults
- Click Update for each field
- Click on Style: Unformatted and change the option below to Table, click Update. Again there are lots of options in here we can come back and tweak later.
- Click the + symbol next to Sort Criteria
- Add Node: Post date
- Adjust the sort order if you wish
- Save
- Click the + symbol next to Filters. Right now this view spits out every piece of content on the site but we want to have some control over this by limiting it to only nodes that are categorized in our feed content type.
- Select Taxonomy: Vocabulary
- Select Is One Of and your vocbaulary
- Click Update
- Now we need to make a display for this view so you can actually see it on the front end of your Drupal site! With Page selected from the dropdown in the upper left, click Add Display.
- Under Page Settings, click on Path: None and give it a page URL
- Click on Menu: No Menu and select Normal menu entry
- Give it a title and under Menu select Primary links
- Click Update
- Note: when editing your view now, you can work off of either the Defaults (recommended) or start overriding things in the particular Page display. You can create as many displays as you want off a single view and change any of the fields, sorting, styles, etc. around.
- Your view should look like the screenshot below
- Click Save to save your view and it should add a menu item to your site's primary menu in the top right, which will display your page view!
There are a zillion things you could tweak in this view. For example, making columns sortable, having the category link to a version of the view displaying only terms from that category, adding icons for categories, reorder fields, setting the date to link to a calendar format, adding a pager, creating a small "block" version to display just the latest 5 items in the sidebar, adding a search box to the top, etc etc.
Play around with it!