6.0.0-git
2024-04-25
Last Modified 2008-09-05 by Chuck Hagenbuch

Hydra

Hydra is the new CMS/wiki-like app being created for Project/HordeWeb

Bugs

Source

As Horde is experimenting with new source control systems (Project/FutureSCM), hydra is being developed in a git (http://git.or.cz/) repository on dev.horde.org. If you have a Horde CVS account, then you have SSH access to dev.horde.org and you can get a copy of hydra by doing:


git clone user@dev.horde.org:/horde/git/hydra hydra

... replacing "user" with your Horde CVS username. When you have changes to share, you can push them back to dev.horde.org with:


git push user@dev.horde.org:/horde/git/hydra

Pushes will not yet generate an email to commits@lists.horde.org, as the post-receive hook doesn't seem to be working. To add a shortcut so that you don't have to type the full repository path each time, you can do:


git remote add horde user@dev.horde.org:/horde/git/hydra

People

ChuckHagenbuch is 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:

  • 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 <font>, 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

Layouts

  • use @ instead of $this-> for shorthand?
    • look at rails layouts

Page Object

Block

- how to return block from driver, inherit Block methods, but also inherit Rdo_Base

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)

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)


CMS ideas: http://blog.phpdeveloper.org/?p=101

Resources


Back to the Project List