2 // PukiWiki - Yet another WikiWikiWeb clone.
4 // Copyright 2002-2017 PukiWiki Development Team
5 // License: GPL v2 or (at your option) any later version
9 define('MEMO_COLS', 60); // Columns of textarea
10 define('MEMO_ROWS', 5); // Rows of textarea
12 function plugin_memo_action()
14 global $vars, $cols, $rows;
15 global $_title_collided, $_msg_collided, $_title_updated;
17 $script = get_base_uri();
18 if (PKWK_READONLY) die_message('PKWK_READONLY prohibits editing');
19 if (! isset($vars['msg']) || $vars['msg'] == '') return;
21 $memo_body = preg_replace('/' . "\r" . '/', '', $vars['msg']);
22 $memo_body = str_replace("\n", '\n', $memo_body);
23 $memo_body = str_replace('"', '"', $memo_body); // Escape double quotes
24 $memo_body = str_replace(',', ',', $memo_body); // Escape commas
26 $postdata_old = get_source($vars['refer']);
29 foreach($postdata_old as $line) {
30 if (preg_match("/^#memo\(?.*\)?$/i", $line)) {
31 if ($memo_no == $vars['memo_no']) {
32 $postdata .= '#memo(' . $memo_body . ')' . "\n";
40 $postdata_input = $memo_body . "\n";
43 if (md5(get_source($vars['refer'], TRUE, TRUE)) !== $vars['digest']) {
44 $title = $_title_collided;
45 $body = $_msg_collided . "\n";
47 $s_refer = htmlsc($vars['refer']);
48 $s_digest = htmlsc($vars['digest']);
49 $s_postdata_input = htmlsc($postdata_input);
52 <form action="$script?cmd=preview" method="post">
54 <input type="hidden" name="refer" value="$s_refer" />
55 <input type="hidden" name="digest" value="$s_digest" />
56 <textarea name="msg" rows="$rows" cols="$cols" id="textarea">$s_postdata_input</textarea><br />
61 page_write($vars['refer'], $postdata);
63 $title = $_title_updated;
65 $retvars['msg'] = & $title;
66 $retvars['body'] = & $body;
68 $vars['page'] = $vars['refer'];
73 function plugin_memo_convert()
75 global $vars, $digest;
76 global $_btn_memo_update;
77 static $numbers = array();
79 if (! isset($numbers[$vars['page']])) $numbers[$vars['page']] = 0;
80 $memo_no = $numbers[$vars['page']]++;
82 $data = func_get_args();
83 $data = implode(',', $data); // Care all arguments
84 $data = str_replace(',', ',', $data); // Unescape commas
85 $data = str_replace('"', '"', $data); // Unescape double quotes
86 $data = htmlsc(str_replace('\n', "\n", $data));
92 $_script = get_base_uri();
93 $_submit = '<input type="submit" name="memo" value="' . $_btn_memo_update . '" />';
96 $s_page = htmlsc($vars['page']);
97 $s_digest = htmlsc($digest);
101 <form action="$_script" method="post" class="memo">
103 <input type="hidden" name="memo_no" value="$memo_no" />
104 <input type="hidden" name="refer" value="$s_page" />
105 <input type="hidden" name="plugin" value="memo" />
106 <input type="hidden" name="digest" value="$s_digest" />
107 <textarea name="msg" rows="$s_rows" cols="$s_cols">$data</textarea><br />