正しいパスワードを入力してください。

'; } else { // パスワード一致 if( $pcmd == PLUGIN_MKPG_CMD_DELETE) { // リンク削除 plugin_mkpg_unlink($script, $html); $pcmd = PLUGIN_MKPG_CMD_COMPLETE; } else { // リンク作成 if($page == NULL || $html == NULL) { // ページ名、ファイル名が指定されていない $body = '

値が指定されていません。

'; } else { // リンクを作成する if(plugin_mkpg_makelink($script, $page, $html)==FALSE) { // 同じファイルが存在している $body = "

ファイル名 '$html.html' は既に存在しています。

"; } else { // 正常終了 → 一覧ページへ移動 $pcmd = PLUGIN_MKPG_CMD_COMPLETE; } } } } } if( $pcmd == PLUGIN_MKPG_CMD_COMPLETE) { $listpage = rawurlencode(PLUGIN_MKPG_LISTPAGE); header("Location: $script?$listpage"); exit; } if( $pcmd == PLUGIN_MKPG_CMD_DELETE) { $retval = plugin_mkpg_disp_deletelink($script,$html); $body .= $retval['body']; $msg = $retval['msg']; } else { // リンク作成フォームを表示 $retval = plugin_mkpg_disp_makelink($script,$page,$html); $body .= $retval['body']; $msg = $retval['msg']; } return array('msg'=>$msg, 'body'=>$body); } // リンク作成フォームを表示する function plugin_mkpg_disp_makelink($script, $pagename, $htmlname) { $pcmd = PLUGIN_MKPG_CMD_MAKELINK; $body = <<

リンク先ページ名:
HTMLファイル名: .html
管理者パスワード:

EOD; return array('msg'=>'HTMLリンクの作成', 'body'=>$body); } // リンク削除のパスワード入力画面を表示する function plugin_mkpg_disp_deletelink($script, $htmlname) { $pcmd = PLUGIN_MKPG_CMD_DELETE; $body = <<

管理者パスワード:

EOD; return array('msg'=>'HTMLリンクの削除', 'body'=>$body); } // 一覧ページに登録して、HTMLファイルを作成する function plugin_mkpg_makelink($script, $pagename, $htmlname) { global $now; $filename = PLUGIN_MKPG_HTML_DIR.$htmlname.'.html'; if(file_exists($filename)) { return FALSE; } // 一覧ページ $page = PLUGIN_MKPG_LISTPAGE; // 一覧ページへの登録 unset($pagedata); if( is_page(PLUGIN_MKPG_LISTPAGE,TRUE)==FALSE ) { // 初回の起動なので、ページを作成する $pagedata[] = PLUGIN_MKPG_FORMAT_HEAD; $pagedata[] = PLUGIN_MKPG_FORMAT_TITLE; $pagedata[] = PLUGIN_MKPG_FORMAT_MARK; } else { $pagedata = get_source($page); } $delcmd = PLUGIN_MKPG_CMD_DELETE; // 削除用のリンク $dellink = "[[削除>$script?cmd=mkpg&pcmd=$delcmd&html=$htmlname]]"; $pagelink = "[[$pagename]]"; $insdata = PLUGIN_MKPG_FORMAT_BODY; $insdata = str_replace("\x08_HTML_\x08",$filename, $insdata); $insdata = str_replace("\x08_PAGE_\x08",$pagelink,$insdata); $insdata = str_replace("\x08_NOW_\x08" ,$now ,$insdata); $insdata = str_replace("\x08_DEL_\x08" ,$dellink ,$insdata); $postdata = ''; $pattern = preg_quote(PLUGIN_MKPG_FORMAT_MARK,'/'); foreach ($pagedata as $line) { if(preg_match("/$pattern/",$line)) { $postdata .= $insdata; $insdata = ''; } $postdata .= $line; } $postdata .= $insdata; // マークが見つからなかったらここで追加される file_write(DATA_DIR,$page, $postdata, TRUE); // HTMLファイルの作成 $s_page = rawurlencode($pagename); $htmldat = << EOD; $fp = fopen( $filename, 'wb'); if( $fp==FALSE ) { die_message("HTMLファイルの書き込みに失敗しました"); } rewind($fp); flock($fp, LOCK_EX); fwrite($fp,$htmldat,strlen($htmldat)); fclose($fp); flock($fp, LOCK_UN); return TRUE; } // HTMLファイルのリンクを削除して、一覧表示から消去する function plugin_mkpg_unlink($script, $htmlname) { // HTMLファイルの削除 $filename = PLUGIN_MKPG_HTML_DIR.$htmlname.'.html'; @unlink($filename); // 一覧ページ $page = PLUGIN_MKPG_LISTPAGE; $pagedata = get_source($page); $postdata = ''; $pattern = preg_quote($htmlname,'/'); foreach ($pagedata as $line) { if(preg_match("/$pattern/",$line)==FALSE) { $postdata .= $line; } } file_write(DATA_DIR,$page, $postdata, TRUE); } ?>