David, thanks for developing this module -- it's a very useful tool indeed.

I recently needed to extend it quite a bit on a consulting assignment, and would like to contribute my enhancements back to the community.

Here's a mostly complete list of the additional development I've done (I started from your 2006-08-19 version):

  • Extended the module's installation and usage instructions, and reorganized the code for better extensibility.
  • Implemented an installation hook which verifies that the required Views module is installed and enabled, and outputs a warning in case it is not.
  • Implemented JSON output and added a setting for specifying whether to use JSON or XML for loading the timeline data feed.
  • Simplified the XML output code by making use Drupal's built-in function format_xml_elements().
  • Changed dates/times in data feed to use the ISO-8601 format, and added explicit date format specifier to data feeds.
  • Added a setting for specifying the base URL to load the timeline JavaScript widget from.
  • Added a setting and cache control implementation for specifying the client-side cache lifetime for timeline data feeds.
  • Changed timeline data feed loading to use a relative, instead of absolute, URL to counteract problems when accessing a site via HTTP/HTTPS both.
  • Added an explicit UTF-8 character set specifier to the HTTP Content-Type header of the data feeds.
  • Implemented some initial Simpletest unit tests for verifying the well-formedness of the data feeds provided by the timeline module.
  • Implemented a best-effort workaround for the widget's timezone display bugs, claiming dates are GMT while they're in fact explicitly adjusted to the current user's timezone.
  • Added a wrapper DIV element around timeline DIV for easier control over theming, and added a visible border around the timeline widget for stylistic effect.
  • Changed the default timeline CSS class name and width, and set the timeline XHTML element ID to the name of the current timeline view in order to facilitate custom theming.
  • Separated timeline creation JavaScript code out of the module and into a file called timeline.js; also added an initial timeline.css stylesheet file.
  • Successfully tested vertical timeline views (with newest version of the timeline widget).

This alternate version of the module is available from my Drupal CVS contrib sandbox at:
http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/arto/modules/...

To facilitate grabbing the files, I've also packaged the module up into a tarball, which also includes the MIT SIMILE widget's latest version (revision 5261 from their SVN trunk):
http://bendiken.net/files/drupal/modules/timeline-4.7.0-20061020.tar.gz

Unfortunately, due to the extent of the changes, it's not feasible to submit them as individual patches... So, I'm not really sure what's the best way to proceed here - of course, provided you are even interested in integrating these changes, in the first place?

Comments

dado’s picture

Arto,
This is fantastic! Open source at its best. Thanks for taking the initiative. Your list of enhancements seem to address all the issues I had not addressed, and taken the module in a fresh new direction. Clearly patching my legacy code is out of the question.

Will pursue replacing my code with yours.
Many thanks,
David

Arto’s picture

Assigned: Unassigned » Arto
Status: Needs review » Fixed

David has graciously given me the go-ahead to commit my timeline version into this project, so I've now gone ahead and done so. At the same time I took the opportunity to branch the project for Drupal 4.7, so there should be a 4.7 tarball available for download soon.

Thanks for the opportunity to work with you on this project, David!

Anonymous’s picture

Status: Fixed » Closed (fixed)