Sunday, March 29, 2009

News v4.x Module Recommendation

by Phil 'iwonder' Guerra - (Mission, KS) - I can’t say I’m a big fan of the new version of the DNN News v4.x module. It’s not the effort, as the DNN News project team has done quite a bit of work on this module updating it, adding features that a lot of the DNN community was asking to be included. The trouble for me is more with certain aspects of the implementation of the changes, and the lack of any support for the previous version of the module. One of the major additions to the module was the inclusion of the feature to aggregate many news feed sources into one News module instance. This aggregation feature comes at a price, and the old expression, ‘be careful what you wish for’, rings out again.

The main trouble with the DNN RSSv2.0 custom newsfeed translation is the lack of support for foreign namespaces, and support for all of the tags in the RSS v2.0 specification. The result of the custom newsfeed is a compromise that is made to make the aggregation of news sources with differing news specifications structure possible. The News module was intended to support RSSv0.91, RSSv2.0, Atom, and OMPL news feeds. However, testing and the News Forums are full of reports of the module failing to present Atom, OPML, and some RSS feeds that worked with the previous version News v3.0.1.

Why is there so much trouble with the News v4.x version of the module? Good question, and there are a variety of answers. Perhaps the single point of failure is in the underlying validation and translation methods of the module. Remember, the module must take and translate feeds from a variety of feed types, and translate it into a version of a feed that can be readily consumed. The compromises made required only a minimalist approach in producing a RSS v2.0 compatible news feed. RSS feed types vary widely in their use and availability of XML tags used in their news feeds. Some like the pubDate element do not exist in the Atom or OPML item elements, and others like author, have a strict definition in the RSSv2.0 specification. During the initial read of a news feed source, the module must be able to rely on the RSSv2.0 specification to help transform or reject the incoming elements to produce the resulting custom DNN RSSv2.0 news feed that is ultimately presented. Sadly, even news feed providers do not follow strict adherence to RSSv2.0 specification, as in the cases of the tags, pubDate, and author. If an incoming news feed source cannot be validated it will be rejected the newsfeeds fails to be presented, which generates the most common error, ‘feed failed to download’.

Another issue with the new module is the lack of support for the previous version. If you have a number of news feeds already in use on a site using the News v3.x version, updating to the new version wipes them out and converts them to using the new methods. This type of upgrade effectively creates issues as the new validation methods most often will fail, especially in cases where custom XSL was used to present a feed. The process results in the news feeds used previously not to be rendered. This situation is due to the forced usage of the new methods even for cases where no aggregation of feeds is needed. A better approach would be to allow the module to specify a usage flag to indicate whether the module is being used in a ‘single’ or ‘aggregation’ mode. If the ‘single’ mode was chosen, the simple presentation model of the older module could be used without disrupting existing usage on a site.

While the News project team did try to relax the validation of the pubDate element, it’s not always possible to fix the issue with this type of method. Many other elements have a strict usage specification, and cause news feeds to fail. In practice, there are very few RSS feeds that can be used with the News v4.0.1 module without errors of some type, or missing essential attributes. So, what’s to be done?

Well, my recommendation is to avoid using the News v4.x module entirely, and use the XML/XSL module in its place for presenting single news feeds on a DNN website. Of course, you can remove the module and load the older News v3.0.1 version of the module, too. Both of these alternatives allow use of custom XSL files to present a newsfeed. However, even this approach will not please everyone, as some insist on having the aggregation features. For those circumstances, the alternative module Feed Explorer can be used, but it is harder to implement, and browser issues exist.

The above recommendation may anger some, but the number of issues being posted on the DNN News forums, are an indicator of the lack of success of the module in practical usage. Hopefully, the DNN project team will overcome the issues in the near future, or someone will offer a suitable replacement.

No comments:

Post a Comment