Good question.
A web form can be used to capture data for creating a content item (a single XML asset not generated as a page) or a web page. A web form for a page can ask users for inputs include:
1. One or two columns?
2. Which header? (as a dynamic callout)
3. Which footer? (once again, as a dynamic callout)
4. What components to include in a given column?
- List component? List of what content items (a defined type or
set of metadata parameters), how many to return, and in what
sort order?
- Promo item? What content item to promote? What image to
showcase, and what teaser text to link to the underlying page?
5. What ordering of individual components?
The generated XML doesn't include content, but rather the layout parameters for the page and details on what objects need to be generated and how. The output template associated with the XML can generate a either a static page or dynamic page - output a JSP, where the list component, promo component, etc. are JSP tags that generate output based on the parameters specified by the end-user in the form.
In our 2.1 release this May, we intend to provide a library of default components and default "page templates" that a content publisher can use to assemble a web page. Our intent is to enable the end-user to assemble this page using either the form-data-entry mode we use for basic content authoring, or alternative JSP rendering of the XForm that provide a WYSIWYG drag-and-drop environment (of course, the user should be able to flip between both modes, and in any case, the ultimate output is an XML defined by your schema that is subject to workflow, versioning, etc.). Coupled with this will be support for templated web projects, so that you can create a web project in a single-click with default dir structure, components, pages, forms, workflows and as an end-user simply need to go in and modify the default pages to customize with different content, components, etc. or create brand new pages and content altogether.
The benefit of this is that you can extend our component library simply and easily (new JSP tags, which you can of course modify and test in a sandbox) and have complete control over front-end presentation logic using basic JSP. Through this approach, we aim to empower business users to not only own *content* creation but *dynamic web page* creation all without having to involve a developer. And, because these are just standard JSP pages in a standard web app, you can deploy them to any run-time environment running any app server, potentially with or without Alfresco repo on the backend (simple dynamic sites just running off XML deployed to a file-system, more complex sites off an Alfresco repo). This is an example of how our own site is implemented using Alfresco WCM.
More detail … much more detail … will be forthcoming on the wiki in the next couple of weeks as we finalize details of 2.1. The general model to start now, however, is to write you own JSP tags (sourcing data of our CIFS mount or direct from the repo) and develop templates that generate JSPs using those tags and parameters specified by a user in a form.
And now, onto layering in a nice AJAX-enabled drag-and-drop interface onto our XForm implementation to support a page creation wizard as an enhanced version of our content creation wizard …
Kevin