Extension:Drafts

From MediaWiki.org

Jump to: navigation, search

           

Manual on MediaWiki Extensions
List of MediaWiki Extensions
Crystal Clear action run.png
Drafts

Release status: beta

Implementation  Ajax, Special page
Description Adds the ability to save a draft of an article on the server while editing.
Author(s)  Trevor ParscalTalk
Last Version  SVN (2009-04-17)
MediaWiki  1.14alpha and higher
License GPL v2
Download Download snapshot

Subversion [Help]
Browse source code

check usage (experimental)

This extension adds the ability to save a draft of an article on the server while editing. Users must be logged in to save drafts, as they are tied to their user account. Drafts are always discarded when they are used to save the article they came from.

Contents

[edit] User Interface

[edit] Saving Drafts

Drafts are always saved when the user clicks preview or show changes, however the following behavior is dependent on whether the client's browser has JavaScript enabled or disabled.

Behavior JavaScript Enabled JavaScript Disabled
Save Draft Button
  • Initially Disabled to indicate no change
  • Enabled upon change
  • Disabled and renamed upon save to indicate success or failure
Always enabled
Automatic Saving
  • Only after a change
  • Waits for 120 seconds (configurable) of inactivity
  • Can be disabled if configured to 0 seconds

None

[edit] Accessing Drafts

If a draft has been saved the user can access them by

  • Returning to the edit screen for article they saved the draft of, where a list of existing drafts for that user and article will appear at the top of the edit page.
  • Visiting the drafts special page (Special:Drafts) where there is a list of all drafts for that user.

[edit] Edge Cases

  • When a page is moved, the drafts which refer to that page are moved with it
  • When a draft is created for a new page but the page is never saved, the draft will still be available for creating the page and will retain the title and namespace
  • When a draft is created for a page and the page is then deleted, the draft will remain, and the behavior will then be just as for drafts of uncreated pages

[edit] Draft Expiration

Drafts automatically expire if not modified for longer specific length of time (configurable). To prevent excessively frequent modifications to the database, these drafts are only actually pruned from the database a fraction of the times (configurable) which a request for a list of drafts is made. Even if pruning never takes place, expired drafts will not be accessible to users.

[edit] Installation

  • Copy the Drafts folder into your extensions directory.
  • Add the following line to the bottom of LocalSettings.php
 require_once ( "$IP/extensions/Drafts/Drafts.php" );
  • Run the update script on the server
> php maintenance/update.php

The extension needs its own table within the MediaWiki database, and this is the reason you have to execute the update.php script. However, you may be able to save executing the update script if you manually import the contents of the extensions/Drafts/Drafts.sql file into your database, but don't do it directly with mysql because the SQL file itself relies on MediaWiki variables for finding the correct database prefix and table options.

[edit] Configuration

The following parameters can be set by defining values for the following variables in your LocalSettings.php file.

Parameter Description Default Value
$egDraftsAutoSaveWait Seconds of inactivity to wait before automatically saving the draft 120 (2 minutes)
$egDraftsAutoSaveTimeout Seconds to wait until giving up on a response from the server 10 (use 0 to disable)
$egDraftsLifeSpan Days since last change to keep drafts in the database 30 (about a month)
$egDraftsCleanRatio Ratio of times which drafts should be removed from the database when a list of drafts is requested 1000 (as in once in 1000 times)