[development] OpenOffice.org

Liam McDermott liam at intermedia-online.com
Thu May 15 22:53:27 UTC 2008

It's about time I replied to this, as have been planning something 
similar, just haven't had the time to implement it. I'm worried by the 
lockin Sharepoint gives Microsoft, and am seeing first hand how people, 
corporations and institutions are jumping on it. They truly think it's a 
great thing.

 From Drupal's perspective Sharepoint is not only gaining traction as a 
document portal, but as a platform for building Web sites. This worries me.

Louis Suarez-Potts wrote:
> How is integration imagined? It could be close or it could be even 
> something as simple as an extension.

I've got a battle plan. :)

> If people are interested, let's talk. My guess is that an obstacle to 
> good intentions is reality: shortage of resources.

Well, here's what I dreamed up a while ago:

  * Firstly, create a CCK field that transforms an ODF file attachment 
into HTML, using the ODF2html stylesheet (or whatever it's being called 
these days). http://xml.openoffice.org/sx2ml/ and stores it in the 
Drupal database. I did think of doing this as a content type, but 
attaching to a node, using CCK and file attachments, allows the author 
to add metadata about the document and store multiple documents on the 
same node. It also keeps the document separate from the node, so users 
don't get confused when they can't edit it online. Initially I do not 
expect users to be able to edit documents online, they will need a 
thick-client editor like OOo, or KOffice.

  * Next, make our ODF CCK field store 'revisions' (in Drupal-speak), 
according to ODF 'versions' (ODF-speak, I'll call revisions and versions 
this from now on) stored in the document. I've investigated how the 
versions are stored in ODF, splitting them out doesn't seem too 
difficult. CCK information is not stored in node_revisions, so we'll 
need our own revisions table for this field.

  * Add GUI elements allowing users to view the versions stored in the file.

  * Use the diff module ( http://drupal.org/project/diff ) as a basis 
for a version viewer, that allows people to see the differences between 
files online.

  * In order to get write-access to files stored in the document portal, 
we'll need to point people to other FLOSS technologies, instead of 
re-inventing the wheel (in my opinion). WebDAV is the most likely 
candidate I've seen, even Windows supports it (not sure about Vista though).

  * Add an edit link on the CCK field that points OOo to the file stored 
in WebDAV. An edit should 'lock' the file for editing, in both Drupal 
and in the file system.

  * Add an 'update' or 'check in' link that re-imports the file: 
splitting out the versions, converting them to HTML and saving the 
versions to the CCK database. This is kludgy, but fixes two problems: 1. 
stopping multiple users editing the same file; 2. knowing when a file 
has been updated in the repo.

  * Write tutorials on how to turn your Drupal into a document portal. 
Include instructions on WebDAV (maybe including WebDAV and SVN with 
autoversioning) and useful Drupal modules, such as Workflow ( 
http://drupal.org/project/workflow ). For bonus points, create packages 
for popular GNU+Linux distros: 'apt-get odf-portal' being the aim.

  * For more than just bonus points, create a business selling servers: 
Document-portal-in-a-box, or rental services. For bonus marketing 
points, create a budget Document Portal Server that ships complete for 
less than the price of a Windows 2008 + Sharepoint *license*.

I already asked Slashdot about an ODF Document Portal last year, didn't 
receive much feedback, but here's the thread: 
http://ask.slashdot.org/article.pl?sid=07/03/09/0036216 Already had 
Drupal in my mind as the best way to implement this, but wanted to see 
if anyone could come up with a better plan. The best was Alfresco, I 
tried and found it lacking compared to Drupal.

Further research, know your enemy: 
http://office.microsoft.com/en-us/products/HA101687261033.aspx I'm on 
GNU+Linux, but that ran fine in a VM running Windows XP. Last time I 
looked Sharepoint was in that demo.

It would take precious little time to get this project going, most of 
what's required is already in place IMO. This is the biggest advantage 
we have over Microsoft: cannibalising code and services from other projects.

I would be very happy to take this idea further, but can't afford to 
work for free at the moment. If this plan makes any sense, feel free to 
use it. Otherwise, if nothing happens and I do get some free time, I 
might try this myself.

Feel free to contact me with questions or what not.

Kind Regards,
Liam McDermott.

More information about the development mailing list