OSDN Git Service

[[pukiwiki:BugTrack/2]] 各プラグインに$Id$を追加
[pukiwiki/pukiwiki.git] / plugin / insert.inc.php
1 <?
2 // $Id: insert.inc.php,v 1.2 2002/06/26 06:23:57 masui 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 $post,$vars,$script,$cols,$rows,$del_backup,$do_backup;
17         global $_title_collided,$_msg_collided,$_title_updated;
18
19         if($post["msg"])
20         {
21                 $postdata = "";
22                 $postdata_old  = file(get_filename(encode($post["refer"])));
23                 $insert_no = 0;
24
25                 if($post[msg])
26                 {
27                         $insert = $post[msg];
28                 }
29
30                 foreach($postdata_old as $line)
31                 {
32                         if(!INSERT_INS) $postdata .= $line;
33                         if(preg_match("/^#insert$/",$line))
34                         {
35                                 if($insert_no == $post["insert_no"] && $post[msg]!="")
36                                 {
37                                         $postdata .= "$insert\n";
38                                 }
39                                 $insert_no++;
40                         }
41                         if(INSERT_INS) $postdata .= $line;
42                 }
43
44                 $postdata_input = "$insert\n";
45         }
46         else
47                 return;
48
49         if(md5(@join("",@file(get_filename(encode($post["refer"]))))) != $post["digest"])
50         {
51                 $title = $_title_collided;
52
53                 $body = "$_msg_collided\n";
54
55                 $body .= "<form action=\"$script?cmd=preview\" method=\"post\">\n"
56                         ."<input type=\"hidden\" name=\"refer\" value=\"".$post["refer"]."\">\n"
57                         ."<input type=\"hidden\" name=\"digest\" value=\"".$post["digest"]."\">\n"
58                         ."<textarea name=\"msg\" rows=\"$rows\" cols=\"$cols\" wrap=\"virtual\" id=\"textarea\">$postdata_input</textarea><br>\n"
59                         ."</form>\n";
60         }
61         else
62         {
63                 $postdata = user_rules_str($postdata);
64
65                 // º¹Ê¬¥Õ¥¡¥¤¥ë¤ÎºîÀ®
66                 if(is_page($post["refer"]))
67                         $oldpostdata = join("",file(get_filename(encode($post["refer"]))));
68                 else
69                         $oldpostdata = "\n";
70                 if($postdata)
71                         $diffdata = do_diff($oldpostdata,$postdata);
72                 file_write(DIFF_DIR,$post["refer"],$diffdata);
73
74                 // ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÎºîÀ®
75                 if(is_page($post["refer"]))
76                         $oldposttime = filemtime(get_filename(encode($post["refer"])));
77                 else
78                         $oldposttime = time();
79
80                 // ÊÔ½¸ÆâÍƤ¬²¿¤â½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¤È¥Ð¥Ã¥¯¥¢¥Ã¥×¤âºï½ü¤¹¤ë?¤·¤Ê¤¤¤Ç¤¹¤è¤Í¡£
81                 if(!$postdata && $del_backup)
82                         backup_delete(BACKUP_DIR.encode($post["refer"]).".txt");
83                 else if($do_backup && is_page($post["refer"]))
84                         make_backup(encode($post["refer"]).".txt",$oldpostdata,$oldposttime);
85
86                 // ¥Õ¥¡¥¤¥ë¤Î½ñ¤­¹þ¤ß
87                 file_write(DATA_DIR,$post["refer"],$postdata);
88
89                 // is_page¤Î¥­¥ã¥Ã¥·¥å¤ò¥¯¥ê¥¢¤¹¤ë¡£
90                 is_page($post["refer"],true);
91
92                 $title = $_title_updated;
93         }
94         $retvars["msg"] = $title;
95         $retvars["body"] = $body;
96
97         $post["page"] = $post["refer"];
98         $vars["page"] = $post["refer"];
99
100         return $retvars;
101 }
102 function plugin_insert_convert()
103 {
104         global $script,$insert_no,$vars,$digest;
105         global $_btn_insert,$vars;
106
107         if((arg_check("read")||$vars["cmd"] == ""||arg_check("unfreeze")||arg_check("freeze")||$vars["write"]||$vars["insert"]))
108                 $button = "<input type=\"submit\" name=\"insert\" value=\"$_btn_insert\">\n";
109
110         $string = "<form action=\"$script\" method=\"post\">\n"
111                  ."<input type=\"hidden\" name=\"insert_no\" value=\"$insert_no\">\n"
112                  ."<input type=\"hidden\" name=\"refer\" value=\"$vars[page]\">\n"
113                  ."<input type=\"hidden\" name=\"plugin\" value=\"insert\">\n"
114                  ."<input type=\"hidden\" name=\"digest\" value=\"$digest\">\n"
115                  ."<textarea name=\"msg\" rows=\"".INSERT_ROWS."\" cols=\"".INSERT_COLS."\">\n</textarea><br>\n"
116                  .$button
117                  ."</form>";
118
119         $insert_no++;
120
121         return $string;
122 }
123 ?>