From af3aaf3630d4634a85d7d912f751f3bf36633278 Mon Sep 17 00:00:00 2001 From: neoraider Date: Wed, 1 Feb 2006 23:50:04 +0000 Subject: Editoren implementiert. ErrorMessage verschoben. --- code/pages.inc.php | 57 +++++++++++++++++++++--------------------------------- 1 file changed, 22 insertions(+), 35 deletions(-) (limited to 'code/pages.inc.php') diff --git a/code/pages.inc.php b/code/pages.inc.php index f24f283..24d0ec4 100644 --- a/code/pages.inc.php +++ b/code/pages.inc.php @@ -7,56 +7,43 @@ include('code/handlers.inc.php'); class Pages { - function Get($name, $type) { - if(!$this->Exists($name, $type)) { - $message = $GLOBALS['handlers']['default']->ErrorMessage('PageNotFound', array('page' => $name)); - - if(!$message['title']) $message['title'] = $name; - - return $message; - } + function Get($name, $type, $extra = null) { + if(!$this->Exists($name, $type)) + return array('title' => $name, + 'content' => ErrorMessage('PageNotFound', array('page' => $name))); - $res = DBQuery('SELECT handler, data FROM pages WHERE name = ? AND type = ?', array($name, $type)); + $res = DBQuery('SELECT id, handler, data FROM pages WHERE name = ? AND type = ?', array($name, $type)); - if(!$this->HasAccess($name, $type)) { - $message = $GLOBALS['handlers'][$res->fields[0]]->ErrorMessage('Forbidden', array('page' => $name)); - - if(!$message['title']) $message['title'] = $name; - - return $message; - } + if(!$this->HasAccess($name, $type)) + return array('title' => $name, + 'content' => ErrorMessage('Forbidden', array('page' => $name))); - parse_str($res->fields[1], $data); + parse_str($res->fields[2], $data); $data = array_map('stripslashes', $data); + if($extra) $data = array_merge($data, $extra); + $data['_id'] = $res->fields[0]; $data['_page'] = $name; - return $GLOBALS['handlers'][$res->fields[0]]->Get($data); + return $GLOBALS['handlers'][$res->fields[1]]->Get($data); } function Edit($name, $type) { - if(!$this->Exists($name, $type)) { - $message = $GLOBALS['handlers']['default']->ErrorMessage('PageNotFound', array('page' => $name)); - - if(!$message['title']) $message['title'] = $name; - - return $message; - } + if(!$this->Exists($name, $type)) + return array('title' => $name, + 'content' => ErrorMessage('PageNotFound', array('page' => $name))); - $res = DBQuery('SELECT handler, data FROM pages WHERE name = ? AND type = ?', array($name, $type)); + $res = DBQuery('SELECT id, handler, data FROM pages WHERE name = ? AND type = ?', array($name, $type)); - if(!$GLOBALS['user']->IsAdmin()) { - $message = $GLOBALS['handlers'][$res->fields[0]]->ErrorMessage('Forbidden', array('page' => $name)); - - if(!$message['title']) $message['title'] = $name; - - return $message; - } + if(!$GLOBALS['user']->IsAdmin()) + return array('title' => $name, + 'content' => ErrorMessage('Forbidden', array('page' => $name))); - parse_str($res->fields[1], $data); + parse_str($res->fields[2], $data = null); $data = array_map('stripslashes', $data); + $data['_id'] = $res->fields[0]; $data['_page'] = $name; - return $GLOBALS['handlers'][$res->fields[0]]->Edit($data); + return $this->Get($res->fields[1], 'e', array('_data' => $data)); } function Exists($name, $type) { -- cgit v1.2.3