function plugin_edit_action() { // global $vars, $_title_edit, $load_template_func; global $vars, $load_template_func; // if (PKWK_READONLY) die_message( _('PKWK_READONLY prohibits editing') ); if (auth::check_role('readonly')) { die_message(_('PKWK_READONLY prohibits editing')); } if (PKWK_READONLY == ROLE_AUTH && auth::get_role_level() > ROLE_AUTH) { die_message(_('PKWK_READONLY prohibits editing')); } if (isset($vars['realview'])) { return plugin_edit_realview(); } $page = isset($vars['page']) ? $vars['page'] : ''; check_editable($page, true, true); if (!is_page($page) && auth::is_check_role(PKWK_CREATE_PAGE)) { die_message(_('PKWK_CREATE_PAGE prohibits editing')); } if (isset($vars['preview']) || $load_template_func && isset($vars['template'])) { return plugin_edit_preview(); } else { if (isset($vars['write'])) { return plugin_edit_write(); } else { if (isset($vars['cancel'])) { return plugin_edit_cancel(); } } } $source = get_source($page); auth::is_role_page($source); $postdata = $vars['original'] = join('', $source); if (!empty($vars['id'])) { $postdata = plugin_edit_parts($vars['id'], $source); if ($postdata === FALSE) { unset($vars['id']); // なかったことに :) $postdata = $vars['original']; } } if ($postdata == '') { $postdata = auto_template($page); } return array('msg' => _('Edit of $1'), 'body' => edit_form($page, $postdata)); }
function plugin_edit_action() { // global $vars, $_title_edit, $load_template_func; global $vars, $load_template_func, $_string, $_edit_msg; $page = isset($vars['page']) ? $vars['page'] : null; if (empty($page)) { return array('msg' => $_edit_msg['msg_edit'], 'body' => $_edit_msg['err_empty_page']); } $wiki = Factory::Wiki($page); if (!$wiki->isEditable(true)) { Utility::dieMessage($_string['err_empty_page'], 403); } // if (PKWK_READONLY) die_message( sprintf($_string['error_prohibit'], 'PKWK_READONLY') ); if (Auth::check_role('readonly')) { Utility::dieMessage($_string['error_prohibit'], 403); } if (PKWK_READONLY == Auth::ROLE_AUTH && Auth::get_role_level() > Auth::ROLE_AUTH) { Utility::dieMessage(sprintf($_string['error_prohibit'], 'PKWK_READONLY'), 403); } if (isset($vars['realview'])) { return plugin_edit_realview(); } if (!$wiki->has() && Auth::is_check_role(PKWK_CREATE_PAGE)) { Utility::dieMessage(sprintf($_string['error_prohibit'], 'PKWK_CREATE_PAGE'), 403); } if (preg_match($wiki::INVALIED_PAGENAME_PATTERN, $page)) { Utility::dieMessage($_string['illegal_chars']); } if (isset($vars['preview']) || $load_template_func && isset($vars['template'])) { return plugin_edit_preview(); } else { if (isset($vars['write'])) { return plugin_edit_write(); } else { if (isset($vars['cancel'])) { return plugin_edit_cancel(); } } } $postdata = $vars['original'] = $wiki->get(true); Auth::is_role_page($postdata); if (isset($vars['id']) && !empty($vars['id'])) { $source = $wiki->get(); $postdata = plugin_edit_parts($vars['id'], $source); if ($postdata === FALSE) { unset($vars['id']); // なかったことに :) $postdata = $vars['original']; } } if (empty($postdata)) { // Check Page name length // http://pukiwiki.sourceforge.jp/dev/?PukiWiki%2F1.4%2F%A4%C1%A4%E7%A4%C3%A4%C8%CA%D8%CD%F8%A4%CB%2F%C4%B9%A4%B9%A4%AE%A4%EB%A5%DA%A1%BC%A5%B8%CC%BE%A4%CE%A5%DA%A1%BC%A5%B8%A4%CE%BF%B7%B5%AC%BA%EE%C0%AE%A4%F2%CD%DE%BB%DF $filename_max_length = 250; $filename = Utility::encode($page) . '.txt'; $filename_length = strlen($filename); if ($filename_length > $filename_max_length) { // Filename too long return array('msg' => $_edit_msg['title_edit'], 'body' => join("\n", array('<p class="alert alert-warning"><span class="fa fa-exclamation-triangle"></span>' . $_edit_msg['err_long'], '</p>', '<dl class="dl-horizontal">', '<dt>Page name</dt>', '<dd>' . Utility::htmlsc($page) . '</dd>', '<dt>Filename</dt>', '<dd>' . $filename . '</dd>', '<dt>Filename length</dt>', '<dd>' . $filename_length . '</dd>', '<dt>Filename limit</dt>', '<dd>' . $filename_max_length . '</dd>', '</dl>'))); } else { $postdata = $wiki->auto_template(); } } return array('msg' => sprintf($_edit_msg['title_edit'], $page), 'body' => Utility::editForm($page, $postdata)); }