function plugin_rewritemap_action() { global $vars; if (empty($vars['page'])) { return; } if (exist_plugin('statichtml')) { $vars['page'] = PluginStatichtml::decode($vars['page']); } $page = plugin_rewritemap_get_pagename($vars['page']); if (is_page($page)) { check_readable($page, true, true); header_lastmod($page); $vars['page'] = $page; return array('msg' => '', 'body' => ''); } $redirect = plugin_rewritemap_get_redirect($page); $nextpage = plugin_rewritemap_get_pagename($redirect); if (is_page($nextpage)) { header('HTTP/1.0 301 Moved Permanently'); header('Location: ' . plugin_rewritemap_url($nextpage)); exit; } else { header('HTTP/1.0 404 Not Found'); exit('404 - Not Found'); } }
function plugin_read_action() { global $vars, $_title_invalidwn, $_msg_invalidiwn; $page = isset($vars['page']) ? $vars['page'] : ''; if (is_page($page)) { // ページを表示 check_readable($page, true, true); header_lastmod($page); return array('msg' => '', 'body' => ''); } else { if (!PKWK_SAFE_MODE && is_interwiki($page)) { return do_plugin_action('interwiki'); // InterWikiNameを処理 } else { if (is_pagename($page)) { $vars['cmd'] = 'edit'; return do_plugin_action('edit'); // 存在しないので、編集フォームを表示 } else { // 無効なページ名 return array('msg' => $_title_invalidwn, 'body' => str_replace('$1', htmlsc($page), str_replace('$2', 'WikiName', $_msg_invalidiwn))); } } } }
function plugin_read_action() { global $vars, $_title_invalidwn, $_msg_invalidiwn; $page = isset($vars['page']) ? $vars['page'] : ''; if (is_page($page)) { // ページを表示 check_readable($page, true, true); header_lastmod($page); return array('msg' => '', 'body' => ''); // } else if (! PKWK_SAFE_MODE && is_interwiki($page)) { } else { if (!auth::check_role('safemode') && is_interwiki($page)) { return do_plugin_action('interwiki'); // InterWikiNameを処理 } else { if (is_pagename($page)) { $realpages = get_autoaliases($page); if (count($realpages) == 1) { $realpage = $realpages[0]; if (is_page($realpage)) { header('HTTP/1.0 301 Moved Permanently'); header('Location: ' . get_page_location_uri($realpage)); return; } elseif (is_url($realpage)) { header('HTTP/1.0 301 Moved Permanently'); header('Location: ' . $realpage); return; } elseif (is_interwiki($realpage)) { header('HTTP/1.0 301 Moved Permanently'); $vars['page'] = $realpage; return do_plugin_action('interwiki'); // header('Location'); } else { // 存在しない場合、直接編集フォームに飛ばす // To avoid infinite loop header('Location: ' . get_location_uri('edit', $realpage)); return; } } elseif (count($realpages) >= 2) { $body = '<p>'; $body .= _('This pagename is an alias to') . '<br />'; $link = ''; foreach ($realpages as $realpage) { $link .= '[[' . $realpage . '>' . $realpage . ']]&br;'; } $body .= make_link($link); $body .= '</p>'; return array('msg' => _('Redirect'), 'body' => $body); } $vars['cmd'] = 'edit'; return do_plugin_action('edit'); // 存在しないので、編集フォームを表示 } else { // 無効なページ名 return array('msg' => $_title_invalidwn, 'body' => str_replace('$1', htmlspecialchars($page), str_replace('$2', 'WikiName', $_msg_invalidiwn))); } } } }
function plugin_read_action() { global $vars, $script; global $post; $qm = get_qm(); $qt = get_qt(); $page = isset($vars['page']) ? $vars['page'] : ''; //キャッシュを無効化 if (isset($vars['word'])) { $qt->enable_cache = false; } if (is_page($page)) { // ページを表示 check_readable($page, true, true); header_lastmod($page); return array('msg' => '', 'body' => ''); } else { if (!PKWK_SAFE_MODE && is_interwiki($page)) { return do_plugin_action('interwiki'); // InterWikiNameを処理 } else { if (is_pagename($page)) { $vars['cmd'] = 'edit'; // 編集権限があれば、編集モードへ。なければ、メッセージを表示 $editable = edit_auth($page, FALSE, FALSE); if ($editable) { return do_plugin_action('edit'); // 存在しないので、編集フォームを表示 } else { //404 NOT FOUND header('HTTP/1.1 404 Not Found'); return array('msg' => $qm->m['fmt_err_notfoundpage_title'], 'body' => $qm->replace('fmt_err_notfoundpage', $script)); } } else { //EUCエンコーディングかチェック if (mb_detect_encoding($post['page'], 'UTF-8,EUC-JP') == 'EUC-JP') { $u_page = mb_convert_encoding($post['page'], 'UTF-8', 'EUC-JP'); $enc_page = rawurlencode($u_page); //redirect header("HTTP/1.1 301 Moved Permanently"); header('Location: ' . $script . '?' . $enc_page); exit; } // 無効なページ名 return array('msg' => $qm->m['fmt_title_invalidiwn'], 'body' => $qm->replace('fmt_err_invalidiwn', h($page), 'WikiName')); } } } }