Building a News Aggregating Site Using Drupal 6

Exclusive offer: get 50% off this eBook here
Drupal 6 Site Blueprints

Drupal 6 Site Blueprints — Save 50%

Ready-made plans for 12 different professional Drupal sites

£16.99    £8.50
by Rahul Pitre | August 2009 | Drupal

The example project in this article by Timi Ogunjobi is based on a fictitious web site development brief, and it illustrates a practical way of applying Drupal to develop a News Aggregation site called Weird Hap'nins. Bad news is always good news for the press. This is why Vaughan Pyre has decided to take advantage of this fact and create a web site that will aggregate bad news and weird happenings from all over the world. The content of the site will be entirely derived from Really Simple Syndication (RSS) feeds from several sources (each feed being automatically fetched and its items displayed on the web site).

Weird Hap'nins requirements will be the need to:

  • Get external feed sources and allocate them to menu links on the web site
  • Create the means to automatically fetch and display article items located in the feeds
  • Display blocks of latest content from each feed source on the front page

Theme

The theme chosen is "Strange Little Town", which is a contributed theme that fits the description of this unique web site.

Drupal 6 Site Blueprints

Build Weird Hap'nins

Vaughan Pyre is a very ambitious webpreneur. What he really hopes for is a web site that is completely self-maintaining, and on which he can place some Google AdSense blocks. Clicks from the visitors to his site will ensure that he makes lots of money. For this, he needs a site where the content updates regularly with fresh content so that visitors will keep coming back to click on some more Google ads. Vaughan's ultimate objective is to create several of these web sites.

Modules

This is, surprisingly, a very simple site to build, and much of the requirements can be achieved by using the Core Aggregator module. Indeed, were it not for the fact that Vaughan needs the content to automatically update, we needn't use any module other than the Aggregator module.

Optional Core modules

We will be using the following Core modules, which can be enabled via the Modules page:

  • Aggregator—for aggregating syndicated content (RSS, RDF, and Atom feeds)

Contributed modules

We will also be using the following contributed modules from Drupal.org. Install, and enable them via the Modules page:

  • Poormanscron—internal scheduler for users without a cron application

Configure the Poormanscron module

First we need to enable the Poormanscron module, so that the incoming feeds will be able to self-refresh. From the Administer page, we will access the Poormanscron configuration page, mainly to set the time interval between runs of cron to update feed items, as shown in the following screenshot:

Drupal 6 Site Blueprints

In this case, we have left the Time intervals at the default value of 60 minutes.

Configure the Aggregator module

The Aggregator module should be configured to define the feed sources, how often they will be polled, and how they're categorized. For this, if we select the Feed aggregator link on the Administer page, then we should arrive at the following page:

Drupal 6 Site Blueprints

On the Settings page, we will define some more requirements, as follows:

  1. Allowed HTML tags—which are the tags that are embedded in the incoming feed that we want Drupal to accept. The allowed tags do not include image tags. So if any images are coming with the feed, then they will be excluded. However, we don't want this to happen, so we have added the image tag <img> to the list.
  2. Items shown in sources and categories pages—we have defined this to be 20 items, but you may select another figure.
  3. Discard items older than—we want the feed items to be completely refreshed every week so we have set this at 1 week.
  4. Category selection type—we are not categorizing the feeds, so we will leave this setting as it is.

Drupal 6 Site Blueprints

Basic content

The site is built around the Aggregator module, and no other Content type will need to be created. Vaughan has decided to initially use three feeds obtained from www.newsfeedmaker.com, as follows:

It is from these feeds that we will create the necessary content.

Tips and traps
An excellent source for "mashup" feeds on any topic is pipes.yahoo.com.

Add feeds

On the Add feeds page, which is under the Feed aggregator configuration page, we finally get to define our feeds, and how often we want them to be polled.

Drupal 6 Site Blueprints

We want our Bad News feed to be polled every hour, so we have configured it this way. The same procedure is followed to create the feeds for Crime and Paranormal.

Drupal 6 Site Blueprints Ready-made plans for 12 different professional Drupal sites
Published: August 2009
eBook Price: £16.99
Book Price: £27.99
See more
Select your format and quantity:

Display the feeds

It is necessary to first start the feeds so that you can be sure that they work. Therefore, if we go to the List tab on the Feed aggregator page and click on the update items link on the righthand side of each listed feed, then we will see that the site polls items from the feeds that we have configured.

Drupal 6 Site Blueprints

Clicking on the Title of the feed on this page will show a page view of the resulting feed. For example, the Bad News page gives us the following view:

Drupal 6 Site Blueprints

Newsfeed blocks

Vaughan wants to  have blocks containing the latest items from the incoming feeds placed on the front page to encourage visitors to read more and to visit more often. If we visit the Blocks page, then we will see that blocks for Bad News feed latest items, Crime feed latest items, and Paranormal feed latest items have been conveniently created by the Aggregator module. We may now assign these blocks to the Bottom Content region, and configure the blocks to only show on the front page.

Create the front page post

Vaughan needs only one post on the front page, and wants this to be placed at the top of the page, to describe the web site. This post will be created from the Page Content type. In order to do this, click on the Create content link on the lefthand side of the screen, and select the Page link. You will see a form similar to the one shown in the following screenshot:

In this form, we enter the introductory text for the site. At the bottom of the page, in the Publishing option panel, we will promote it to the front page and make it Sticky at top of list. This is necessary just in case Vaughan decides to add new items to the front page, which may effectively displace the site description post that he always wants to be at the top.

Tips and traps
Remember to change the permissions to access news feeds on the Administer | User management | Permissions page.

Menus

Now let's tidy up our site by creating a menu system that is more intuitive. For simplicity, we will be putting all of our feeds page views menu under a new Feeds menu, to separate it from our user's menu.

In order to do this, go to the Menu link on the Administer page.

  1. Click on the Add menu tab at the top of this page to access the page that will permit you to add the new menu (in our example the Feeds menu), as shown in the following screenshot:
  2. Drupal 6 Site Blueprints

  3. After this, we need to create the menu items that link to each of the feeds pages. The URLs for the feeds that we have created are:
    • Bad Newsaggregator/sources/1
    • Crimeaggregator/sources/2
    • Paranormalaggregator/sources/3

These URLs may be obtained from the display in the browser without the preceding string (http://.../?q=).

Return to the Menus link on the Administer page and select Feeds. At the top of the page that comes up, select the Add item tab. This will take us to a page (shown in the following screenshot) where we can define the items in our menu.

Drupal 6 Site Blueprints

We will also see from the Blocks link on the Administer page that a new block has been created for Feeds, and we will assign this to the Right sidebar, which is where we want it.

Finishing up

We can now enable our new theme, Strange Little Town, on the Themes page, which will give us a new front page, as shown in the following screenshot:

Drupal 6 Site Blueprints

 

Summary

In this article, you have learned how to:

  • Build a basic site for publishing news feeds, using the Aggregator module
  • Use the Poormanscron module to run regular site tasks
Drupal 6 Site Blueprints Ready-made plans for 12 different professional Drupal sites
Published: August 2009
eBook Price: £16.99
Book Price: £27.99
See more
Select your format and quantity:

About the Author :


Rahul Pitre

Rahul Pitre has been writing software of one sort or another for twenty-five years, the last dozen or so of which he has spent developing mostly web sites and web applications. He runs Acxede, a software consulting and training firm in New York, where he oversees web application and content development for a variety of clients. He holds masters degrees in Business Administration and Computer Information Systems.

Books From Packt

Books from Packt

Flash with Drupal
Flash with Drupal

WordPress MU 2.7: Beginner's Guide
WordPress MU 2.7: Beginner's Guide

Joomla! 1.5x Customization: Make Your Site Adapt to Your Needs
Joomla! 1.5x Customization: Make Your Site Adapt to Your Needs

Plone 3 Theming
Plone 3 Theming

Joomla! 1.5 SEO
Joomla! 1.5 SEO

Drupal 6 Content Administration
Drupal 6 Content Administration

jQuery UI 1.6: The User Interface Library for jQuery
jQuery UI 1.6: The User Interface Library for jQuery

PHP Team Development
PHP Team Development

 

 

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software