OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / widgets / wiki_main / include / plugin / insert.inc.php
1 <?php
2 /**
3  * insertプラグイン
4  *
5  * PHP versions 5
6  *
7  * LICENSE: This source file is licensed under the terms of the GNU General Public License.
8  *
9  * @package    Magic3 Framework
10  * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
11  * @copyright  Copyright 2006-2009 Magic3 Project.
12  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License
13  * @version    SVN: $Id: insert.inc.php 1601 2009-03-21 05:51:06Z fishbone $
14  * @link       http://www.magic3.org
15  */
16 define('INSERT_COLS', 70); // Columns of textarea
17 define('INSERT_ROWS',  5); // Rows of textarea
18 define('INSERT_INS',   1); // Order of insertion (1:before the textarea, 0:after)
19
20 function plugin_insert_action()
21 {
22         //global $script, $vars, $cols, $rows;
23         global $script, $cols, $rows;
24         global $_title_collided, $_msg_collided, $_title_updated;
25
26         if (PKWK_READONLY) die_message('PKWK_READONLY prohibits editing');
27         //if (! isset($vars['msg']) || $vars['msg'] == '') return;
28         $msg = WikiParam::getMsg();
29         if ($msg == '') return;
30
31 /*      $vars['msg'] = preg_replace('/' . "\r" . '/', '', $vars['msg']);
32         $insert = ($vars['msg'] != '') ? "\n" . $vars['msg'] . "\n" : '';*/
33         $msg = preg_replace('/' . "\r" . '/', '', $msg);
34         $insert = ($msg != '') ? "\n" . $msg . "\n" : '';
35
36         $postdata = '';
37         //$postdata_old  = get_source($vars['refer']);
38         $refer = WikiParam::getRefer();
39         $postdata_old  = get_source($refer);
40         $insert_no = 0;
41
42         foreach($postdata_old as $line) {
43                 if (! INSERT_INS) $postdata .= $line;
44                 if (preg_match('/^#insert$/i', $line)) {
45                         //if ($insert_no == $vars['insert_no'])
46                         if ($insert_no == WikiParam::getVar('insert_no'))
47                                 $postdata .= $insert;
48                         $insert_no++;
49                 }
50                 if (INSERT_INS) $postdata .= $line;
51         }
52
53         $postdata_input = $insert . "\n";
54
55         $body = '';
56         $digest = WikiParam::getVar('digest');
57         //if (md5(@join('', get_source($vars['refer']))) != $vars['digest']) {
58         if (md5(get_source($refer, true)) != $digest) {
59                 $title = $_title_collided;
60                 $body = $_msg_collided . "\n";
61
62 /*              $s_refer  = htmlspecialchars($vars['refer']);
63                 $s_digest = htmlspecialchars($vars['digest']);*/
64                 $s_refer  = htmlspecialchars($refer);
65                 $s_digest = htmlspecialchars($digest);
66                 $s_postdata_input = htmlspecialchars($postdata_input);
67                 $postScript = $script . WikiParam::convQuery("?cmd=preview");
68                 $body .= <<<EOD
69 <form action="$postScript" method="post" class="form">
70  <div>
71   <input type="hidden" name="refer"  value="$s_refer" />
72   <input type="hidden" name="digest" value="$s_digest" />
73   <textarea name="msg" class="wiki_edit" rows="$rows" cols="$cols">$s_postdata_input</textarea><br />
74  </div>
75 </form>
76 EOD;
77 /*              $body .= <<<EOD
78 <form action="$script?cmd=preview" method="post" class="form">
79  <div>
80   <input type="hidden" name="refer"  value="$s_refer" />
81   <input type="hidden" name="digest" value="$s_digest" />
82   <textarea name="msg" rows="$rows" cols="$cols" id="textarea">$s_postdata_input</textarea><br />
83  </div>
84 </form>
85 EOD;*/
86         } else {
87                 //page_write($vars['refer'], $postdata);
88                 page_write($refer, $postdata);
89
90                 $title = $_title_updated;
91         }
92         $retvars['msg']  = $title;
93         $retvars['body'] = $body;
94
95         //$vars['page'] = $vars['refer'];
96         WikiParam::setPage($refer);
97
98         return $retvars;
99 }
100
101 function plugin_insert_convert()
102 {
103         //global $script, $vars, $digest;
104         global $script;
105         global $_btn_insert;
106         static $numbers = array();
107
108         if (PKWK_READONLY) return ''; // Show nothing
109
110         //if (! isset($numbers[$vars['page']])) $numbers[$vars['page']] = 0;
111         $page = WikiParam::getPage();
112         if (! isset($numbers[$page])) $numbers[$page] = 0;
113
114         //$insert_no = $numbers[$vars['page']]++;
115         $insert_no = $numbers[$page]++;
116
117         //$s_page   = htmlspecialchars($vars['page']);
118         //$s_digest = htmlspecialchars($digest);
119         $s_page   = htmlspecialchars($page);
120         $s_digest = htmlspecialchars(WikiParam::getDigest());
121         $postScript = $script . WikiParam::convQuery("?");
122         $s_cols = INSERT_COLS;
123         $s_rows = INSERT_ROWS;
124         $string = <<<EOD
125 <form action="$postScript" method="post" class="form">
126  <div>
127   <input type="hidden" name="insert_no" value="$insert_no" />
128   <input type="hidden" name="refer"  value="$s_page" />
129   <input type="hidden" name="plugin" value="insert" />
130   <input type="hidden" name="digest" value="$s_digest" />
131   <textarea name="msg" class="wiki_edit" rows="$s_rows" cols="$s_cols"></textarea><br />
132   <input type="submit" name="insert" class="button" value="$_btn_insert" />
133  </div>
134 </form>
135 EOD;
136         return $string;
137 }
138 ?>