Failed Conditions
Push — interwiki-remove-golucky ( 52fcdb...768be5 )
by Henry
12:48 queued 09:48
created
Severity

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
/**
3
 * DokuWiki mainscript
4
 *
5
 * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
6
 * @author     Andreas Gohr <[email protected]>
7
 *
8
 * @global Input $INPUT
9
 */
10
11
// update message version - always use a string to avoid localized floats!
12
use dokuwiki\Extension\Event;
13
14
$updateVersion = "51";
15
16
//  xdebug_start_profiling();
17
18
if(!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__).'/');
19
20
// define all DokuWiki globals here (needed within test requests but also helps to keep track)
21
global  $ACT,  $INPUT, $QUERY, $ID, $REV, $DATE_AT, $IDX,
22
        $DATE, $RANGE, $HIGH, $TEXT, $PRE, $SUF, $SUM, $INFO, $JSINFO;
23
24
25
if(isset($_SERVER['HTTP_X_DOKUWIKI_DO'])) {
26
    $ACT = trim(strtolower($_SERVER['HTTP_X_DOKUWIKI_DO']));
27
} elseif(!empty($_REQUEST['idx'])) {
28
    $ACT = 'index';
29
} elseif(isset($_REQUEST['do'])) {
30
    $ACT = $_REQUEST['do'];
31
} else {
32
    $ACT = 'show';
33
}
34
35
// load and initialize the core system
36
require_once(DOKU_INC.'inc/init.php');
37
38
//import variables
39
$INPUT->set('id', str_replace("\xC2\xAD", '', $INPUT->str('id'))); //soft-hyphen
40
$QUERY          = trim($INPUT->str('q'));
41
$ID             = getID();
42
43
$REV   = $INPUT->int('rev');
44
$DATE_AT = $INPUT->str('at');
45
$IDX   = $INPUT->str('idx');
46
$DATE  = $INPUT->int('date');
47
$RANGE = $INPUT->str('range');
48
$HIGH  = $INPUT->param('s');
49
if(empty($HIGH)) $HIGH = getGoogleQuery();
50
51
if($INPUT->post->has('wikitext')) {
52
    $TEXT = cleanText($INPUT->post->str('wikitext'));
53
}
54
$PRE = cleanText(substr($INPUT->post->str('prefix'), 0, -1));
55
$SUF = cleanText($INPUT->post->str('suffix'));
56
$SUM = $INPUT->post->str('summary');
57
58
59
//parse DATE_AT
60
if($DATE_AT) {
61
    $date_parse = strtotime($DATE_AT);
62
    if($date_parse) {
63
        $DATE_AT = $date_parse;
64
    } else { // check for UNIX Timestamp
65
        $date_parse = @date('Ymd',$DATE_AT);
66
        if(!$date_parse || $date_parse === '19700101') {
67
            msg(sprintf($lang['unable_to_parse_date'], hsc($DATE_AT)));
68
            $DATE_AT = null;
69
        }
70
    }
71
}
72
73
//check for existing $REV related to $DATE_AT
74
if($DATE_AT) {
75
    $pagelog = new PageChangeLog($ID);
0 ignored issues
show
Deprecated Code introduced by
The class PageChangelog has been deprecated with message: 2018-06-15

This class, trait or interface has been deprecated. The supplier of the file has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the type will be removed from the class and what other constant to use instead.

Loading history...
76
    $rev_t = $pagelog->getLastRevisionAt($DATE_AT);
77
    if($rev_t === '') { //current revision
78
        $REV = null;
79
        $DATE_AT = null;
80
    } else if ($rev_t === false) { //page did not exist
81
        $rev_n = $pagelog->getRelativeRevision($DATE_AT,+1);
82
        msg(sprintf($lang['page_nonexist_rev'],
83
            strftime($conf['dformat'],$DATE_AT),
84
            wl($ID, array('rev' => $rev_n)),
85
            strftime($conf['dformat'],$rev_n)));
86
        $REV = $DATE_AT; //will result in a page not exists message
87
    } else {
88
        $REV = $rev_t;
89
    }
90
}
91
92
//make infos about the selected page available
93
$INFO = pageinfo();
94
95
// handle debugging
96
if($conf['allowdebug'] && $ACT == 'debug') {
97
    html_debug();
98
    exit;
99
}
100
101
//send 404 for missing pages if configured or ID has special meaning to bots
102
if(!$INFO['exists'] &&
103
    ($conf['send404'] || preg_match('/^(robots\.txt|sitemap\.xml(\.gz)?|favicon\.ico|crossdomain\.xml)$/', $ID)) &&
104
    ($ACT == 'show' || (!is_array($ACT) && substr($ACT, 0, 7) == 'export_'))
105
) {
106
    header('HTTP/1.0 404 Not Found');
107
}
108
109
//prepare breadcrumbs (initialize a static var)
110
if($conf['breadcrumbs']) breadcrumbs();
111
112
// check upstream
113
checkUpdateMessages();
114
115
$tmp = array(); // No event data
116
Event::createAndTrigger('DOKUWIKI_STARTED', $tmp);
117
118
//close session
119
session_write_close();
120
121
//do the work (picks up what to do from global env)
122
act_dispatch();
123
124
$tmp = array(); // No event data
125
Event::createAndTrigger('DOKUWIKI_DONE', $tmp);
126
127
//  xdebug_dump_function_profile(1);
128