OSDN Git Service

MASUI'z Edition first beta release
[pukiwiki/pukiwiki.git] / plugin / memo.inc.php
1 <?
2 /////////////////////////////////////////////////
3 // ¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¥«¥é¥à¿ô
4 define("MEMO_COLS",80);
5 /////////////////////////////////////////////////
6 // ¥Æ¥­¥¹¥È¥¨¥ê¥¢¤Î¹Ô¿ô
7 define("MEMO_ROWS",5);
8
9 function plugin_memo_action()
10 {
11         global $post,$vars,$script,$cols,$rows,$del_backup,$do_backup;
12         global $_title_collided,$_msg_collided,$_title_updated;
13
14         $post["msg"] = preg_replace("/(\x0D\x0A)/","\n",$post["msg"]);
15         $post["msg"] = preg_replace("/(\x0D)/","\n",$post["msg"]);
16         $post["msg"] = preg_replace("/(\x0A)/","\n",$post["msg"]);
17
18         if($post["msg"])
19         {
20                 $post["msg"] = str_replace("\n","\\n",$post["msg"]);
21
22                 $postdata = "";
23                 $postdata_old  = file(get_filename(encode($post["refer"])));
24                 $memo_no = 0;
25
26                 $memo_body = $post["msg"];
27
28                 foreach($postdata_old as $line)
29                 {
30                         if(preg_match("/^#memo\(?.*\)?$/",$line))
31                         {
32                                 if($memo_no == $post["memo_no"] && $post["msg"]!="")
33                                 {
34                                         $postdata .= "#memo($memo_body)\n";
35                                         $line = "";
36                                 }
37                                 $memo_no++;
38                         }
39                         $postdata .= $line;
40                 }
41
42                 $postdata_input = "$memo_body\n";
43         }
44         else
45                 return;
46         
47         if(md5(@join("",@file(get_filename(encode($post["refer"]))))) != $post["digest"])
48         {
49                 $title = $_title_collided;
50                 
51                 $body = "$_msg_collided\n";
52
53                 $body .= "<form action=\"$script?cmd=preview\" method=\"post\">\n"
54                         ."<input type=\"hidden\" name=\"refer\" value=\"".$post["refer"]."\">\n"
55                         ."<input type=\"hidden\" name=\"digest\" value=\"".$post["digest"]."\">\n"
56                         ."<textarea name=\"msg\" rows=\"$rows\" cols=\"$cols\" wrap=\"virtual\" id=\"textarea\">$postdata_input</textarea><br>\n"
57                         ."</form>\n";
58         }
59         else
60         {
61                 $postdata = user_rules_str($postdata);
62
63                 // º¹Ê¬¥Õ¥¡¥¤¥ë¤ÎºîÀ®
64                 if(is_page($post["refer"]))
65                         $oldpostdata = join("",file(get_filename(encode($post["refer"]))));
66                 else
67                         $oldpostdata = "\n";
68                 if($postdata)
69                         $diffdata = do_diff($oldpostdata,$postdata);
70                 file_write(DIFF_DIR,$post["refer"],$diffdata);
71
72                 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÎºîÀ®
73                 if(is_page($post["refer"]))
74                         $oldposttime = filemtime(get_filename(encode($post["refer"])));
75                 else
76                         $oldposttime = time();
77
78                 // ÊÔ½¸ÆâÍƤ¬²¿¤â½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¤È¥Ð¥Ã¥¯¥¢¥Ã¥×¤âºï½ü¤¹¤ë?¤·¤Ê¤¤¤Ç¤¹¤è¤Í¡£
79                 if(!$postdata && $del_backup)
80                         backup_delete(BACKUP_DIR.encode($post["refer"]).".txt");
81                 else if($do_backup && is_page($post["refer"]))
82                         make_backup(encode($post["refer"]).".txt",$oldpostdata,$oldposttime);
83
84                 // ¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß
85                 file_write(DATA_DIR,$post["refer"],$postdata);
86
87                 // is_page¤Î¥­¥ã¥Ã¥·¥å¤ò¥¯¥ê¥¢¤¹¤ë¡£
88                 is_page($post["refer"],true);
89
90                 $title = $_title_updated;
91         }
92         $retvars["msg"] = $title;
93         $retvars["body"] = $body;
94         
95         $post["page"] = $post["refer"];
96         $vars["page"] = $post["refer"];
97         
98         return $retvars;
99 }
100 function plugin_memo_convert()
101 {
102         global $script,$memo_no,$vars,$digest;
103         global $_btn_memo_update,$vars;
104
105         if(func_num_args())
106                 $aryargs = func_get_args();
107
108         $data = str_replace("\\n","\n",$aryargs[0]);
109
110         if((arg_check("read")||$vars["cmd"] == ""||arg_check("unfreeze")||arg_check("freeze")||$vars["write"]||$vars["memo"]))
111                 $button = "<input type=\"submit\" name=\"memo\" value=\"$_btn_memo_update\">\n";
112
113         $string = "<form action=\"$script\" method=\"post\" class=\"memo\">\n"
114                  ."<input type=\"hidden\" name=\"memo_no\" value=\"$memo_no\">\n"
115                  ."<input type=\"hidden\" name=\"refer\" value=\"$vars[page]\">\n"
116                  ."<input type=\"hidden\" name=\"plugin\" value=\"memo\">\n"
117                  ."<input type=\"hidden\" name=\"digest\" value=\"$digest\">\n"
118                  ."<textarea name=\"msg\" rows=\"".MEMO_ROWS."\" cols=\"".MEMO_COLS."\">\n$data</textarea><br>\n"
119                  .$button
120                  ."</form>";
121
122         $memo_no++;
123
124         return $string;
125 }
126 ?>