Packt Publishing Community Experience, Distilled

Building a News Aggregating Site Using Drupal 6

HomeBooksSupportFreeAuthorsAward
WELCOME YOUR ACCOUNT NEWSLETTERS ARTICLES ABOUT US

 
Article Network FAQ

Want to know more about Packt's Article Network? Interested in contributing your article ideas?

Please visit our FAQ for more information.


See More


Building a Personal Site Using Drupal 6

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 personal site. Isaac Meredith Smart is a professor of Sociology at Drupelburg University. His need is quite simple, and all he intends to do is to build a personal web site that will provide some shameless publicity to promote him professionally. The objective is to give his students, as well as the entire academic community, as much information about himself as is decently permitted.


See More
 
Building a News Aggregating Site Using Drupal 6

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.

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:

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:

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.

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.

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
 
Drupal 6 Site Blueprints Ready-made plans for 12 different professional Drupal sites
  • Instant Drupal – Build 12 exciting and simple web projects
  • Expand and tailor the sample projects to your client's need
  • Create quick prototypes of commonly used applications within hours
  • Develop your own custom application by merging features from the example projects
  • Apply easy methods to optimize the performance of your site
http://www.packtpub.com/drupal-6-site-blueprints/book


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.

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:

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. 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.

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:



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
 
Drupal 6 Site Blueprints Ready-made plans for 12 different professional Drupal sites
  • Instant Drupal – Build 12 exciting and simple web projects
  • Expand and tailor the sample projects to your client's need
  • Create quick prototypes of commonly used applications within hours
  • Develop your own custom application by merging features from the example projects
  • Apply easy methods to optimize the performance of your site
http://www.packtpub.com/drupal-6-site-blueprints/book


About the Author

Timi Ogunjobi

Timi Ogunjobi is a Technical Writer, Web Developer and Open Source Evangelist. Trained as an engineer, Timi has been developing web applications in several frameworks for more than 7 years and has also been writing for more than a decade on a wide variety of topics. Timi is the principal of Websesame – http://www.websesame.com – a software development and Technical writing company. Timi balances his time between programming, reviewing, writing, and contributing to interesting web-based and community projects. When he isn't working (which isn't that often) he enjoys playing jazz guitar and getting involved in outdoor activities principally cricket, golf, and swimming.


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






 
Article Network


Packt Article Network

Visit Packt's Article Network, for all the latest quality, relevant and free content.
See More



NEWSLETTER

Sign up for updates, offers, free downloads and you could win an iPod Shuffle.
Subscription center

SEARCH

Search our Site
 




© Packt Publishing Ltd 2010

RSS