[MKDoc-dev] Proposed event/calendar functionality
Bruno Postle
bruno at mkdoc.com
Wed Oct 13 17:59:45 BST 2004
MKDoc is going to acquire what we call an 'Event Component', this
email is an attempt to summarise the developments so-far.
Rationale
=========
MKDoc is 'document-centric', each document has a unique URI ending
with a slash - The purpose is to _appear_ to be a hierarchical
structure of directories much like a static web-site.
Permissions, versioning, template selection and all the actions in
the yellow top tool-bar work at this coarse-grained document level.
One aspect of an MKDoc document is that it has a 'Body', this is
content such as text, HTML or link 'components' serialised as XML
and stored in the SQL database.
Depending on the choice of template and the components added, an
MKDoc document can be many things: a document, photo album, links
page, product for sale, news story, news headlines or several of
these things all at the same time.
In addition to these existing ad-hoc types, we want to be able to
make an MKDoc document an Event (in time) and later-on, a Place (in
space).
Typical usage of an Event Component
-----------------------------------
Say a theatre is going to present a new production, they might
create a document describing it:
http://www.example.com/my-theatre/plays/twelfth-night/
All the usual MKDoc stuff can be added, such a sub-documents and
photo components. The audience categories might be set to
'theatre', 'comedy', 'Elizabethan' and 'amateur'.
For each performance the editor must add an event-component, each
specifying the start and stop times.
Elsewhere a calendar can be displayed, this will be customised to
show only productions in the future matching a visitors audience
preferences:
http://www.example.com/my-theatre/programme/
..and the regular personalised email newsletters will list it as an
upcoming event.
How is it going to work?
========================
Rather than trying to stuff this information into the document
attributes, the plan is to create a new 'component type' that
represents a 'time range' - This solves the potential problem of
repeating-events requiring complex configuration rules - Under this
model a repeating event simply has multiple 'time range' components.
Time Component
--------------
This will be stored in the document Body in the same way as existing
components, though events need to be search-able, so a new SQL table
is required:
Component_TimeRange
--------------------
ID Char
Date_Start TimeDate
Date_Start_TZ Char
Date_Stop TimeDate
Date_Stop_TZ Char
Title Char
(I realise that this is missing the Document_ID, very important)
MKDoc-1.8 already has an unfinished skeleton of this arrangement
with a flo::editor::TimeRange component and associated editor
template: /resources/templates/editor/timerange/
Display rules
-------------
How this time-range component appears when a document is viewed is
entirely up-to the template author, they could be invisible, listed
at the bottom or trigger a blinking "Now on" banner.
Newsletter
----------
Currently a personalised newsletter gets sent out daily, weekly or
monthly - If a user requests it and if they specify which 'audience
categories' interest them - This lists all the documents added to
the site during that period.
We propose adding-on to this - So a weekly newsletter would have a
new section entitled 'events coming-up in the next week'.
Headlines
---------
Currently the headlines component is used to provide a personalised
listing of relevant recent documents, typically this is used to
create news-headlines pages.
We intend to calendar-ise this by adding a toggle to switch this
display between 'recently added' and 'upcoming'.
That's it, any comments welcome, please send them to the mkdoc-dev
list.
--
Bruno
More information about the MKDoc-dev
mailing list