We're very excited to announce the release of version 0.9 of Weceem CMS.
This release brings Grails 1.3 compatibility and adds many new features bringing us very close to our baseline 1.0 feature-set targets.
Among the features in this release are...
The content controller now has had some changes to the rendering mechanisms that make several new features possible. For developers this also means they have more flexibility and can render content more easily without the use of the standard controller entry points.
To avoid clashes with other Grails plugins, all Weceem artefacts have been renamed with a Wcm prefix on their class name, which also has the effect of renaming their SQL tables similarly.
Content type domain classes can now, if they wish, handle requests directly and control the response. This is used internally for example to allow ContentFile nodes to be served directly from the normal repository URIs, and by External Link content to perform a HTTP redirect to the target URL of the link.
A popular request was to enable the use of Weceem and Grails tags within HTML content. This is now possible by ticking the "Allow GSP" box when editing content - the next time you edit it, you will have a code editor instead of the rich text editor. This now makes it easy to link to content in the CMS using wcm:link, or to iterate over child tags. (Note: you cannot currently reliably switch between rich editor and code editor however)
There are now tags that make implementing full text search on your site trivial. The results page is served using content from the repository also, so you have full customisation of results.
Visitors to your site can submit content including comments to any content you like. You control what parts of the repository can receive user submitted content and what types are permitted (e.g. only allow comments under Blog Entry nodes). Content automatically enters an "unmoderated" status and remains unpublished until the status is updated.
A new content type "Comment" is supplied and ready to use for comments on any content you wish, with IP address logging and user details. [Note: Captcha or similar not yet implemented]
Basic blog functionality is included, with support for multiple Blogs, and comments on Blog Entries using the visitor content submission mechanisms. Blog archives are easily rendered and styled with your own content nodes, and tags are provided for rendering archive months with links to each archive listing.
All content can now be tagged (uses Grails Taggable plugin), including but not restricted to Blog Entries. Searching for content by tag is also supported.
There are two new content types "Groovy Script" and "Action". These allow you to create server-side Groovy code that executes like Grails controller actions, and you can bind this code to multiple URIs in your repository using Action nodes. This is very powerful and opens up many possibilities such as form processing, REST interfaces to a subset of your content and remote content retrieval.
With no redeploying, reloading or restart of the server required.
A whole bunch of new tags have been added, which are mostly self-explanatory:
As mentioned earlier, the new ability for content types to handle request processing has enabled server file nodes to use the Servlet container's own dispatcher to serve uploaded files directly from the URI used to represent the server file. This eliminates the need to use wcm:createLinkToFile or use /WeceemFiles/XXX links in your CSS/HTML
There are now Grails Config variables application developers (or deployers using weceem.properties) can use to change the URI prefixes for content served by Weceem, for the admin parts of Weceem, and for the non-admin tools provided by Weceem (search, archive, content submission).
Another popular request, the pre-built Weceem Application WAR file now ships with the Grails mail plugin installed, which means that sending of mail is available out of the box, with the correct Javamail SMTP settings provided via weceem.properties configuration. The default space now ships with an example Action/Groovy Script combination that shows how to send mail.
To support the Blog functionality, the Grails Feeds plugin has been integrated, with new tags for generating a link to feeds for any list of child content in your repository. You can produce feeds anywhere in your repository.
Another time-saving feature for real-world CMS usage, you can set Publish From and Publish Until dates on your content. Weceem will automatically migrate the status of that content to Published when the Publish From date is hit, and shift the status to "Archived" when the Publish Until date is hit. A new date picker with hours and minutes is used in the editor.
So support visitor content submission, the security policy mechanism has been extended to allow restriction of the types of content to which each permission (VIEW, EDIT, DELETE, CREATE) applies, per-URI, per user role, and per-Space. This can also be used to restrict certain repository users to creating only the types of content they should be using, to reduce user error and increase security of your content.
There is now a Preview button in the content editor which opens a new browser window with the current content you are editing - without saving the changes.
The GSP layout used to render the admin screens can now be changed with a Config setting, so that users embedding Weceem into their own applications can integrate it fully with their own look and feel.
A slew of bug fixes including the caching bug that was causing problems with editing content for some users.