"Drupal Calendar Display Engine (DCDE)": Something like the idea of Themes but just for Calendars plus other features.

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
Ambrose's picture

NOTE: This idea is strictly about displaying calendar data, not managing or storing such data.

Create a comprehensive calendar display module with the following features:

  1. Allow for multiple calendar feeds of different types to create a merged calendar display output.

    a. auto sort and arrange multiple events within each day-cell. Include features to deal with conflicts in multiple calendar feeds. Include features to deal with event displays overflowing a given day-cell.

    b. create code to display events within a day based on a user defined display subtheme. Example: does the color of an event's text and/or text background change with each new event? Is the color affected by the event's content (event type)? Are events "outlined" in a bubble? Are bubbles extended over multiple day-cells for multi-day events? etc

  2. Allow a collection of sub-modules that accept different kinds of calendar input sources and then convert each event/item into an internal data structure. This should be user transparent.

  3. Treat a whole calendar similar to a drupal page (but display it as a single block). Each whole calendar will resemble a collection of blocks (headers, day-cells, notes, etc) which are carefully positioned using a special "layout" language. The layout (aka "calendar subtheme") would resemble a blend of:

    a. the way some word processing and publishing programs define multiple mailing labels such as label (day-cell) size, label shape, distance between labels, number of columns / rows, overall sheet size, etc.

    b. the way some word processing and spreadsheet programs "style" tables such as headers (month names, weekday names, etc) and column controls (to grey out weekends for example)

  4. Treat each day-cell similar to a drupal block (hmm? "subblock"?). Each day-cell can be styled as to size (within the layout parameters from #3 above), shape, color, and content display.

    a. allow for including default instructions on event handling if clicked.

  5. Allow for individualized day-cell overrides of the calendar layout/subtheme (for use on Holidays for example). This feature needs to be able to be triggered by either:

    a. using a list of special dates vs override instructions in the calendar layout data and/or

    b. watching for special content (XML?) within an individual event entry (example might be a picture of a user on their birthday).

  6. Allow for resizing the whole calendar display block including resizing the fonts, but also allow for customized font controls (such as keeping date numbers big, reducing header text, and changing to a different font face and font size for entry text). All components of the calendar should remain cleanly displayed relative to each other as long as the layout parameters are correctly coded.

    a. OPTIONAL: "collision detection" might be a nice feature for use when resizing a calendar. Example: if reducing a calendar with a customized font control would cause the day-cell text to overflow the day-cell subblock then alert the administrator of the issue so they can either lessen the overall reduction or change the font override parameters in the subtheme.

  7. Create code for both pop-ups windows or positionable zoomable day-cells (over the whole calendar) when user asks for more details.

  8. Create code for allowing editing of event data in a pop-up window.

  9. OPTIONAL: If possible allow event data to be edited in a display consistent with the DCDE subtheme. Caution here since the DCDE will be using an optimized internal data structure and not the source calendar's original one. This may need to be added after SoC_2009 is over.

  10. OPTIONAL: Allow for the calendar to be displayed via Adobe Flash instead of PHP/HTML. Include Graceful Degradation code back to HTML for users without Flash.

OK, that's all for now .. time to rest my typing fingers.

Comments

I would love to work on

mikey_p's picture

I would love to work on calendars and this type of issue in Drupal, but I am afraid that this proposal isn't very much in the style of Drupal architecture. I.e. in terms of replicating node data to be displayed in a way that it couldn't be edited, except through a transitional layer.

What I could see here:

  • A module dedicated to outputting easy to use, visually appealing, and customizable calendars (without using CSS or code)
    • This could be a Drupal module using normal theme functions, but with lots of options for customizing output.
    • I could see this possibly being a new Javascript widget to make calendar display more friendly.
  • I could see this as it's own module, or a module that is an add on to the existing calendar module.

Also, I'm not sure if you are proposing the ability to aggregate external data as part of this proposal. Being able to subscribe to RSS or even CalDAV calendars and have the data available in a Drupal calendar alongside local calendar data. This would be an awesome ability, but possibly too big for the scope of a SOC project. Even if it wasn't the display options and external data together would definitely be too much.

Aggregating Calendars...

Alex UA's picture

Being able to subscribe to RSS or even CalDAV calendars and have the data available in a Drupal calendar alongside local calendar data. This would be an awesome ability, but possibly too big for the scope of a SOC project

Sorry, Drupal is one step ahead of you! ;-)

Create a feed of iCal events using Date, FeedAPI, and iCal parser

--
Alex Urevick-Ackelsberg
ZivTech: Illuminating Technology

Alex Urevick-Ackelsberg
ZivTech: Illuminating Technology

This is copying remote data

mikey_p's picture

This is copying remote data from a feed to local and displaying it. I am talking about the ability to display data from an external source, such as CalDAV (that would be the primary breakthrough here).

Also (and this is a big maybe) the ability to push data to a remote CalDAV server on node/event creation (instead of DB store) or the ability to serve node content in a CalDAV compatible format (this is probably the easiest portion thanks to existing DAV and WebDAV modules).

Most likely only portions of that would be in scope for a SOC project.

SoC 2009

Group categories

Admin Tags

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week