[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