[[toc]]
Hydra is the new CMS/wiki-like app being created for ((Project/HordeWeb))
++ Bugs
++ Source
Hydra is being developed in the [http://horde.org/source/git.php Horde hatchery]
++ People
ChuckHagenbuch and RalfLang are working on Hydra.
++ Description
+++ Draft specification
We need some sort of CMS to manage the content of the site and to make some areas user-editable like the current wiki. We may adopt an existing CMS, or we may adapt some of our own existing code. I propose that we create a new app similar to Wicked and the old Giapeto app, with the following feature list:
Must have a solid API for plugins, external access, embedding, etc.
Support for different page content-types (wiki, HTML, textile)
a GUI HTML editor for html content pages
loki and fckeditor seem most promising so far for this; I want something that supports h1-h6, p, and tables at least - no , mostly semantic markup.
inline preview (instead of wicked's popup - can just be an overlay). only necessary for non-HTML
permissions like Wicked
implicit or explicit hierarchies based on / as a separator
use Horde_Routes for URL management
use Rdo for data classes
store versions of content like wicked does
Good search based on Horde_Content_Index
generate feeds of edit activity across the site/sites; good storage of when and by whom content was last edited
hierarchical navigation of content (http://twiki.org/cgi-bin/view/Plugins/TreePlugin)
++++ Layouts
use @ instead of $this-> for shorthand?
look at rails layouts
Page Object
Block
Mapper! Mappers are the drivers
++++ Horde_Text_Transformer
text_to_html
html_to_text
wiki_to_html
wiki_to_?
textile_to_html
Horde_Text_Transformer::transform($text, $from, $to = 'html');
finds the best transformer
if there's no exact match, sees if there's an intermediate through 'text' (i.e., textile_to_text goes from textile_to_html through html_to_text)
++++ Usage Roles
First guess
(anonymous) visitors
(logged in or anonymous) users that interact with application widgets (shop, wiki, whatever) on the front-end website side
(logged in) users/editors that generate content by direct interaction with the "horde desktop" and its applications like jonah, wicked in the traditional way
(logged in) site operators that can edit layouts, style sheets etc
(logged in) hydra application admins that can add new Websites etc
chuck suggested that the "horde desktop" role should be solely a content administration role.
End users should see a website that doesn't necessarily look like an application.
--Ralf Lang
++++ Old requirements list from the rampage cms project
Steps from Giapeto:
Templates have been moved into the VFS. A default template is loaded if none are present. Now we need a template manager for editing templates.
Simplify configuration as much as possible.
Allow for hosting multiple sites from one giapeto config. Need a way to differentiate. Perhaps have a small set of files that host a giapeto site? Problem is then you wouldn't be able to create them through the web.
Probably want to keep php4 compatibility for now
Need some sort of workflow
Versioning: At least one previous version should be kept to facilitate rollback
Default config should result in a reasonable site that looks like a web site, not a Horde app
Ease of use all over
Rely on Horde_Template blocks integration, instead of "main" content area with confusing block splitting?
If so, need some sort of a "compositeblock" functionality to allow users to put custom content into an area without editing a template
Provide a standard blog template with Jonah integration?
How to handle user-supplied images? Not galleries - do that through Ansel - but page design images - borders, etc.
Should sites be able to lock themselves to a specific theme? Probably...
Give a theme selector widget for sites that want to allow variation
If possible, make the CMS link in the Horde sidebar go to an admin screen, while having /horde/giapeto/ still be the root user-facing site
CMS Suggestion: Add some native support for Horde_Blocks or a new kind of widget. That will encourage more people to build Blocks which one can integrate into Websites.Currently you only need few lines of code but if the CMS is going to be a new app for release, this may really push Horde deployment a step forward.See also the CMS module of egroupware which allows joomla templates to be used, and easily integrates all egroupware apps (but is a bit clumsy)
The page object will glue together a grid of widgets (plain html content widgets, hydra's own menu/navigation widget, horde app
block widgets, etc) with a style, header object, footer object etc to a page which can be rendered to a complete html page or other output type.
++ Resources
http://www.cmswatch.com/Trends/1518-A-reality-checklist-for-vendors
http://www.readwriteweb.com/archives/will_habari_be_the_next_wordpress.php
http://www.readwriteweb.com/archives/swirrl_semantic_web_wiki.php
http://www.readwriteweb.com/archives/groupswim_adds_wikis_apis_and_more.php
http://twiki.org/cgi-bin/view/Plugins/SearchEngineKinoSearchAddOn
http://ajaxian.com/archives/roxer-simple-web-page-creation-and-editing
http://www.hicksdesign.co.uk/journal/expression-engine-vs-textpattern
http://seansperte.com/entry/an_introduction_to_expression_engine/
http://www.ministryoftype.co.uk/words/article/quote_unquote/
http://webworkerdaily.com/2009/02/12/tank-an-easy-way-to-build-sites-quickly/
http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html
http://www.readwriteweb.com/archives/concrete_releases_open-source_cms_to_general_avail.php
Relevant tools/resources for web sites to integrate with/consider for inspiration:
Back to the ((Projects|Project List))