David Pilling |
PmWiki »
DraftsPmWiki has the capability to stage draft versions of a page prior to them becoming "official". All of the draft pages end in "-Draft" by default (this can be changed by setting $DraftSuffix). Multiple interim edits to a page can be temporarily saved in a "-Draft" copy of a page until the draft is ready to be published to the original. Configuration and usageWhen the site administrator sets $EnableDrafts in a local customization file, the "Save" button on the edit page is split into separate "Publish" and "Save draft" buttons. The "Save draft" button causes any edits to be saved to a "-Draft" copy of the original page, leaving the original page intact. Subsequent requests to edit the page (either the original or -Draft) bring up the draft copy for further editing. The "Publish" button saves back to the original non-Draft copy of the page, removing any -Draft page that may have been created. By default, saving drafts and publishing are available to anyone with 'edit' permissions (see Passwords). However, the site administrator can also set the $EnablePublishAttr configuration variable, which provides a separate 'publish' permission that is required to publish to the original page. When "publishing", how the page's history is handled depends on whether the administrator has set the $EnableDraftAtomicDiff variable.
Drafts and (All)RecentChangesBy default, using the "Save draft" or "Save draft and edit" button will be recorded to both Site.AllRecentChanges and Group.RecentChanges. Also after "publishing" a draft version an orphaned link to the "-Draft" page will remain. To disable on both Site.AllRecentChanges and Group.RecentChanges: $DraftRecentChangesFmt = array(); or alternatively: if ( @$EnableDrafts && @$_POST['postedit']>'' || @$_POST['postdraft']>'' ) unset($RecentChangesFmt); To only disable one of these, unset it individually: if ( @$EnableDrafts && @$_POST['postedit']>'' || @$_POST['postdraft']>'' ) { unset($RecentChangesFmt['$Group.RecentChanges']); # -and/or- unset($RecentChangesFmt['$SiteGroup.AllRecentChanges']); } If a $DraftRecentChangesFmt array is defined, it will be used instead of $RecentChangesFmt when saving a Draft version. For example, to have all draft versions only appear on a page Site.DraftRecentChanges, you could add to config.php: $DraftRecentChangesFmt['Site.DraftRecentChanges'] = '* [[{$Group}.{$Name}]] . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]'; See also $RecentChangesFmt and $DraftRecentChangesFmt. Drafts with searches, pagelists, and RSSThe drafts module also sets pagelists and searches (and thus RSS feeds) to ignore "-Draft" pages by default; one has to do list=all or similar in order to have draft pages included in a pagelist or RSS feed. How do I moderate all postings? Start by enabling drafts to change the "Save" button into separate "Publish" and "Save draft" buttons. Then set $EnablePublishAttr. This adds a "publish" authorization level to distinguish editing of page drafts from publishing.
This page may have a more recent version on pmwiki.org: PmWiki:Drafts, and a talk page: PmWiki:Drafts-Talk. |
David Pilling's Wiki Set view |
Page last modified on November 21, 2019, at 09:17 PM - Powered by PmWiki pmwiki-2.3.31 (pmwiki-2.3.31) |