58 lines
3 KiB
Text
58 lines
3 KiB
Text
*** How to start ***
|
|
--------------------
|
|
|
|
Once installed, there are two configuration variables to setup:
|
|
|
|
* - the time interval in seconds between two autosave calls (or 0 to disable it,
|
|
manual save using the hyperlink is still available)
|
|
* - the blog-relative http path to the plugin (default value should work nicely for most people)
|
|
|
|
Then, you just have to start editing entries :-)
|
|
|
|
*** Dealing with already published entries ***
|
|
----------------------------------------------
|
|
|
|
It took me some time but I finally found how to deal smartly with already published entries:
|
|
I couldn't juste overwrite the existing entry or users would see partial changes, so I use a
|
|
"shadow copy", another entry saved as draft, with title starting by '[AUTOSAVED] '. The original
|
|
entry is linked to it's shadow copy through a property.
|
|
|
|
*** Recovering after a browser crash ***
|
|
----------------------------------------
|
|
|
|
If your entry hasn't been published yet, it's easy, just edit the draft and remove the
|
|
'[AUTOSAVED] ' string from the title, complete your post and save :-)
|
|
|
|
If your entry has already been published, then just go back editing it (don't take care of
|
|
the associated shadow entry!). You should have a second link as below. Clicking it will
|
|
reload the entry being edited with backuped data. Complete your post and submit as usual,
|
|
this will save your entry AND delete the shadow copy.
|
|
|
|
Note: for the moent, I couldn't restore "inline" with an ajax call because of the wysiwyg editors ;-(
|
|
|
|
*** How does it works internally ?!? ***
|
|
----------------------------------------
|
|
|
|
All the magic stuff is done using an AJAX call in javascript. The Rico library is used for that.
|
|
When page has been loaded, the ajax engine is initialized : nothing really exciting here,
|
|
associate each endpoint url with a logical name to simplify calls laters and register an html
|
|
element (a span) to receive the result from the call.
|
|
|
|
Each time the configured period is over (or on user explicit demand), an ajax call is made with
|
|
the contents of the being edited post (except the publication status that is set to draft to avoid
|
|
publication of partial psots :-)). On server side, data are being saved using the same code as a
|
|
"normal" save (i.e. the include/admin/entries.php is "included" with adminAction set to 'save').
|
|
If needed (i.e for not-yet-saved posts), the hidden input field entryid is updated with newly
|
|
generated id, thus enabling the save button to update backup with final data :-).
|
|
|
|
*** Requirements ***
|
|
--------------------
|
|
|
|
An ajax-compliant browser, that is to say a browser that provides the XmlHttpRequest object or
|
|
equivalent. This has been tested successfully with Firefox 1.5 and IE 6.0 SP2 (see the RICO home
|
|
page for supported browsers) and with TinyMCE and HtmlArea, the default editor.
|
|
|
|
The plugin currently do not work with Xhina (I'm working on it) and has not been tested with the
|
|
'versionning' plugin. Any volunteers? :-) However, it now works perfectly with the entrycheck plugin.
|
|
|
|
Feel free to send any comments, questions, suggestions, translations to me (jay dot bertrand at free dot fr).
|