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__