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
Comment #1
dado commentedArto,
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
Comment #2
Arto commentedDavid 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!
Comment #3
(not verified) commented