|Kongregate Registration for Free Flash Games and Chat with solprovider|
This is my current list of Modules. Once all functionality is moved to Modules, a Publication just has a config file with the list of Modules, the location of the Content Repository, and the security configuration files (unless using LDAP, and until they are moved to a Module). Everything else is handled by the Modules.
I used Usecases in 1.2 for adding most functionality that would not be in the Authoring or Live Modules in 1.4. It was cleaner than hacking publication-sitemap.xmap all the time. Modules will make code separation cleaner, and add flexibility.
<BR><B>Module</B>: [1.4] Processing instructions. Modules define a directory and file naming scheme for functionality. Some Modules provide a new entry point to a Publication. Each Publication can have its own Modules, and can configure inheritance of GlobalModules, can override the inherited Modules by placing a file with the same name in the same relationship to the Modules directory as in the parent Module. (See the module: protocol on the Protocols page.)Processing starts with the sitemap.xmap in the home directory of the Module.
GlobalModules: All Modules installed at the server-level.
TemplateModules: A Module installed in a Template. The Template could specify inheritance from another Template or a GlobalModule.
AdministrationModules (Affect entire Publication)
Any Module that affects a Publication-specific data or multiple Resources. Default AdministrationModules include "Users", "Groups", and SitetreeModules.
AdminFunctions (ServerStatus, DeleteTrash)
Sitetree (for maintaining Resource relations in hierarchies. Used for placing new Resources, deleting Resources, and moving Resources to change their Parents for a specific Structure.)
Registration (handles Register, Maintain User Infomation, Login, and Logout).
FunctionModules(backend processes, maybe categorized as Admin?)
Uses multiple Resources to return Document, typically calling the Sitetree Generator and transforming the results to a DIV with a specific ID.
Search (returns DIV id="body" with the Search Form and results from a SearchEngineModule.)
- Lucene (standard SearchEngineModule)
- (other SearchEngineModules)
Menu (returns DIV id="menu")
TabbedMenu (returns DIV id="tabs")
Breadcrumb (returns DIV id="breadcrumb")
RSS (directly accessible by visitors)
TypeModule: A Module which transforms a specified Document to an XHTML DIV with the ID of "body".
Uses single Resources to return Document. Most configure which editor to use.
XHTML (or XHTMLKupu, XHTMLBXE. See below.)
XML (for XMAP, XSP)
ProductSample (for use in creating Fields-based Documents.)
Asset (Returns binary file or Document with META information)
AssetModules: Special processing instructions for handling a specific type of Asset. Usually used to add META data to the response, or create a link that will download the Asset.
- Image (Like Asset, but adds Height and Width)
Section (for retrieving portions of a Document)
Making one Document in to multiple Pages should not be difficult. The Section Module takes a "Section" parameter to return only a portion of a Document. Some tag needs to be specified as the division point between Sections.
PageModules(return HTML Pages)
Aggregates the results of other Modules into a Page to respond to a visitor request. The default PageModule is named "live". Although it is possible (and useful for testing) to have a Module that dumps a Document to the visitor, no Website would use that Module in production. All decent Websites provide some navigation, preferably without dead ends (one reason to avoid PDFs), and the minimum production PageModule should add a "Home" or "Back" link to every Page.
Live (combines result from NavigationModules and (usually one) TypeModule.
Homepage (If included, intercepts request without parameters and "/index.html". Could be included in Live Module.)
Authoring (wraps a Document in an EditorModule)
Administration (provides menu of AdministrationModules, and the body of the current selection.)
Clicking "New Publication" button from the AdminFunctionModule asks which Publication to use as a Template (defaulting to current Publication), then shows checklist of all installed Modules (from chosen Template, and Global Modules not in the Template). The new Publication is created and usable. The developer may change the XSL in the Live and Homepage Modules, which can be done using the XML Module. With this, the Sample Publication becomes the Template with all Lenya-supplied Modules.
It will be fun when a Publication can handle:
and automatically creates WebsiteMaps and RSSFeeds.
I am uncertain how the Editors should be handled. Do you need to choose the editor to edit XHTML? Or should there be Types "XHTMLKupu" and "XHTMLBXE"? Does the Authoring Module retrieve the Authoring Page from the TypeModule? Or does it retrieve the Document and pass it to an EditorModule? Or both, so XHTML can be a special case where you are asked which editor to use if more than one is configured for this Publication?