2 // PukiWiki - Yet another WikiWikiWeb clone.
5 // 2002-2016 PukiWiki Development Team
6 // 2001-2002 Originally written by yu-ji
7 // License: GPL v2 or (at your option) any later version
9 // PukiWiki main script
11 if (! defined('DATA_HOME')) define('DATA_HOME', '');
13 /////////////////////////////////////////////////
14 // Include subroutines
16 if (! defined('LIB_DIR')) define('LIB_DIR', '');
18 require(LIB_DIR . 'func.php');
19 require(LIB_DIR . 'file.php');
20 require(LIB_DIR . 'plugin.php');
21 require(LIB_DIR . 'html.php');
22 require(LIB_DIR . 'backup.php');
24 require(LIB_DIR . 'convert_html.php');
25 require(LIB_DIR . 'make_link.php');
26 require(LIB_DIR . 'diff.php');
27 require(LIB_DIR . 'config.php');
28 require(LIB_DIR . 'link.php');
29 require(LIB_DIR . 'auth.php');
30 require(LIB_DIR . 'proxy.php');
31 if (! extension_loaded('mbstring')) {
32 require(LIB_DIR . 'mbstring.php');
38 // Load *.ini.php files and init PukiWiki
39 require(LIB_DIR . 'init.php');
41 // Load optional libraries
43 require(LIB_DIR . 'mail.php'); // Mail notification
46 /////////////////////////////////////////////////
48 if ($vars['page'] === FALSE) {
49 die_invalid_pagename();
52 if (manage_page_redirect()) {
57 if (isset($vars['cmd'])) {
59 $plugin = & $vars['cmd'];
60 } else if (isset($vars['plugin'])) {
61 $plugin = & $vars['plugin'];
66 ensure_valid_auth_user();
67 if (exist_plugin_action($plugin)) {
69 $retvars = do_plugin_action($plugin);
70 if ($retvars === FALSE) exit; // Done
73 $base = isset($vars['page']) ? $vars['page'] : '';
75 $base = isset($vars['refer']) ? $vars['refer'] : '';
79 $msg = 'plugin=' . htmlsc($plugin) .
80 ' is not implemented.';
81 $retvars = array('msg'=>$msg,'body'=>$msg);
82 $base = & $defaultpage;
86 $title = htmlsc(strip_bracket($base));
87 $page = make_search($base);
88 if (isset($retvars['msg']) && $retvars['msg'] != '') {
89 $title = str_replace('$1', $title, $retvars['msg']);
90 $page = str_replace('$1', $page, $retvars['msg']);
93 if (isset($retvars['body']) && $retvars['body'] != '') {
94 $body = & $retvars['body'];
96 if ($base == '' || ! is_page($base)) {
97 check_readable($defaultpage, true, true);
98 $base = & $defaultpage;
99 $title = htmlsc(strip_bracket($base));
100 $page = make_search($base);
103 $vars['cmd'] = 'read';
104 $vars['page'] = & $base;
106 prepare_display_materials();
107 $body = convert_html(get_source($base));
111 catbody($title, $page, $body);