作成日:2008年12月03日

プログラミングPHPウェブアプリケーション開発の定番言語であるPHP言語を、言語仕様から実用的なプログラミングテクニックまで詳細に解説。PHP言語を扱うすべてのユーザのための本格的解説書。

| /mng/all.php | 全HTMLファイルの更新ページ |
|---|---|
| /mng/create.php | 新規HTMLファイル作成ページ |
| /mng/edit.php | 既存HTML編集ページ |
| /mng/import.php | 既存CSS編集ページ - 既存JavaScript編集ページ |
| /mng/edit_tmp.php | テンプレートファイルの編集ページ |
| /mng/upload.php | ファイルアップロードページ |
| /mng/list.php | 管理ファイル一覧ページ |
| /mng/complete.php | 処理終了メッセージページ |
| /output/ | ファイル出力ディレクトリ |
| /output/mng.xml | ファイル・コンテンツ情報XML |
| /output/skin.css | スタイルシート(デフォルト) |
| /output/add_event.js | JavaScript(デフォルト) |
| $_POST['title'] | ページタイトル |
|---|---|
| $_POST['contents'] | コンテンツ |
| $_POST['file-path'] | 書出すファイルのパス |
| $_POST['put-type'] | リクエストの処理を分岐 |
| $_POST['title'] | ページタイトル |
|---|---|
| $_POST['contents'] | コンテンツ |
| $_POST['file-path'] | 書出すファイルのパス |
| $_POST['node-num'] | 既存ノードの番号 |
| $_POST['put-type'] | リクエストの処理を分岐 |
| $_POST['code'] | コード |
|---|---|
| $_POST['put-type'] | リクエストの処理を分岐 |
| $_POST['up-file'] | コード |
|---|
| $_POST['mng-file[n]'] | コード |
|---|---|
| $_POST['put-type'] | リクエストの処理を分岐 |
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<title>{title}</title>
<link type="text/css" href="output/skin.css" rel="stylesheet" />
<script type="text/javascript" src="output/add_event.js"></script>
</head>
<body>
<div id="header"></div>
<div id="contents">
<h1>{title}</h1>
<div id="contents-inner">{description}</div>
</div>
<div id="footer"></div>
</body>
</html>
<?php
/**************************
XMLファイルの読み込み
**************************/
//XMLノード情報を格納する多次元配列を宣言
$html_resource = array();
$files = array();
//DOMオブジェクト生成
$document = new DomDocument('1.0');
//XML読み込み
$xml_path = '../output/mng.xml';
$document -> Load($xml_path);
//XMLノードを配列に格納
//ルート
$root_node = $document -> getElementsByTagName('resource');
//テンプレートノード
$tmp_node = $document -> getElementsByTagName('tmp-text');
//ヘッダーノード
$header_node = $document -> getElementsByTagName('header');
//フッターノード
$footer_node = $document -> getElementsByTagName('footer');
//HTMLリソース
$resource_node = $document -> getElementsByTagName('html-resource');
//アイテム
$item_node = $document -> getElementsByTagName('item');
//ページタイトル
$title_node = $document -> getElementsByTagName('title');
//コンテンツ
$description_node = $document -> getElementsByTagName('description');
//ファイルパス
$link_node = $document -> getElementsByTagName('link');
//アップロードファイル情報
$file_node = $document -> getElementsByTagName('upload-file');
//アップロードファイル情報
$files_node = $document -> getElementsByTagName('file');
//XMLから読み込んだHTMLの情報を多次元配列に格納
for ($i = 0; $i < $item_node -> length; $i++) {
$array_item = $item_node -> item($i) -> nodeValue;
$array_title = $title_node -> item($i) -> nodeValue;
$array_description = $description_node -> item($i) -> nodeValue;
$array_link = $link_node -> item($i) -> nodeValue;
//(アイテム,ページタイトル,コンテンツ,ファイルパス,識別番号)
$html_resource[$i] = array($array_item,$array_title,$array_description,$array_link,$i);
}
//XMLから読み込んだアップロードファイルの情報を多次元配列に格納
for ($i = 0; $i < $file_node -> length; $i++) {
$array_file = $file_node -> item($i) -> nodeValue;
//(ファイルパス,識別番号)
$files = array($array_file,$i);
}
/**************************
HTMLファイルとXMLノードの書き出し
**************************/
//HTMLファイルの書き出し(ページタイトル,コンテンツ,ファイルパス)
function put_html($put_title,$put_description,$put_path){
// テンプレートファイルを読み込み、文字列を引数で置換
$html = file_get_contents("template.html");
$html = str_replace('{title}',$put_title,$html);
$html = str_replace('{contents}',$put_description,$html);
//置換した文字列でファイルを書き出す
$create_file = fopen($put_path ,"wb+");
fwrite($create_file ,$html);
fclose($create_file);
}
//XMLファイルの書き出し(ファイルの有無(y or n),num,title,description,link)
function append_xml($or,$xml_num,$xml_title,$xml_description,$xml_link){
global $xml_path;
global $document;
global $resource_node;
global $item_node;
//create node
$create_item_node = $document -> createElement("item");
$create_title_node = $document -> createElement("title",$xml_title);
$create_descriptin_node = $document -> createElement("description",$xml_description);
$create_link_node = $document -> createElement("link",$xml_link);
//appenChild
$create_item_node -> appendChild($create_title_node);
$create_item_node -> appendChild($create_descriptin_node);
$create_item_node -> appendChild($create_link_node);
//remove append
//ノードが既に有る
if($or == 'y'){
$resource_node -> item(0) -> appendChild($create_item_node);
$resource_node -> item(0) -> removeChild($item_node -> item($xml_num));
}else if($or == 'n'){//ノードが無い
$resource_node -> item(0) -> appendChild($create_item_node);
}
//ファイルを保存
$document -> save($xml_path);
}
//XMLファイルの書き出し(アップロードファイル)
function append_xml_upload($upfile_name){
global $xml_path;
global $document;
global $file_node;
//create node
$create_file_node = $document -> createElement("file",$upfile_name);
$file_node -> item(0) -> appendChild($create_file_node);
$document -> save($xml_path);
}
/**************************
HTMLファイルとXMLノードの削除
**************************/
//HTMLファイルの削除(ファイルパス)
function delete_html($delete_file){
unlink($delete_file);
}
//XMLノードの削除(ノード番号)
function delete_item_node($del_num){
global $xml_path;
global $document;
global $resource_node;
global $item_node;
global $link_node;
unlink($link_node -> item($del_num) -> nodeValue);
$resource_node -> item(0) -> removeChild($item_node -> item($del_num));
//ファイルを保存
$document->save($xml_path);
}
function delete_file_node($delete_num){
global $xml_path;
global $document;
global $file_node;
global $files_node;
unlink($files_node -> item($del_num) -> nodeValue);
$file_node -> item(0) -> removeChild($files_node -> item($delete_num));
//ファイルを保存
$document->save($xml_path);
}
function delete_tmp($node_type,$value){
global $xml_path;
global $document;
global $tmp_node;
global $header_node;
global $footer_node;
//ヘッダー更新
if($node_type == "h"){
$create_header_node = $document -> createElement("header",$value);
$tmp_node -> item(0) -> removeChild($header_node -> item(0));
$tmp_node -> item(0) -> appendChild($create_header_node);
}
//フッター更新
if($node_type == "f"){
$create_footer_node = $document -> createElement("footer",$value);
$tmp_node -> item(0) -> removeChild($footer_node -> item(0));
$tmp_node -> item(0) -> appendChild($create_footer_node);
}
//ファイルを保存
$document -> save($xml_path);
}
?>
<?php
require_once('global.php');
//XML宣言
print '<?xml version="1.0" encoding="UTF-8" ?>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Simple CMS</title>
<link href="mng.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="event.js"></script>
</head>
<body id="create">
<h1>Simple CMS<span> - HTMLファイルの新規作成</span></h1>
<?php include("nav.inc");?>
<div id="form-area">
<p id="erroe"></p>
<form action=" complete.php" method="post" onsubmit="return create_submit_check(this)" >
<input type="hidden" name="put-type" value="newfile" />
<ul>
<li><label for="page-title">ページタイトル</label>
<span><input type="text" name="page-title" id="page-title" /></span></li>
<li><label for="file-path">ファイルの名</label>
<span><input type="text" name="file-path" id="file-path" /></span></li>
<li><label for="contents">コンテンツ</label>
<span><textarea rows="10" cols="80" name="contents" id="contents" ></textarea></span></li>
</ul>
<input type="submit" value="書き出し" />
</form>
</div>
</body>
</html>
<?php
print '<?xml version="1.0" encoding="UTF-8" ?>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Simple CMS</title>
<link href="mng.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="event.js"></script>
</head>
<body id="edit">
<h1>Simple CMS<span> - HTMLファイルの更新</span></h1>
<?php include("nav.inc");?>
<div id="form-area">
<p><select><option>ファイルを選択してください</option></select></p>
<form action="complete.php" method="post">
<input type="hidden" name="put-type" value="edit" />
<input type="hidden" name="file-path" id="file-path" />
<input type="hidden" name="node-num" id="node-num" value="" />
<ul>
<li><label for="page-title">ページタイトル</label>
<span><input type="text" name="page-title" id="page-title" /></span></li>
<li><label for="contents">コンテンツ</label>
<span><textarea rows="10" cols="80" name="contents" id="contents" ></textarea></span></li>
</ul>
<input type="submit" value="更新" />
</form>
</div>
</body>
</html>
<?php
print '<?xml version="1.0" encoding="UTF-8" ?>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Simple CMS</title>
<link href="mng.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="event.js"></script>
</head>
<body>
<h1>Simple CMS<span> - CSS、JavaScriptファイルの更新</span></h1>
<?php include("nav.inc");?>
<div id="form-area">
<form action="import.php" method="post">
<p>
<select name="file" onchange="submit()">
<option value="../output/skin.css" />ファイルを選択してください</option>
<option value="../output/skin.css" />CSS</option>
<option value="../output/add_event.js" />JavaScript</option>
</select></p>
</form>
<form action="complete.php" method="post">
<input type="hidden" name="put-type" value="import" />
<input type="hidden" name="file-path" value="<?php print $_POST['file']; ?>" />
<ul>
<li><label for="code">コード</label>
<span><textarea rows="10" cols="80" name="code" id="code" ><?php
if(! is_null($_POST['file'])){
$file = $_POST['file'];
$get_contents = file_get_contents($file);
print $get_contents;
}
?></textarea></span></li>
</ul>
<input type="submit" value="更新" />
</form>
</div>
</body>
</html>
<?php
print '<?xml version="1.0" encoding="UTF-8" ?>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Simple CMS</title>
<link href="mng.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="event.js"></script>
</head>
<body>
<h1>Simple CMS<span> - ファイルアップロード</span></h1>
<?php include("nav.inc");?>
<div id="form-area">
<form action="complete.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="put-type" value="upload" />
<ul>
<li><label for="up-file">アップロードファイルの選択</label>
<span><input type="file" name="up-file" id="up-file" /></span></li>
</ul>
<input type="submit" value="アップロード" />
</form>
</div>
</body>
</html>
<?php
print '<?xml version="1.0" encoding="UTF-8" ?>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Simple CMS</title>
<link href="mng.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="event.js"></script>
</head>
<body>
<h1>Simple CMS<span> - テンプレートファイルの編集</span></h1>
<?php include("nav.inc");?>
<div id="form-area">
<form action="edit_tmp.php" method="post">
<p><select name="tmp" id="tmp"><option>ファイルを選択してください</option>
<option value="h">ヘッダー</option>
<option value="f">フッター</option></select></p>
</form>
<form action="complete.php" method="post">
<input type="hidden" name="different" id="different" value="" />
<input type="hidden" name="type" id="type" value="" />
<input type="hidden" name="put-type" id="put-type" value="tmp" />
<ul>
<li><label for="code">コード</label>
<span><textarea rows="10" cols="80" name="code" id="code" ></textarea></span></li>
</ul>
<input type="submit" value="更新" />
</form>
</div>
</body>
</html>
<?php
print '<?xml version="1.0" encoding="UTF-8" ?>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Simple CMS</title>
<link href="mng.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="ajax.js"></script>
</head>
<body>
<h1>Simple CMS<span> - 全HTMLファイルの更新</span></h1>
<?php include("nav.inc");?>
<div id="form-area">
<form action="complete.php" method="post">
<input type="hidden" name="put-type" value="all" />
<input type="submit" value="全HTMLファイルの更新" />
</form>
</div>
</body>
</html>
<?php
require_once('global.php');
//リクエストが送られたファイルを確認
$put_type = $_POST['put-type'];
//新規作成
if($put_type == 'newfile'){
$page_title = $_POST['page-title'];
$contents = $_POST['contents'];
$file_path = $_POST['file-path'];
$put_file_puth = '../output/'.$file_path.'.html';
put_html($page_title,$contents,$put_file_puth);
append_xml('n',0,$page_title,$contents,$put_file_puth);
}
//HTML 編集
if($put_type == 'edit'){
$page_title = $_POST['page-title'];
$contents = $_POST['contents'];
$file_path = $_POST['file-path'];
$node_num = $_POST['node-num'];
put_html($page_title,$contents,$file_path);
append_xml('y',$node_num,$page_title,$contents,$file_path);
}
//JS CSS 編集
if($put_type == 'import'){
$file_path = $_POST['file-path'];
$code = $_POST['code'];
// ファイルを読み込み、文字列で置換
$import_file = file_get_contents($file_path);
//置換した文字列でファイルを書き出す
$put_file = fopen($file_path ,"wb+");
fwrite($put_file ,$code);
fclose($put_file);
}
//ファイルアップロード
if($put_type == 'upload'){
if(is_uploaded_file($_FILES['up-file'][tmp_name])){
$file_dir = "../output/img/";
$file_path = $file_dir.$_FILES['up-file'][name];
copy($_FILES['up-file'][tmp_name],$file_path);
append_xml_upload($file_path);
}
}
//テンプレートの更新
if($put_type == 'tmp'){
$type = $_POST['type'];
$different = $_POST['different'];
$code = $_POST['code'];
$base_path = 'base.html';
$tmpfile_path = 'template.html';
$base = file_get_contents($base_path);
//ヘッダー更新
if($type == 'h'){
$base = str_replace('{header}',$code,$base);
$base = str_replace('{footer}',$different,$base);
delete_tmp('h',$code);
}
//フッター更新
if($type == 'f'){
$base = str_replace('{footer}',$code,$base);
$base = str_replace('{header}',$different,$base);
delete_tmp('f',$code);
}
$create_file = fopen($tmpfile_path ,"wb+");
fwrite($create_file ,$base);
fclose($create_file);
}
//全HTMLファイルの更新
if($put_type == 'all'){
global $xml_path;
global $document;
global $item_node;
$array_title = array();
$array_description = array();
$array_link = array();
for ($i = 0; $i < $item_node -> length; $i++) {
$array_title[] = $item_node -> item($i) -> getElementsByTagName('title') -> item(0) -> nodeValue;
$array_description[] = $item_node -> item($i) -> getElementsByTagName('description') -> item(0) -> nodeValue;
$array_link[] = $item_node -> item($i) -> getElementsByTagName('link') -> item(0) -> nodeValue;
$html = file_get_contents("template.html");
$html = str_replace('{title}',$array_title[$i],$html);
$html = str_replace('{contents}',$array_description[$i],$html);
//置換した文字列でファイルを書き出す
$create_file = fopen($array_link[$i] ,"wb+");
fwrite($create_file ,$html);
fclose($create_file);
}
}
print '<?xml version="1.0" encoding="UTF-8" ?>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Simple CMS</title>
<link href="mng.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="event.js"></script>
</head>
<body>
<h1>Simple CMS</h1>
<?php include("nav.inc");?>
<div id="complete">
<?php
global $output_dr;
//リクエストが送られたファイルによってメッセージを表示
if($put_type == 'newfile'){
print '<p>HTMLファイルを作成しました。<a href="'.'../output/'.$_POST['file-path'].'" target="_blank">確認する。</a></p>';
}
if($file_path == '../output/skin.css'){
print '<p>CSSファイルを更新しました。<a href="'.$_POST['file-path'].'" target="_blank">確認する。</a></p>';
}
if($file_path == '../output/add_event.js'){
print '<p>JavaScriptファイルを更新しました。<a href="'.$_POST['file-path'].'" target="_blank">確認する。</a></p>';
}
if($put_type == 'edit'){
print '<p>HTMLファイルを更新しました。<a href="'.'../output/'.$_POST['file-path'].'" target="_blank">確認する。</a></p>';
}
if($put_type == 'upload'){
print '<p>ファイルアップロードしました。<a href="../output/img/'.$_FILES['up-file'][name].'" target="_blank">確認する。</a></p>';
}
if($put_type == 'tmp'){
print '<p>テンプレートファイルを更新しました。<a href="template.html" target="_blank">確認する。</a></p>';
}
if($put_type == 'all'){
print '<p>全てのHTMLファイルを更新しました。</p>';
}
?>
</div>
</body>
</html>
<!ELEMENT resource (
tmp-text,
html-resource,
upload-file
)>
<!ELEMENT tmp-text (
(header|footer),
(footer|header)
)>
<!ELEMENT header (#PCDATA)>
<!ELEMENT footer (#PCDATA)>
<!ELEMENT html-resource (
item*
)>
<!ELEMENT item (
title,
description,
link
)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT link (#PCDATA)>
<!ELEMENT upload-file (
file*
)>
<!ELEMENT file (#PCDATA)>
var dom = new Object;
dom.event = new Object;
dom.event.addEventListener = function(elm,type,func,useCapture){if(! elm){return false;}if(! useCapture){useCapture = false;}if(elm.addEventListener){elm.addEventListener(type,func,false);}else if(elm.attachEvent){elm.attachEvent("on"+type,func); }else{return false; }return true;};
dom.event.removeEventListener = function(elm,type,func,useCapture){if(! elm){return false;}if(! useCapture){useCapture = false();}if(elm.removeEventListener){ elm.removeEventListener(type,func,false);}else if(elm.datachEvent){elm.datachEvent("on"+type,func);}else{return false;}return true;};
dom.event.stopPropagation = function(evt){ if(evt && evt.stopPropagation){ evt.stopPropagation();}else if(window.event){window.event.cancelBubble = true;}}
function sendRequest( url, callback, method, data ){var req = createXMLHTTP();if( !req ){ return; } req.onreadystatechange = function(){getResponse( req, callback );}
if(method.toUpperCase() == 'GET' && data.length > 0){url += '?'+ data;data = '';}req.open( method, url, true );req.setRequestHeader("Content-Type", "text/html; charset=UTF-8");req.send( data );}
function createXMLHTTP(){ if( window.XMLHttpRequest ){return new XMLHttpRequest();}else if( window.ActiveXObject ){try {return new ActiveXObject("MSXML2.XMLHTTP");}catch (e) {try {return new ActiveXObject("Microsoft.XMLHTTP");}catch(e2) {return null;}}}return null}function getResponse( req, callback )
{if( req.readyState == 4 ){if( req.responseText ){callback(req);}}}
//window load
var or = "n";//テンプレート読み込み切り替えグローバル変数
var num = 0;//読み込むXMLのitemノードの番号用グローバル変数
dom.event.addEventListener(window,"load",function(){
if(document.getElementById("put-table")){
SETXMLTABLE();
}
if(document.getElementById("edit")){
GETXML();
}
if(document.getElementById("edit")){
var trg = document.getElementsByTagName("select")[0];
dom.event.addEventListener(trg,"change",function(){
var selectNum = document.getElementsByTagName("select")[0].value;
num = selectNum;
SETXML();
});
}
var tmp = document.getElementById("tmp");
var typev = document.getElementById("type");
dom.event.addEventListener(tmp,"change",function(){
or = tmp.value;
typev.value = tmp.value;
GETTMPXML();
});
});
//XMLを読み込み、読み込んだXMLをHTMLに表示する関数を実行
function GETXML(){
sendRequest("../output/mng.xml",disp,"GET","");//読み込んだXMLをoptionに表示
}
function SETXML(){
sendRequest("../output/mng.xml",get,"GET","");//フォームエレメントにXMLデータを表示
}
function SETXMLTABLE(){
sendRequest("../output/mng.xml",listTable,"GET","");//読み込んだXMLをtableに表示
}
function GETTMPXML(){
sendRequest("../output/mng.xml",dispTmp,"GET","");//テンプレートヘッダ、フッタを読み込み
}
//読み込んだXMLをtableに表示
function listTable(req){
var putTable = document.getElementById("put-table");
var tableElement = new Array();
var tbodyElement = new Array();
for(var i=0;i<2;i++){
tableElement[i] = document.createElement("table");
tbodyElement[i] = document.createElement("tbody");
}
var itemNode = req.responseXML.getElementsByTagName("item");
for(var i=0;i<itemNode.length;i++){
var titleNode = itemNode[i].getElementsByTagName("title")[0].firstChild.nodeValue;
var titleNodeTxt = document.createTextNode(titleNode);
var linkNode = itemNode[i].getElementsByTagName("link")[0].firstChild.nodeValue;
var linkNodeTxt = document.createTextNode(linkNode);
var trowElement = document.createElement("tr");
var anchorElement = document.createElement("a");
anchorElement.href = linkNode;
anchorElement.target = "_blank";
anchorElement.appendChild(linkNodeTxt);
var checktdElement = document.createElement("td");
var checkElement = document.createElement("input");
checkElement.type = "checkbox";
checkElement.name = "file[]";
checkElement.value = i;
checktdElement.appendChild(checkElement);
var theadElement = document.createElement("th");
theadElement.appendChild(titleNodeTxt);
var tdataElement = document.createElement("td");
tdataElement.appendChild(anchorElement);
trowElement.appendChild(checktdElement);
trowElement.appendChild(theadElement);
trowElement.appendChild(tdataElement);
tbodyElement[0].appendChild(trowElement);
}
tableElement[0].appendChild(tbodyElement[0]);
putTable.appendChild(tableElement[0]);
var fileNodes = req.responseXML.getElementsByTagName("file");
for(var i=0;i<fileNodes.length;i++){
var fileNode = fileNodes[i].firstChild.nodeValue;
var trowElement = document.createElement("tr");
var anchorElement = document.createElement("a");
anchorElement.href = fileNode;
anchorElement.target = "_blank";
var linkNodeTxt = document.createTextNode(fileNode);
anchorElement.appendChild(linkNodeTxt);
var tdataElement = document.createElement("td");
tdataElement.appendChild(anchorElement);
var checktdElement = document.createElement("td");
var checkElement = document.createElement("input");
checkElement.type = "checkbox";
checkElement.name = "up-file[]";
checkElement.value = i;
checktdElement.appendChild(checkElement);
trowElement.appendChild(checktdElement);
trowElement.appendChild(tdataElement);
tbodyElement[1].appendChild(trowElement);
}
tableElement[1].appendChild(tbodyElement[1]);
putTable.appendChild(tableElement[1]);
}
//読み込んだXMLをoptionに表示
function disp(req){
if(document.getElementsByTagName("select")[0]){
var selectElement = document.getElementsByTagName("select")[0];
//XMLノード取得し、生成したオプションエレメントへセット
var itemNode = req.responseXML.getElementsByTagName("item");
for(var i=0;i<itemNode.length;i++){
var optionElement = document.createElement("option");
var titleNode = itemNode[i].getElementsByTagName("title")[0].firstChild.nodeValue;
var titleText = document.createTextNode(titleNode);
optionElement.appendChild(titleText);
optionElement.value = i;
selectElement.appendChild(optionElement);
}
}
}
//フォームエレメントにXMLデータを表示
function get(req){
var itemNode = req.responseXML.getElementsByTagName("item");
var titleNode = itemNode[num].getElementsByTagName("title")[0].firstChild.nodeValue;
var descriptionNode = itemNode[num].getElementsByTagName("description")[0].firstChild.nodeValue;
var linkNode = itemNode[num].getElementsByTagName("link")[0].firstChild.nodeValue;
if(document.getElementById("page-title")){
var pageTitle = document.getElementById("page-title");
pageTitle.value = titleNode;
}
if(document.getElementById("file-path")){
var filePath = document.getElementById("file-path");
filePath.value = linkNode;
}
if(document.getElementById("contents")){
var contents = document.getElementById("contents");
contents.value = descriptionNode;
}
if(document.getElementById("node-num")){
var nodeNum = document.getElementById("node-num");
nodeNum.value = num;
}
}
//テンプレートヘッダ、フッタを読み込み
function dispTmp(req){
var different = document.getElementById("different");
var code = document.getElementById("code");
var tmpText = req.responseXML.getElementsByTagName("tmp-text")[0];
var headerNode = tmpText.getElementsByTagName("header")[0].firstChild.nodeValue;
var footerNode = tmpText.getElementsByTagName("footer")[0].firstChild.nodeValue;
if(or=="h"){
different.value = footerNode;
code.value = headerNode;
}else if(or="f"){
different.value = headerNode;
code.value = footerNode;
}
}
//フォーム入力確認
function create_submit_check(){
var erroeMsg = new Array("ページタイトルが入力されていません ","ファイルのパスが入力されていません ","コンテンツが入力されていません ");
var eroeText = new Array();
var flg = 0;
for(var i=0;i<erroeMsg.length;i++){
eroeText.push(document.createTextNode(erroeMsg[i]));
}
var erroe = document.getElementById("erroe");
var pageTitle = document.getElementById("page-title");
var filePath = document.getElementById("file-path");
var contents = document.getElementById("contents");
if(pageTitle.value == ""){erroe.appendChild(eroeText[0]);}
if(filePath.value == ""){erroe.appendChild(eroeText[1]);}
if(contents.value == ""){erroe.appendChild(eroeText[2]);}
if(pageTitle.value == "" || filePath.value == "" || contents.value == ""){return false;}
}