a bit of history might be helpful

Events happening in the community are now at Drupal community events on www.drupal.org.
dikini's picture

Below you'll find a summary of some the email exchange between me and Ernest. It would be good if anyone interested commented on the various issues discussed there. Reading through that again makes me feel like a chatterbox. No one is perfect :)

Ernest: I'll go back to the crossbrowser details once we see the collaborative edition working on the screen as we said, even if it's only in FF for now.

Vlado: Are the cross-browser problems mainly related to design mode? Can the design mode be avoided, at least for the time being?

Ernest The issues I posted yesterday concerned only to the iform creation and design mode. I don't see now a means to avoid the design mode, do you?

Vlado Well, having in mind that in any mode you will have a 'bitmap' of the editor, design mode is not really nessesary. What stops you from updating the contents of a div, textarea, any other element? What would stop you from getting the events like keypress and friends for any other element. Fair enough, it makes no sense in inventing the wheel, and design mode is important for textarea editing, but it is not a show stopper. I might be wrong :)

The problems, at least as I can see them, might be wrong, are twofold
* capture changes
* synchronise the changes
* display changes

The capture shouldn't be that difficult - in the worst case submitting all text would work, then diff, etc...

The synchronisation that's the xmlhttprequest magic - the crossbrowser issues should be solved in drupal.js anyway.

Display the changes - well, that is going to be a neverending problem, I would suggest you start simple and complicate from there on.

In the ideal world, the collaborative editor, should provide an api to hook into any wysiwyg or similar editor - like tinymce, htmlarea, xinha, .... Granted, it would be too much boring compatibility work to do and I wouldn't even suggest you do it. The point is that it needs somehow to collaborate with the rest of the js elements. For example in 4.7 we have the resizeable textarea.

Ernest You are right pointing the three "problems" and I also see the last one as the more complex. Right now I'm trying to implement the heartbeat. I've uploaded a silly test for the heartbeat in the cvs.

Vlado The longpoll (comet) option probably is the most feasible to implement inside php proper, which will possibly work on most setups, although it will require people to be able to set their timeout values in php.ini, via cpanel, or whatever else they use. It would be interesting to be able to leave the options open to use things like mod_pubsub and other similar external technologies.

timed polling is the only one which will work everywhere (the typical ajax thingie).

SoC 2006: Collaborative Editor

Group organizers

Group notifications

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