Breaking up a web site module into its components

Most of the current web site modules which are composed of different parts tend to hard code this composition. Instead we should use a TCompoundWebSiteModule which uses a proper child web site module for each part.

When a web site module that is conceptually composed of multiple parts is not implemented in a way that reflects this composition there is a problem. For instance, individual parts cannot be reused within other compositions and no standard functionality for compositions (like browsing through the individual parts) can be used.

We should restrict the function of one web site module to one specific task as much as possible. Then we can put together individual modules within a TCompoundWebSiteModule. Often individual modules will be properly configured instances of a generic base class. For instance, the class TSimpleTableWebSiteModule can be used to show and allow editing of a table. When a page needs to display a multitude of tables, all of these tables can be added to the same parent compound web site module. Another type of generic base module would be a module which shows some static (explanatory) HTML. This class still needs to be developed so please do so when necessary.