OSDN Git Service

Corrected 1.54
[pukiwiki/pukiwiki.git] / plugin / insert.inc.php
1 <?php
2 // $Id: insert.inc.php,v 1.10 2004/07/31 03:09:20 henoheno Exp $
3
4 /////////////////////////////////////////////////
5 // ¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¥«¥é¥à¿ô
6 define('INSERT_COLS',70);
7 /////////////////////////////////////////////////
8 // ¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¹Ô¿ô
9 define('INSERT_ROWS',5);
10 /////////////////////////////////////////////////
11 // ÁÞÆþ¤¹¤ë°ÌÃÖ 1:Íó¤ÎÁ° 0:Íó¤Î¸å
12 define('INSERT_INS',1);
13
14 function plugin_insert_action()
15 {
16         global $script, $vars, $cols, $rows;
17         global $_title_collided, $_msg_collided, $_title_updated;
18
19         if (! isset($vars['msg']) || $vars['msg'] == '') {
20                 return;
21         }
22
23         $vars['msg'] = preg_replace("/\r/", '', $vars['msg']);
24         $insert = ($vars['msg'] != '') ? "\n{$vars['msg']}\n" : '';
25
26         $postdata = '';
27         $postdata_old  = get_source($vars['refer']);
28         $insert_no = 0;
29
30
31         foreach($postdata_old as $line)
32         {
33                 if (!INSERT_INS) {
34                         $postdata .= $line;
35                 }
36                 if (preg_match('/^#insert$/',$line)) {
37                         if ($insert_no == $vars['insert_no']) {
38                                 $postdata .= $insert;
39                         }
40                         $insert_no++;
41                 }
42                 if (INSERT_INS) {
43                         $postdata .= $line;
44                 }
45         }
46
47         $postdata_input = "$insert\n";
48
49         if (md5(@join('', get_source($vars['refer']))) != $vars['digest']) {
50                 $title = $_title_collided;
51                 $body = "$_msg_collided\n";
52
53                 $s_refer  = htmlspecialchars($vars['refer']);
54                 $s_digest = htmlspecialchars($vars['digest']);
55                 $s_postdata_input = htmlspecialchars($postdata_input);
56
57                 $body .= <<<EOD
58 <form action="$script?cmd=preview" method="post">
59  <div>
60   <input type="hidden" name="refer" value="$s_refer" />
61   <input type="hidden" name="digest" value="$s_digest" />
62   <textarea name="msg" rows="$rows" cols="$cols" id="textarea">$s_postdata_input</textarea><br />
63  </div>
64 </form>
65 EOD;
66         }
67         else {
68                 page_write($vars['refer'], $postdata);
69
70                 $title = $_title_updated;
71         }
72         $retvars['msg'] = $title;
73         $retvars['body'] = $body;
74
75         $vars['page'] = $vars['refer'];
76
77         return $retvars;
78 }
79 function plugin_insert_convert()
80 {
81         global $script, $vars, $digest;
82         global $_btn_insert;
83         static $numbers = array();
84
85         if (! isset($numbers[$vars['page']]))
86         {
87                 $numbers[$vars['page']] = 0;
88         }
89         $insert_no = $numbers[$vars['page']]++;
90
91         $s_page   = htmlspecialchars($vars['page']);
92         $s_digest = htmlspecialchars($digest);
93         $s_cols = INSERT_COLS;
94         $s_rows = INSERT_ROWS;
95         $string = <<<EOD
96 <form action="$script" method="post">
97  <div>
98   <input type="hidden" name="insert_no" value="$insert_no" />
99   <input type="hidden" name="refer"  value="$s_page" />
100   <input type="hidden" name="plugin" value="insert" />
101   <input type="hidden" name="digest" value="$s_digest" />
102   <textarea name="msg" rows="$s_rows" cols="$s_cols"></textarea><br />
103   <input type="submit" name="insert" value="$_btn_insert" />
104  </div>
105 </form>
106 EOD;
107
108         return $string;
109 }
110 ?>