[development] Use revisions to replace previews
Angela Byron
drupal-devel at webchick.net
Fri Jun 8 16:38:35 UTC 2007
On 8-Jun-07, at 12:21 PM, Morbus Iff wrote:
>>> This is pretty much the way I work - I could easily spend 30
>>> previews before I finish what I consider my first draft of a
>>> node. I would hate to waste 30 revisions (and the overhead) for
>>> stuff
>> That's why it was suggested to automatically delete revisions
>> that were used for previews. Not that it would become elegant
>> code, but that would at least get rid of the overhead.
>
> How does that reduce the overhead, or keep the revision counter
> from ballooning ridiculously? I'm still "wasting" the revisions,
> whether they're active or not.
Proposal:
new field in node_revisions: preview int 1
all nodes default to status = 0.
When preview is clicked...
- Does a node id exist for this post yet?
- If so, find the latest revision where preview = 1 and replace
its contents with the current post's contents. Also store the node ID
in a cookie value, so if the browser crashes, we can get back here.
- If not, create a new revision and mark it preview = 1;
When submit is clicked...
- Create a new "normal" revision (preview = 0).
- Publish the node (workflow settings permitting)
- Delete preview revision if it exists.
- Delete node ID cookie value.
hook_cron
- Delete all preview = 1 revisions where updated >= variable_get
('preview_threshold', 86400);
user comes back after browser crashes:
- Drupal checks for existence of node ID cookie value, does a
drupal_goto() to the node "would you like to finish editing this?"
Since users can see unpublished nodes as long as they've authored
them, they'd be able to further edit the content.
-Angie
More information about the development
mailing list