6.0.0-git
2024-04-19
Last Modified 2008-06-02 by Chuck Hagenbuch

Thomas

Thomas is an incubator module for blogs created by Duck.

Bugs

People

Duck duck@obala.net

ChuckHagenbuch is working on merging Thomas with Jonah

Description

Classic blog module with trackbacks and the possibility to copy your blog to other blog services.

Future

This module will be merged with Jonah so that there is a single Horde blog authoring application. Here is the plan:

  • Jonah and Thomas merge into one application that creates feeds, one or more per user
    • Hippo is created as a content aggregation application
    • IMP gets feed reading capabilities in a virtual folder
    • Horde_Feed gets the ability to compose feeds together natively, and the ability to address feeds by universal names (normalization)
    • The feed-reading portal block is retained and improved
    • A generic Horde linkback service is created (http://en.wikipedia.org/wiki/Linkback)

Jonah

The plan for Jonah is:

  • The current code will be branched (with FRAMEWORK_3) so that existing sites can run with Jonah and Horde 3.2. This does not mean that a Horde 3.2 version of Jonah will be released, though.
    • Delivery lists will be removed
    • Features that are missing from Jonah but that exist in Thomas, such as categories, publishing to external services, etc., will be added (categories might be part of Horde_Content, as a horde_content_categories table, for generic usability)
    • Any user with access to the Jonah application will be able to create feeds
    • Feeds will become shares (any reason not to do this? allows shared posting)
    • There will be a setting to lock the default feed so that users can't create more, and $conf['share']['no_sharing'] will be honored.
    • ... what else?
    • The code will be updated to be PHP 5 code using Horde 4 features
    • Aggregate and composite feeds will be removed once Hippo is able to provide those features

Content Master

A generic Horde Content system will be created. Initially it will be very basic, providing a horde_content_master table that maps a global horde_content_id to a type and a local id (i.d., global id 32 is a blog post with id 7). This will be a building block for future Horde services, and for things like the linkback service.

In the future, an admin UI for creating and editing content types, including automatic generation of database tables and Rdo Mapper and domain objects, should be written for Horde_Content. This could be the backend of a pretty powerful CMS.

Linkback service

The linkback service will provide a generic endpoint for handling incoming trackbacks or pingbacks, and a database table that can track them by horde_content_id.

Hippo

Hippo will be a new Horde 4, PHP 5 application that aggregates content. It will initially be written to aggregate feeds, both internal from Jonah natively, and external (through Horde_Feed). Hippo will work with Horde_Content types and have Input and Output classes. Input classes will allow reading a content type, such as Horde_Feed feeds, Jonah internal feeds, comics, etc. Output classes will allow outputting a "remixed" feed from one or more inputs (such as combining an RSS feed with a few comics into a daily feed).

  • There will be no direct storage of inputs or outputs, but Horde_Cache will be used.
    • Some content types such as comics might include code to fetch and store themselves locally; we might decide that Horde_Feed external feeds should be fetched into a local content table also
    • This application should be able to provide the backend for Planet Horde (http://planet.horde.org/)
    • Fields to aggregate for feeds: title, url, uid, summary, content if any, content-type for content, date
    • During Hippo runs, Horde_Log will be used for logging
    • There will be the ability to run filters on Hippo_Input plugins. For instance, if a certain feed has the same junk in every entry, a filter could be attached to the Hippo_Input for that feed that would strip it out. Generic (regex-type) filters should be configurable via the UI; it should be possible to configure any kind of filter in a config file or separate input plugin class.
    • This application should eventually be able to replace Klutz
    • Additional possible content types include podcasts, content from other Horde applications (iCalendar data from Kronolith), "friend information (http://hasin.wordpress.com/2008/05/31/building-friendfeed-using-php-part-1/), etc.

Search

Once we have Horde_Content, we should be able to build Horde_Content_Index on top of it that builds a full text index of anything in the horde_content_master table (using the content type objects to fetch each piece of content for indexing), with either mysql full-text as a backend, or something like Solr (http://lucene.apache.org/solr/)

CMS front end?

I'm just going to preserve a quote from Duck here since I'm sure there's something useful to be distilled from it but I'm not capable of doing that distilling right now:


> IMO Jonah should remain as an news feeder or rss aggregator. A CMS module

> should have an editor system, tracing differences between content versions,

> track-backs, connected with other modules (attachments from Gollem, link to

> shopping items from Merk...) and so on. So I would be happy to see an

> dedicated powerful module then extending Jonah or Thomas. I guess as a lot of

> companies uses Horde groupware will really like to see and module for such

> publishing and linking to their data that are already in their groupware

> intranet.

Horde_Content might be the backend that we can build this frontend on.

--ChuckHagenbuch


Back to the Project List