$_title_edit,'body'=>edit_form($vars['page'],$postdata));
}
// プレビュー
function plugin_edit_preview()
{
global $script,$post;
global $_title_preview,$_msg_preview,$_msg_preview_delete;
if (array_key_exists('template_page',$post) and is_page($post['template_page'])) {
$post['msg'] = join('',get_source($post['template_page']));
}
$post['msg'] = preg_replace("/^#freeze\n/",'',$post['msg']);
$postdata_input = $post['msg'];
if (!empty($post['add'])) {
if ($post['add_top']) {
$postdata = $post['msg']."\n\n".@join('',get_source($post['page']));
}
else {
$postdata = @join('',get_source($post['page']))."\n\n".$post['msg'];
}
}
else {
$postdata = $post['msg'];
}
$body = "$_msg_preview
\n";
if ($postdata == '') {
$body .= "$_msg_preview_delete";
}
$body .= "
\n";
if ($postdata != '') {
$postdata = explode("\n",$postdata);
$postdata = drop_submit(convert_html($postdata));
if (!empty($post['viewtag'])) {
$postdata = preg_replace("/(<[^\/][^>]*>)/e",'"$1".htmlspecialchars("$1")', $postdata);
$postdata = preg_replace("/(<\/[^>]+>)/e",'htmlspecialchars("$1")."$1"', $postdata);
}
$body .= <<
$postdata
EOD;
}
$body .= edit_form($post['page'],$postdata_input,$post['digest'],FALSE);
return array('msg'=>$_title_preview,'body'=>$body);
}
// 書き込みもしくは追加もしくはコメントの挿入
function plugin_edit_write()
{
global $script,$post,$vars;
global $_title_collided,$_msg_collided_auto,$_msg_collided,$_title_deleted;
$retvars = array();
// 手書きの#freezeを削除
$post['msg'] = preg_replace('/^#freeze\n/','',$post['msg']);
$postdata_input = $post['msg'];
if (!empty($post['add'])) {
if (!empty($post['add_top'])) {
$postdata = $post['msg'];
$postdata .= "\n\n";
$postdata .= @join('',get_source($post['page']));
}
else {
$postdata = @join('',get_source($post['page']));
$postdata .= "\n\n";
$postdata .= $post['msg'];
}
}
else {
$postdata = $post['msg'];
}
$oldpagesrc = join('',get_source($post['page']));
$oldpagemd5 = md5($oldpagesrc);
if ($oldpagemd5 != $post['digest']) {
$retvars['msg'] = $_title_collided;
$post['digest'] = $vars['digest'] = $oldpagemd5;
list($postdata_input,$auto) = do_update_diff($oldpagesrc,$postdata_input,$post['original']);
$retvars['body'] = ($auto ? $_msg_collided_auto : $_msg_collided)."\n";
if (TRUE) {
global $do_update_diff_table;
$retvars['body'] .= $do_update_diff_table;
}
$retvars['body'] .= edit_form($post['page'],$postdata_input,$oldpagemd5,FALSE);
}
else {
page_write($post['page'],$postdata);
if ($postdata != '') {
header("Location: $script?".rawurlencode($post['page']));
exit;
}
$retvars['msg'] = $_title_deleted;
$retvars['body'] = str_replace('$1',htmlspecialchars($post['page']),$_title_deleted);
}
return $retvars;
}
?>