Blame
Date:
Wed Feb 1 05:00:29 2023 UTC
Message:
Daily backup
01
2021-12-17
jrmu
<?php if (!defined('PmWiki')) exit();
02
2021-12-17
jrmu
/* Copyright 2006-2015 Patrick R. Michaud (pmichaud@pobox.com)
03
2021-12-17
jrmu
This file is part of PmWiki; you can redistribute it and/or modify
04
2021-12-17
jrmu
it under the terms of the GNU General Public License as published
05
2021-12-17
jrmu
by the Free Software Foundation; either version 2 of the License, or
06
2021-12-17
jrmu
(at your option) any later version. See pmwiki.php for full details.
07
2021-12-17
jrmu
08
2021-12-17
jrmu
Script maintained by Petko YOTOV www.pmwiki.org/petko
09
2021-12-17
jrmu
*/
10
2021-12-17
jrmu
11
2021-12-17
jrmu
SDV($DraftSuffix, '-Draft');
12
2021-12-17
jrmu
if ($DraftSuffix)
13
2021-12-17
jrmu
SDV($SearchPatterns['normal']['draft'], "!$DraftSuffix\$!");
14
2021-12-17
jrmu
15
2021-12-17
jrmu
## set up a 'publish' authorization level, defaulting to 'edit' authorization
16
2021-12-17
jrmu
SDV($DefaultPasswords['publish'], '');
17
2021-12-17
jrmu
SDV($AuthCascade['publish'], 'edit');
18
2021-12-17
jrmu
SDV($FmtPV['$PasswdPublish'], 'PasswdVar($pn, "publish")');
19
2021-12-17
jrmu
if ($AuthCascade['attr'] == 'edit') $AuthCascade['attr'] = 'publish';
20
2021-12-17
jrmu
21
2021-12-17
jrmu
## Add a 'publish' page attribute if desired
22
2021-12-17
jrmu
if (IsEnabled($EnablePublishAttr, 0))
23
2021-12-17
jrmu
SDV($PageAttributes['passwdpublish'], '$[Set new publish password:]');
24
2021-12-17
jrmu
25
2021-12-17
jrmu
26
2021-12-17
jrmu
$basename = preg_replace("/$DraftSuffix\$/", '', $pagename);
27
2021-12-17
jrmu
## if no -Draft page, switch to $basename
28
2021-12-17
jrmu
if (!PageExists($pagename) && PageExists($basename)) $pagename = $basename;
29
2021-12-17
jrmu
30
2021-12-17
jrmu
## The section below handles specialized EditForm pages and handler.
31
2021-12-17
jrmu
## We don't bother to load it if we're not editing.
32
2021-12-17
jrmu
SDV($DraftActionsPattern, 'edit');
33
2021-12-17
jrmu
if (! preg_match("/($DraftActionsPattern)/", $action)) return;
34
2021-12-17
jrmu
35
2021-12-17
jrmu
## set edit form button labels to reflect draft prompts
36
2021-12-17
jrmu
SDVA($InputTags['e_savebutton'], array('value' => ' '.XL('Publish').' '));
37
2021-12-17
jrmu
SDVA($InputTags['e_saveeditbutton'], array('value' => ' '.XL('Save draft and edit').' '));
38
2021-12-17
jrmu
SDVA($InputTags['e_savedraftbutton'], array(
39
2021-12-17
jrmu
':html' => "<input type='submit' \$InputFormArgs />",
40
2021-12-17
jrmu
'name' => 'postdraft', 'value' => ' '.XL('Save draft').' ',
41
2021-12-17
jrmu
'accesskey' => XL('ak_savedraft')));
42
2021-12-17
jrmu
43
2021-12-17
jrmu
## with drafts enabled, the 'post' operation requires 'publish' permissions
44
2021-12-17
jrmu
if ($_POST['post'] && $HandleAuth['edit'] == 'edit')
45
2021-12-17
jrmu
$HandleAuth['edit'] = 'publish';
46
2021-12-17
jrmu
47
2021-12-17
jrmu
## disable the 'publish' button if not authorized to publish
48
2021-12-17
jrmu
if (!CondAuth($basename, 'publish'))
49
2021-12-17
jrmu
SDVA($InputTags['e_savebutton'], array('disabled' => 'disabled'));
50
2021-12-17
jrmu
51
2021-12-17
jrmu
## add the draft handler into $EditFunctions
52
2021-12-17
jrmu
array_unshift($EditFunctions, 'EditDraft');
53
2021-12-17
jrmu
function EditDraft(&$pagename, &$page, &$new) {
54
2021-12-17
jrmu
global $WikiDir, $DraftSuffix, $DeleteKeyPattern, $EnableDraftAtomicDiff,
55
2021-12-17
jrmu
$DraftRecentChangesFmt, $RecentChangesFmt, $Now;
56
2021-12-17
jrmu
SDV($DeleteKeyPattern, "^\\s*delete\\s*$");
57
2021-12-17
jrmu
$basename = preg_replace("/$DraftSuffix\$/", '', $pagename);
58
2021-12-17
jrmu
$draftname = $basename . $DraftSuffix;
59
2021-12-17
jrmu
if ($_POST['postdraft'] || $_POST['postedit']) $pagename = $draftname;
60
2021-12-17
jrmu
else if ($_POST['post'] && !preg_match("/$DeleteKeyPattern/", $new['text'])) {
61
2021-12-17
jrmu
$pagename = $basename;
62
2021-12-17
jrmu
if (IsEnabled($EnableDraftAtomicDiff, 0)) {
63
2021-12-17
jrmu
$page = ReadPage($basename);
64
2021-12-17
jrmu
foreach($new as $k=>$v) # delete draft history
65
2021-12-17
jrmu
if (preg_match('/:\\d+(:\\d+:)?$/', $k) && ! preg_match("/:$Now(:\\d+:)?$/", $k)) unset($new[$k]);
66
2021-12-17
jrmu
unset($new['rev']);
67
2021-12-17
jrmu
SDVA($new, $page);
68
2021-12-17
jrmu
}
69
2021-12-17
jrmu
$WikiDir->delete($draftname);
70
2021-12-17
jrmu
}
71
2021-12-17
jrmu
else if (PageExists($draftname) && $pagename != $draftname)
72
2021-12-17
jrmu
{ Redirect($draftname, '$PageUrl?action=edit'); exit(); }
73
2021-12-17
jrmu
if ($pagename == $draftname && isset($DraftRecentChangesFmt))
74
2021-12-17
jrmu
$RecentChangesFmt = $DraftRecentChangesFmt;
75
2021-12-17
jrmu
}
IRCNow