session_start();
ob_start();
require_once("model/init.php");
require_once("functions.php");
require_once("content.php");
header("Content-Type: text/html; charset=\"utf-8\"");
$admin = isset($_SESSION['admin']) && $_SESSION['admin'];
$defaultPageID = 1;
$db = DB_DataObject::factory("gm_page");
$db->domain = $_SERVER['HTTP_HOST'];
if ($db->find(true))
{
$defaultPageID = $db->pageID;
}
if (!isset($_SESSION['suche'])) $_SESSION['suche'] = "";
if (isset($_REQUEST['suche']))
{
$_SESSION['suche'] = preg_replace("[^\w\s\*-]", "", $_REQUEST['suche']);
}
if (!isset($_SESSION["message"])) $_SESSION["message"] = "";
$errorPageID = 17;
$sidebar_admin = "425,424";
$basis = "/";
if (isset($_REQUEST['adminOn']))
{
if (isset($_SERVER['PHP_AUTH_USER']))
{
$db = DB_DataObject::factory("sysAdresse");
$db->query("SELECT sysAdresse.*
FROM sysAdresse
JOIN sysAktion ON (sysAktion.adrID = sysAdresse.adrID)
JOIN sysAttribut ON (sysAttribut.aktionID = sysAktion.aktionID)
WHERE sysAdresse.login = '{$_SERVER['PHP_AUTH_USER']}'
AND sysAktion.typ = 'RECHTE_AUFGABEN'
AND sysAttribut.schluessel = 'Recht'
AND sysAttribut.wert = 'WEBSEITEN_MALLORCA'
");
//echo $_SERVER['PHP_AUTH_USER']; die();
if ($db->fetch() && (crypt($_SERVER['PHP_AUTH_PW'], $db->passwort) == $db->passwort))
{
$_SESSION['admin'] = true;
$admin = true;
}
}
if (!$admin)
{
// $users = array('mallorca' => 'tobias');
// if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($users[$_SERVER['PHP_AUTH_USER']]) || $users[$_SERVER['PHP_AUTH_USER']] != $_SERVER['PHP_AUTH_PW'])
// {
header('WWW-Authenticate: Basic realm="Administration"');
header('HTTP/1.0 401 Unauthorized');
echo 'not authorized';
exit;
}
}
elseif (isset($_REQUEST['adminOff']))
{
$_SESSION['admin'] = false;
$admin = false;
}
// ----------------------------- Seite aus DB holen ----------------------
$pageID = isset($_REQUEST['pageID']) ? $_REQUEST['pageID'] : $defaultPageID;
$page = DB_DataObject::factory("gm_page");
if (!$page->get($pageID))
{
if ($pageID != 0 || $admin) // nur Admin darf Root aufrufen, um neue Site anzulegen
{
$page->get($errorPageID); // Fehlerseite anzeigen
}
}
// ---------------------------- Administrator-Tätigkeiten ----------------
if (isset($_REQUEST['createPage']))
{
$db = DB_DataObject::factory("gm_page");
$parentID = $pageID;
$db->create($pageID);
header("Location:".$db->getLink());
die();
}
if (isset($_REQUEST['modifyPage']))
{
if ($_REQUEST['p']['parentID'] == $pageID) die("Schwerer Fehler! Seite kann nicht sich selbst übergeordnet werden!");
$page->setFrom($_REQUEST['p']);
if (isset($_REQUEST['redirection']) && $_REQUEST['redirection'] != "")
{
if ($_REQUEST['redirection'] == "0")
{
$page->content = "";
$page->title = "hier titel eintragen";
$page->keywords = "";
$page->description = "";
}
else
{
$page->content = "";
$page->title = "Weiterleitung";
$page->keywords = "Weiterleitung";
$page->description = "Weiterleitung";
}
}
if (isset($_REQUEST['include']) && $_REQUEST['include'] != "")
{
if ($_REQUEST['include'] == "0")
{
$page->content = "";
$page->title = "hier titel eintragen";
}
else
{
$page->content = "";
//$page->title = "Include";
}
}
$page->update();
header("Location:".$page->getLink());
die();
}
if (isset($_REQUEST['deletePage']))
{
$parentID = $page->parentID;
if ($parentID != 0)
{
$check = DB_DataObject::factory("gm_page");
$check->parentID = $page->pageID;
if ($check->find() > 0)
{
echo "Seite kann nicht gelöscht werden, da Unterseiten existieren.";
$_SESSION["message"] .= "Seite kann nicht gelöscht werden, da Unterseiten existieren.";
}
else
{
$_SESSION["message"] .= "Seite gelöscht";
$page->delete();
$parent = DB_DataObject::factory("gm_page");
$parent->get($parentID);
header("Location:".$parent->getLink());
die();
}
}
else
{
echo "Hauptseite kann nicht gelöscht werden";
}
}
if (isset($_REQUEST['moveUp']))
{
$_SESSION["message"] .= "Verschiebe Seite nach oben";
$page->moveUp();
header("Location:".$page->getLink());
die();
}
if (isset($_REQUEST['moveDown']))
{
$_SESSION["message"] .= "Verschiebe Seite nach unten";
$page->moveDown();
header("Location:".$page->getLink());
die();
}
// ----------- Inhalt auslesen ---------------------------------
$content_dom = new DOMDocument();
if ($page->content == "")
{
$page->content = "";
}
$content_dom->loadXML($page->content);
$content_doc = $content_dom->documentElement;
$content_list = $content_doc->getElementsByTagName("*");
// ---------------- Includes bearbeiten -----------------------
if ($content_list->item(0) && $content_list->item(0)->nodeName == "include" && !$admin)
{
$item = $content_list->item(0);
$includepage = DB_DataObject::factory("gm_page");
$includepage->get($item->getAttribute("pageID"));
$content_dom = new DOMDocument();
if ($includepage->content == "") { $includepage->content = ""; }
$content_dom->loadXML($includepage->content);
$content_doc = $content_dom->documentElement;
$content_list = $content_doc->getElementsByTagName("*");
$page->title = $includepage->title;
$page->keywords = $includepage->keywords;
$page->description = $includepage->description;
}
// ------------------------------ Weiterleitungen ------------------------
if ($content_list->item(0) && $content_list->item(0)->nodeName == "redirection" && !$admin)
{
$item = $content_list->item(0);
if (preg_match(";^[0-9]*\$;", $item->getAttribute("pageID")))
{
$newpage = DB_DataObject::factory("gm_page");
$newpage->get($item->getAttribute("pageID"));
/*
if ($page->domain != "") // sonderbehandlung bei startseite, hier keine weiterleitung sondern intern
{
readfile("http://".$_SERVER["SERVER_NAME"]."/".$newpage->getLink());
die();
}
*/
header("HTTP/1.1 301 Moved Permanently");
header("Location:".$newpage->getLink());
}
else
{
$lnk = $item->getAttribute("pageID");
header("HTTP/1.1 301 Moved Permanently");
header("Location:".$lnk);
}
die();
}
// ------------------------- Administrator-Tätigkeiten im Inhalt -----------
if (isset($_REQUEST['saveContent']))
{
$type = $_REQUEST['type'];
$partnum = $_REQUEST['partnum'];
$newnode = $content_dom->createElement("part");
$newnode->setAttribute("type", $type);
if ($type == "news")
{
$newnode->setAttribute("datum", $_REQUEST['datum']);
$newnode->setAttribute("bereich", $_REQUEST['bereich']);
}
$newtext = $content_dom->createCDataSection($_REQUEST['content']);
$newnode->appendChild($newtext);
$item = $content_list->item($partnum);
$content_doc->replaceChild($newnode, $item);
$item = $content_list->item($partnum);
$page->content = $content_dom->saveXML();
$page->update();
header("Location:".$page->getLink());
die();
}
if (isset($_REQUEST['delPart']))
{
$partnum = $_REQUEST['delPart'];
$content_doc->removeChild($content_list->item($partnum));
$page->content = $content_dom->saveXML();
$page->update();
$_SESSION["message"] .= "Abschnitt gelöscht";
header("Location:".$page->getLink());
die();
}
if (isset($_REQUEST['newPart']))
{
$newnode = $content_dom->createElement("part");
$newnode->setAttribute("type", "html");
$content_doc->appendChild($newnode);
$page->content = $content_dom->saveXML();
$page->update();
header("Location:".$page->getLink());
die();
}
if (isset($_REQUEST['newPartInsert']))
{
$_SESSION["message"] .= "Erstelle neuen Bereich";
$first = $content_list->item($_REQUEST['newPartInsert']+1);
$newnode = $content_dom->createElement("part");
$newnode->setAttribute("type", "html");
$content_doc->insertBefore($newnode, $first);
$page->content = $content_dom->saveXML();
$page->update();
header("Location:".$page->getLink());
die();
}
if (isset($_REQUEST['upPart']))
{
$_SESSION["message"] .= "Verschiebe Bereich nach oben";
$partnum = $_REQUEST['upPart'];
if ($partnum > 0)
{
$a = $content_list->item($partnum);
$b = $content_list->item($partnum-1);
$c = $content_dom->createElement("part");
$content_doc->replaceChild($c, $a);
$content_doc->replaceChild($a, $b);
$content_doc->replaceChild($b, $c);
$page->content = $content_dom->saveXML();
$page->update();
}
header("Location:".$page->getLink());
die();
}
if (isset($_REQUEST['downPart']))
{
$_SESSION["message"] .= "Verschiebe Bereich nach unten";
$partnum = $_REQUEST['downPart'];
if ($partnum < $content_list->length-1)
{
$a = $content_list->item($partnum);
$b = $content_list->item($partnum+1);
$c = $content_dom->createElement("part");
$content_doc->replaceChild($c, $a);
$content_doc->replaceChild($a, $b);
$content_doc->replaceChild($b, $c);
$page->content = $content_dom->saveXML();
$page->update();
}
header("Location:".$page->getLink());
die();
}
if (isset($_REQUEST['rememberPart']))
{
$_SESSION["message"] .= "Bereich in die Zwischenablage kopiert.";
$partnum = $_REQUEST['rememberPart'];
$part = $content_list->item($partnum);
$_SESSION['remember'] = array("text" => $part->textContent, "type" => $part->getAttribute("type"));
}
if (isset($_REQUEST['rememberInsertPart']))
{
$_SESSION["message"] .= "Füge kopierten Bereich ein.";
$partnum = $_REQUEST['rememberInsertPart'];
$newnode = $content_dom->createElement("part");
$newnode->setAttribute("type", $_SESSION['remember']['type']);
$newtext = $content_dom->createCDataSection($_SESSION['remember']['text']);
$newnode->appendChild($newtext);
$content_doc->appendChild($newnode);
$page->content = $content_dom->saveXML();
$page->update();
header("Location:".$page->getLink());
die();
}
if (isset($_REQUEST['copyfrom']))
{
$copyPageID = $_REQUEST['copyfrom'];
$copyPage = DB_DataObject::factory("gm_page");
$copyPage->get($copyPageID);
$ccontent_dom = new DOMDocument();
$ccontent_dom->loadXML($copyPage->content);
$ccontent_doc = $ccontent_dom->documentElement;
$ccontent_list = $ccontent_doc->getElementsByTagName("*");
foreach($ccontent_list as $p)
{
$content_doc->appendChild($content_dom->importNode($p, true));
}
$page->content = $content_dom->saveXML();
$page->update();
header("Location:".$page->getLink());
die();
}
// ------------------------------ Parents bestimmen ---------------------
$pageID = $page->pageID;
$parentPage = array();
$id = $pageID;
$parent = clone($page);
$parentPage[] = clone($page);
$ebene = 0;
$topmenu = $page->topmenu;
$parenttext = "";
while ($parent->parentID != 0)
{
$ebene++;
$id = $parent->parentID;
$parent = DB_DataObject::factory("gm_page");
$parent->get($id);
$parentPage[] = clone($parent);
$parenttext .= "Parent: {$parent->pageID} {$parent->name}
";
if ($parent->topmenu > 0) $topmenu = $parent->topmenu;
if ($ebene > 10) die("Schwerer Fehler! Endlosrekursion im Menüsystem. Bitte Administrator verständigen und folgende Information geben: pageID=$pageID");
}
$parentPage = array_reverse($parentPage);
// --------------- Domain prüfen ----------------------------------------
if (($parentPage[0]->domain != "" && $parentPage[0]->domain != $_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] != "www2.startzeiten.de")
{
if ($parentPage[0]->domain == "old.startzeiten.de") $parentPage[0]->domain = "www.startzeiten.de";
$url = "http://".$parentPage[0]->domain.$_SERVER['REQUEST_URI'];
header("HTTP/1.1 301 Moved Permanently (1)");
header("Location: $url");
die();
}
if (isset($parentPage[1]->domain) && ($parentPage[1]->domain != "" && $parentPage[1]->domain != $_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] != "www2.startzeiten.de")
{
$url = "http://".$parentPage[1]->domain.$_SERVER['REQUEST_URI'];
header("HTTP/1.1 301 Moved Permanently (2)");
header("Location: $url");
die();
}
// sonderbehandlung für gga, unterseiten "rubriken" dürfen nicht direkt aufgerufen werden
if (isset($parentPage[1]) && $parentPage[1]->pageID == 4536)
{
ob_get_clean();
ob_start();
print_r($_REQUEST);
print_r($_SERVER);
$s = ob_get_clean();
// mail("tr@fdg.de", "aufruf gga rubriken", $s);
// header("HTTP/1.0 404 Not found");
header("Location:http://www.germangolfacademy.de{$_SERVER['REQUEST_URI']}");
die();
}
// ------------------ URL prüfen ---------------------------------------
if ($_SERVER['REQUEST_URI'] != "/" && $page->normalizeUrl && strpos($_SERVER['REQUEST_URI'], $page->getLink()) === false)
{
// if (isset($_SESSION['redir_wrong_url']) && $_SESSION['redir_wrong_url'] == $pageID)
{
// if ($admin) echo " Bitte Admin verständigen: Redir-Fehler {$_SERVER['REQUEST_URI']}";
}
// else
{
$_SESSION['redir_wrong_url'] = $pageID;
header("HTTP/1.1 301 Moved Permanently (3)");
header("Location: ".$page->getLink());
sleep(1);
die();
}
}
// -------------------- Seite aufbauen --------------------------------
require_once("menu.php");
//
//
?>
__TITLE__