OSDN Git Service

BugTrack/281: separate sequence number for each page.
[pukiwiki/pukiwiki.git] / plugin / memo.inc.php
1 <?php
2 // $Id: memo.inc.php,v 1.7 2003/04/13 06:28:52 arino Exp $
3
4 /////////////////////////////////////////////////
5 // ¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¥«¥é¥à¿ô
6 define('MEMO_COLS',80);
7 /////////////////////////////////////////////////
8 // ¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¹Ô¿ô
9 define('MEMO_ROWS',5);
10
11 function plugin_memo_action()
12 {
13         global $script,$post,$vars,$cols,$rows;
14         global $_title_collided,$_msg_collided,$_title_updated;
15         
16         if ($post['msg'] == '') { return; }
17         
18         $post["msg"] = preg_replace("/\r/",'',$post["msg"]);
19         $post["msg"] = str_replace("\n","\\n",$post["msg"]);
20
21         $postdata = "";
22         $postdata_old  = get_source($post["refer"]);
23         $memo_no = 0;
24
25         $memo_body = $post["msg"];
26
27         foreach($postdata_old as $line)
28         {
29                 if (preg_match("/^#memo\(?.*\)?$/",$line))
30                 {
31                         if ($memo_no == $post["memo_no"] && $post["msg"]!="")
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($post["refer"]))) != $post['digest'])
44         {
45                 $title = $_title_collided;
46                 
47                 $body = "$_msg_collided\n";
48
49                 $s_refer = htmlspecialchars($post['refer']);
50                 $s_digest = htmlspecialchars($post['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($post['refer'],$postdata);
66                 
67                 $title = $_title_updated;
68         }
69         $retvars["msg"] = $title;
70         $retvars["body"] = $body;
71         
72         $post['page'] = $vars['page'] = $post['refer'];
73         
74         return $retvars;
75 }
76 function plugin_memo_convert()
77 {
78         global $script,$vars,$digest;
79         global $_btn_memo_update;
80         static $numbers = array();
81         
82         if (!array_key_exists($vars['page'],$numbers))
83         {
84                 $numbers[$vars['page']] = 0;
85         }
86         $article_no = $numbers[$vars['page']]++;
87
88         $data = '';
89         if (func_num_args()) {
90                 list($data) = func_get_args();
91         }
92         
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 ?>