<?php
//error_reporting(E_ALL); 
//ini_set("display_errors", 1);
$dr = $_SERVER['DOCUMENT_ROOT'];
$loc = $_POST['loc'];
$pagename = $_POST['pagename'];
$m = $_POST['m'];
$pageid = $_POST['pageid'];
$pagetitle = $_POST['pagetitle'];
$showmenu = $_POST['showmenu'];
$template = $_POST['template'];
$relocateto = $_POST['relocateto'];
$changepagelocation = $_POST['changepagelocation'];
$oldtree = $_POST['oldtree'];
$currentfilename = $_POST['currentfilename'];

require_once($dr.'/scripts/diblibrary.php');
require_once($dr.'/scripts/dbConnect.php');

function propagate() {
	global $dr;
	$query = "select filename, tree from pages";
	$queryresource = mysql_query($query);
	while ($row = mysql_fetch_array($queryresource)) {
		extract($row);
		$tree = $dr."/".$tree;
		$tree = str_replace('/root', '', $tree);
		$filepath = $tree."/".$filename;
		unlink($filepath);
		mkdir($tree);
		copy($dr."/templates/main.php", $filepath);
	};
};
function deletepage($loc) {
	global $dr;
	echo("deleting $loc ...");
	$tree = explode("/", $loc);
	$filename = array_pop($tree);
	$tree = implode("/", $tree);
	$filepath = $tree;
	if ($tree == "") { $tree = "root"; } else { $tree = "root/".$tree; };
	$query = "delete from pages where tree=\"$tree\" and filename=\"$filename\"";
	mysql_query($query);
	if ($filename == "home.php") {
		delTree($dr."/".$filepath);
	} else {
		unlink($dr."/".$loc);
	};
};
if ($m == 'addnew') {
	if ($pagename == "") {
		echo("<h2>Oops, there's a problem...</h2><p><strong>You must enter a page name to create a new page. Please try again</strong></p>");
	} else {
		// Determine present location
		$tree = explode("/", $loc);
		$tree = implode("/", $tree); if ($tree == "") { $tree = "root"; } else { $tree = "root/".$tree; };
		if ($pagename[0] == "/") {
			// Add a folder and home.php within
			$pagename = substr($pagename, 1);
			$foldername = strtolower($pagename);
			$foldername = str_replace(" ", "-", $foldername);
			$foldername = str_replace(":", "", $foldername);
			$foldername = str_replace("'", "", $foldername);
			$searchtree = $tree."/".$foldername;
			$query = "select * from pages where tree like \"$searchtree\"";
			$result = mysql_query($query);
			$numrows = mysql_num_rows($result);
			if ($numrows > 0) {
				echo("<h2>Oops, there's a problem...</h2><p><strong>Sorry, this name already exists at this level. Please try another or move to a different level.</strong></p>");
			} else {
				$query = "insert into pages (pagename, filename, tree, title, menuorder, showmenu, links, editable) values (\"$pagename\", \"home.php\", \"$searchtree\", \"none\", 0, \"N\", \"\", \"Y\")";
				$result = mysql_query($query);
				$propagate = true;
				$filename = "home.php";
				if ($loc != "") {	$loc = $loc."/".$foldername."/".$filename; } else { $loc = $foldername."/".$filename; };
				$m = "edit";
			};
		} else {
			// Just add the page
			/*$filename = strtolower($pagename);
			$filename = str_replace(" ", "-", $filename);
			$filename = str_replace(":", "", $filename);
			$filename = str_replace(",", "", $filename);
			$filename = $filename.".php";
			$query = "select * from pages where tree like \"$tree\" and filename like \"$filename\"";
			$result = mysql_query($query);
			$numrows = mysql_num_rows($result);
			if ($numrows > 0) {
				echo("<h2>Oops, there's a problem...</h2><p><strong>Sorry, this filename has already been used. Please try another.</strong></p>");
			} else {
				$query = "insert into pages (pagename, filename, tree, title, menuorder, showmenu, links, editable) values (\"$pagename\", \"$filename\", \"$tree\", \"none\", 0, \"N\", \"\", \"Y\")";
				$result = mysql_query($query) or die("Couldn't add page");
				$propagate = true;
				$loc = $loc."/".$filename;
				$m = "edit";
			};*/
			// Add a folder and home.php within
			$foldername = strtolower($pagename);
			$foldername = str_replace(" ", "-", $foldername);
			$foldername = str_replace(":", "", $foldername);
			$foldername = str_replace("'", "", $foldername);
			$searchtree = $tree."/".$foldername;
			$query = "select * from pages where tree like \"$searchtree\"";
			$result = mysql_query($query);
			$numrows = mysql_num_rows($result);
			if ($numrows > 0) {
				echo("<h2>Oops, there's a problem...</h2><p><strong>Sorry, this name already exists at this level. Please try another or move to a different level.</strong></p>");
			} else {
				$query = "insert into pages (pagename, filename, tree, title, menuorder, showmenu, links, editable) values (\"$pagename\", \"home.php\", \"$searchtree\", \"none\", 0, \"N\", \"\", \"Y\")";
				$result = mysql_query($query);
				$propagate = true;
				$filename = "home.php";
				if ($loc != "") {	$loc = $loc."/".$foldername."/".$filename; } else { $loc = $foldername."/".$filename; };
				$m = "edit";
			};
		};
		if ($propagate) {
			propagate();
		};
	};
};
if ($m == "edit") {
	$tree = explode("/", $loc);
	$filename = array_pop($tree);
	$tree = implode("/", $tree); if ($tree == "") { $tree = "root"; } else { $tree = "root/".$tree; };
	$query = "select * from pages where tree like \"$tree\" and filename like \"$filename\"";
	$result = mysql_query($query);
	$row = mysql_fetch_array($result);
	$row = array_map('stripslashes', $row);
	extract($row);
	?>
	<div><h2>Your page details - '<?=$pagename?>'</h2><p><strong>You can change your page's details here:</strong></strong></p></div>
	<form name="changepage" action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data">
	<input type="hidden" name="pageid" value="<?=$ID?>" />
	<p><strong>Page name:</strong><br /><input type="text" name="pagename" value="<?=$pagename?>" /></p>
	<p><strong>Complete file path:</strong><br /><span id="loc"><?=$loc?></span></p>
	<p><strong>Page title:</strong><br /><input type="text" name="title" value="<?=$title?>" /></p>
	<p><strong>Template type:</strong><br />
	<select name="template">
		<option value=""<?php if ($template == '') {?> selected="selected"<?php }; ?>>Default</option>
		<option value="feature.php"<?php if ($template == 'feature.php') {?> selected="selected"<?php }; ?>>Full width (no sidebar)</option>
	</select>
	</p>
	<p><strong>Show in menu?</strong><br />
	<select name="showinmenu">
		<option value="Y"<?php if ($showmenu == 'Y') {?> selected="selected"<?php }; ?>>Yes</option>
		<option value="N"<?php if ($showmenu == 'N') {?> selected="selected"<?php }; ?>>No</option>
	</select>
	</p>
	<p><strong>Relocate to:</strong><br />
	<input type="hidden" name="oldtree" value="<?=$tree?>" />
	<input type="hidden" name="currentfilename" value="<?=$filename?>" />
	<select name="relocateto">
		<?php
		$query = "select distinct tree as foldertree from pages";
		$result = mysql_query($query);
		while ($row = mysql_fetch_array($result)) {
			extract($row);
			if ($foldertree == "root") { $foldertext = "/ (top level)"; } else { $foldertext = substr($foldertree, 4); };
			?>
			<option value="<?=$foldertree?>"<?php if ($tree == $foldertree) { ?> selected="selected"<?php }; ?>><?=$foldertext?></option>
			<?php
		};
		?>
	</select>
	</p>
	<p><div class="pagemanagerbutton" id="deletepage">Delete page</div><div class="pagemanagerbutton" id="savechanges">Save changes</div><div class="pagemanagerbutton" id="gotopage">Go to page</div></p>
	</form>
	<?php
};
if ($m == "deletepage") {
	deletepage($loc);
};
if ($m == "plottree") {
	$treearray = array();
	$query = "select pagename, tree, filename from pages where editable = \"Y\" order by tree";
	$result = mysql_query($query);
	while ($row = mysql_fetch_array($result)) {
		extract($row);
		$treestring = $tree."/".$filename."|".$pagename;  $treestring = str_replace("root/", "", $treestring);
		$treearray[$treestring] = $treestring;
	};
	$treearray = explodeTree($treearray, "/");
	?>
	<h2>The pages within your site</h2>
	<p><strong>Click on a page to change its details, or click 'Add New' to make a new page</strong></p>
	<?php
	plotTree($treearray);
};
if ($m == 'savechanges') {
	echo("saving changes...");
	if ($changepagelocation == "true") {
		$oldfilename = $currentfilename;
		if ($oldfilename == "home.php") {
			// rename to parent folder name, if not at top level
			if ($oldtree == "root") {
				$currentfilename = "no-name.php";
			} else {
				$parentfolder = array_pop(explode("/", $oldtree));
				$currentfilename = $parentfolder.".php";
			};
		};
		$query = "update pages set filename=\"$currentfilename\", pagename=\"$pagename\", title=\"$pagetitle\", tree=\"$relocateto\", template=\"$template\", showmenu=\"$showmenu\" where ID=$pageid";
		mysql_query($query);
		if ($oldfilename == "home.php") {
			$query = "insert into pages (pagename, title, filename, tree, template, showmenu, content) values (\"$pagename\", \"$pagetitle\", \"home.php\", \"$oldtree\", \"$template\", \"$showmenu\", \"<!>loc:main<!>type:html<!>Edit this content\")";
			mysql_query($query);
			propagate();
		} else {
			
			$delfilepath = $dr . substr($oldtree, 4) . "/" . $oldfilename;
			unlink($delfilepath);
			propagate();
		};
	} else {
		$query = "update pages set pagename=\"$pagename\", title=\"$pagetitle\", tree=\"$relocateto\", template=\"$template\", showmenu=\"$showmenu\" where ID=$pageid";
		mysql_query($query);
	};
};

?>