OSDN Git Service

Cleanup [part 1]: Rename a define.
[pukiwiki/pukiwiki.git] / plugin / memo.inc.php
1 <?php
2 // $Id: memo.inc.php,v 1.12 2004/10/09 08:01:58 henoheno Exp $
3
4 /////////////////////////////////////////////////
5 // ¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¥«¥é¥à¿ô
6 define('MEMO_COLS', 80);
7
8 // ¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¹Ô¿ô
9 define('MEMO_ROWS', 5);
10
11 /////////////////////////////////////////////////
12 function plugin_memo_action()
13 {
14         global $script, $vars, $cols, $rows;
15         global $_title_collided, $_msg_collided, $_title_updated;
16
17         if (! isset($vars['msg']) || $vars['msg'] == '') return;
18
19         $memo_body = preg_replace("/\r/", '', $vars['msg']);
20         $memo_body = str_replace("\n", "\\n", $memo_body);
21         $memo_body = str_replace('"', '&#x22;', $memo_body); // Escape double quotes
22         $memo_body = str_replace(',', '&#x2c;', $memo_body); // Escape commas
23
24         $postdata_old  = get_source($vars['refer']);
25         $postdata = '';
26         $memo_no = 0;
27         foreach($postdata_old as $line)
28         {
29                 if (preg_match("/^#memo\(?.*\)?$/i", $line))
30                 {
31                         if ($memo_no == $vars['memo_no'])
32                         {
33                                 $postdata .= "#memo($memo_body)\n";
34                                 $line = '';
35                         }
36                         ++$memo_no;
37                 }
38                 $postdata .= $line;
39         }
40
41         $postdata_input = "$memo_body\n";
42
43         if (md5(@join('', get_source($vars['refer']))) != $vars['digest'])
44         {
45                 $title = $_title_collided;
46
47                 $body = "$_msg_collided\n";
48
49                 $s_refer  = htmlspecialchars($vars['refer']);
50                 $s_digest = htmlspecialchars($vars['digest']);
51                 $s_postdata_input = htmlspecialchars($postdata_input);
52
53                 $body .= <<<EOD
54 <form action="$script?cmd=preview" method="post">
55  <div>
56   <input type="hidden" name="refer"  value="$s_refer" />
57   <input type="hidden" name="digest" value="$s_digest" />
58   <textarea name="msg" rows="$rows" cols="$cols" id="textarea">$s_postdata_input</textarea><br />
59  </div>
60 </form>
61 EOD;
62         }
63         else
64         {
65                 page_write($vars['refer'], $postdata);
66
67                 $title = $_title_updated;
68         }
69         $retvars['msg'] = $title;
70         $retvars['body'] = $body;
71
72         $vars['page'] = $vars['refer'];
73
74         return $retvars;
75 }
76
77 function plugin_memo_convert()
78 {
79         global $script, $vars, $digest;
80         global $_btn_memo_update;
81         static $numbers = array();
82
83         if (! isset($numbers[$vars['page']]))
84         {
85                 $numbers[$vars['page']] = 0;
86         }
87         $memo_no = $numbers[$vars['page']]++;
88
89         $data = func_get_args();
90         $data = implode(',', $data);    // Care all arguments
91         $data = str_replace('&#x2c;', ',', $data); // Unescape commas
92         $data = str_replace('&#x22;', '"', $data); // Unescape double quotes
93         $data = htmlspecialchars(str_replace("\\n", "\n", $data));
94
95         $s_page   = htmlspecialchars($vars['page']);
96         $s_digest = htmlspecialchars($digest);
97         $s_cols = MEMO_COLS;
98         $s_rows = MEMO_ROWS;
99         $string = <<<EOD
100 <form action="$script" method="post" class="memo">
101  <div>
102   <input type="hidden" name="memo_no" value="$memo_no" />
103   <input type="hidden" name="refer"   value="$s_page" />
104   <input type="hidden" name="plugin"  value="memo" />
105   <input type="hidden" name="digest"  value="$s_digest" />
106   <textarea name="msg" rows="$s_rows" cols="$s_cols">$data</textarea><br />
107   <input type="submit" name="memo"    value="$_btn_memo_update" />
108  </div>
109 </form>
110 EOD;
111
112         return $string;
113 }
114 ?>