Cuyahoga Module Development Guide
Table of Contents
Introduction................................................................................................................................................1
Requirements............................................................................................................................................. 1
Setting up the project................................................................................................................................. 2
The simplest module possible.................................................................................................................... 3
The module controller........................................................................................................................... 3
The display user control........................................................................................................................ 4
The cuyahoga_moduletype table...........................................................................................................5
Running the first module.......................................................................................................................6
Display dynamic content with the module.................................................................................................6
The domain............................................................................................................................................7
The database.......................................................................................................................................... 8
Mapping the class to the database......................................................................................................... 8
Module configuration............................................................................................................................ 9
Displaying objects................................................................................................................................. 9
Using the PathInfo parameters to pass variables......................................................................................10
Custom module settings........................................................................................................................... 10
Module administration............................................................................................................................. 10
Make the module searchable....................................................................................................................11
Create an RSS feed for the module.......................................................................................................... 11
Language resources..................................................................................................................................11
Deployment..............................................................................................................................................12
Copy the files to the server..................................................................................................................12
Database scripts for the module installer............................................................................................ 12
Introduction
Cuyahoga is a web site framework that has functionality to manage the site structure, templates and
authorization. All content management is done by separate modules. This allows for easily adding new
functionality without having to change the framework itself.
This document explains all the aspects of building your own modules and should contain enough
information to get things started. For specific questions or remarks, visit the modules forum at
http://www.cuyahoga-project.org/home/forum.aspx?g=topics&f=4.
The important thing: building custom modules for Cuyahoga is fun! It is not difficult to get results fast
and it's a great opportunity to learn about web frameworks and tools like NHibernate or dotLucene.
Requirements
We're assuming that Visual Studio .NET 2003 is used to create the modules. Of course, NAnt users can
also build modules, but the majority of .NET developers use VS.NET and it makes development a little
bit easier. Module developers need to have some experience developing ASP.NET pages and user
controls.