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/db.inc.php | 4 ++++ code/message.inc.php | 4 ++++ code/pages.inc.php | 57 ++++++++++++++++++++-------------------------------- 3 files changed, 30 insertions(+), 35 deletions(-) (limited to 'code') diff --git a/code/db.inc.php b/code/db.inc.php index 2f83f58..3f5c444 100644 --- a/code/db.inc.php +++ b/code/db.inc.php @@ -13,5 +13,9 @@ $sql = $GLOBALS['conn']->Prepare($query); return $GLOBALS['conn']->Execute($sql, $args); } + + function DBInsertID() { + return $GLOBALS['conn']->Insert_ID(); + } } ?> diff --git a/code/message.inc.php b/code/message.inc.php index a3957d5..7b49a66 100644 --- a/code/message.inc.php +++ b/code/message.inc.php @@ -17,5 +17,9 @@ function Message($type, $data = array()) { return Subst($GLOBALS['message'][$type], $data); } + + function ErrorMessage($type, $data = array()) { + return '' . Subst($GLOBALS['message'][$type], $data) . ''; + } } ?> 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