OSDN Git Service

htmlsc(): Just sugar for htmlspecialchars(), and a foundation
[pukiwiki/pukiwiki.git] / plugin / newpage.inc.php
1 <?php
2 // $Id: newpage.inc.php,v 1.16 2011/01/25 15:01:01 henoheno Exp $
3 //
4 // Newpage plugin
5
6 function plugin_newpage_convert()
7 {
8         global $script, $vars, $_btn_edit, $_msg_newpage, $BracketName;
9         static $id = 0;
10
11         if (PKWK_READONLY) return ''; // Show nothing
12
13         $newpage = '';
14         if (func_num_args()) list($newpage) = func_get_args();
15         if (! preg_match('/^' . $BracketName . '$/', $newpage)) $newpage = '';
16
17         $s_page    = htmlsc(isset($vars['refer']) ? $vars['refer'] : $vars['page']);
18         $s_newpage = htmlsc($newpage);
19         ++$id;
20
21         $ret = <<<EOD
22 <form action="$script" method="post">
23  <div>
24   <input type="hidden" name="plugin" value="newpage" />
25   <input type="hidden" name="refer"  value="$s_page" />
26   <label for="_p_newpage_$id">$_msg_newpage:</label>
27   <input type="text"   name="page" id="_p_newpage_$id" value="$s_newpage" size="30" />
28   <input type="submit" value="$_btn_edit" />
29  </div>
30 </form>
31 EOD;
32
33         return $ret;
34 }
35
36 function plugin_newpage_action()
37 {
38         global $vars, $_btn_edit, $_msg_newpage;
39
40         if (PKWK_READONLY) die_message('PKWK_READONLY prohibits editing');
41
42         if ($vars['page'] == '') {
43                 $retvars['msg']  = $_msg_newpage;
44                 $retvars['body'] = plugin_newpage_convert();
45                 return $retvars;
46         } else {
47                 $page    = strip_bracket($vars['page']);
48                 $r_page  = rawurlencode(isset($vars['refer']) ?
49                         get_fullname($page, $vars['refer']) : $page);
50                 $r_refer = rawurlencode($vars['refer']);
51
52                 pkwk_headers_sent();
53                 header('Location: ' . get_script_uri() .
54                         '?cmd=read&page=' . $r_page . '&refer=' . $r_refer);
55                 exit;
56         }
57 }
58 ?>