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 (manage_page_redirect()) {
53 if (isset($vars['cmd'])) {
55 $plugin = & $vars['cmd'];
56 } else if (isset($vars['plugin'])) {
57 $plugin = & $vars['plugin'];
62 ensure_valid_auth_user();
63 if (exist_plugin_action($plugin)) {
65 $retvars = do_plugin_action($plugin);
66 if ($retvars === FALSE) exit; // Done
69 $base = isset($vars['page']) ? $vars['page'] : '';
71 $base = isset($vars['refer']) ? $vars['refer'] : '';
75 $msg = 'plugin=' . htmlsc($plugin) .
76 ' is not implemented.';
77 $retvars = array('msg'=>$msg,'body'=>$msg);
78 $base = & $defaultpage;
82 $title = htmlsc(strip_bracket($base));
83 $page = make_search($base);
84 if (isset($retvars['msg']) && $retvars['msg'] != '') {
85 $title = str_replace('$1', $title, $retvars['msg']);
86 $page = str_replace('$1', $page, $retvars['msg']);
89 if (isset($retvars['body']) && $retvars['body'] != '') {
90 $body = & $retvars['body'];
92 if ($base == '' || ! is_page($base)) {
93 check_readable($defaultpage, true, true);
94 $base = & $defaultpage;
95 $title = htmlsc(strip_bracket($base));
96 $page = make_search($base);
99 $vars['cmd'] = 'read';
100 $vars['page'] = & $base;
102 prepare_display_materials();
103 $body = convert_html(get_source($base));
107 catbody($title, $page, $body);