My latest offering to the DotNetNuke Forge (open source modules and more for the DotNetNuke framework and hosted on www.codeplex.com/contentdejour) stems from a request from a potential client for a Text/HTML module which would display a different devotional for each day of the year. Although I could find many content rotators on Snowcovered and in the DotNetNuke MarketPlace and a few, I found none that would quite fit the client's requirements. Most were orientated toward serving up content that would change every few seconds or minutes or on each visit to a site. So, I decided to create my own.
Some of the features of the module (which requires DNN framework version 04.07.00 or later) include:
Content to be displayed may be selected based on any one of the following:
- Month - i.e. January, February, . . December
- Day of Month - i.e. 1 through 31
- Day of Year - i.e. 1 through 365
- Month and Day of Month - i.e. January 1-31, February 1-29, March 1-31 . . . December 1-31
- Day of Week - i.e. Sunday, Monday, . . . Saturday
- Month and Day of Week - i.e. January Sun-Sat, February Sun-Sat . . .
When creating content items, the Month, Day of Month, or Day of Week are specified using checkboxs so that it is easy to set one content item to display on Monday, Wednesday and Friday, a different content item to display on Tuesdays and Thursdays and a third item to display on Saturdays and Sundays.
Should more than one item of content be available for one of the above periods, selection may further be made by the following:
- First Available (based on default Month, Day, Day of Week sort)
- Last Available
- Sequential (based on cookie set upon each visit to the page)
- Least Viewed (based on cookie set upon each visit to the page)
- Start and End Timespan (i.e. 8 a.m. to noon, noon to 3 p.m., 3 p.m. to midnight, etc.)
To facilitate easy change of daily content for holidays or type of content, each tab module instance can further specify a user definable category as a further criteria.
Selection of content items may also be based upon a single property - either custom or standard from the user's profile. For example, display content to those users whose City is Bridgton and different content to those whose City is Portland.
A few of the supported features include:
- Token Replacement in both the rich text content and the Title field
- Module Title Replacement - module title may optionally be replaced by the Title field of an item of content
- Module Hiding when there is no content that matches the display criteria for a particular day
- Content items may be individually disabled to prevent showing temporarily
- Content items may be selected for editing either when displayed or from a grid which may be filtered by any of the daily selection/category criteria.
- Grid of available content items utilizes novel multi-column sort (ascending/descending/not-sorted) and indication of sorting priority.
- Categories may be added/edited by the administrator and their view order arranged in the category editor control
- ISearchable and IPortable are implemented.
- Module is dynamically-compiled (WSP model) for ease of future modification and enhancement.
The below demonstration shows only one of the many ways the module can be used - in this case to display different content for each of the seven days of a week.
To download the latest release version (which includes full VB source code) , please visit www.codeplex.com/contentdejour.
Although this free offering is not officially supported, I will try to respond to bug reports, questions, and suggestions for enhancement posted to the Content Dejour forum on this website or the discussion board on the CodePlex project page.