diff options
Diffstat (limited to 'code/pages.inc.php')
-rw-r--r-- | code/pages.inc.php | 108 |
1 files changed, 52 insertions, 56 deletions
diff --git a/code/pages.inc.php b/code/pages.inc.php index 710bb44..ca0dbc1 100644 --- a/code/pages.inc.php +++ b/code/pages.inc.php @@ -1,65 +1,61 @@ <?PHP - if(!defined('PAGES_INC')) { - define('PAGES_INC', 1); - - require_once('code/db.inc.php'); - require_once('code/user.inc.php'); - require_once('code/handlers.inc.php'); + require_once('code/db.inc.php'); + require_once('code/user.inc.php'); + require_once('code/handlers.inc.php'); + + class Pages { + function Get($name, $type, $extra = null) { + if(!$this->Exists($name, $type)) + return array('title' => $name, + 'content' => ErrorMessage('PageNotFound', array('page' => $name))); + + $res = $GLOBALS['db']->Execute('SELECT id, handler, data FROM pages WHERE name = ? AND type = ?', array($name, $type)); + + if(!$this->HasAccess($name, $type)) + return array('title' => $name, + 'content' => ErrorMessage('Forbidden', array('page' => $name))); + + parse_str($res->fields[2], $data); + $data = array_map('Unquote', $data); + if($extra) $data = array_merge($data, $extra); + $data['_id'] = $res->fields[0]; + $data['_page'] = $name; + + return $GLOBALS['handlers'][$res->fields[1]]->Get($data); + } - class Pages { - function Get($name, $type, $extra = null) { - if(!$this->Exists($name, $type)) - return array('title' => $name, - 'content' => ErrorMessage('PageNotFound', array('page' => $name))); - - $res = $GLOBALS['db']->Execute('SELECT id, handler, data FROM pages WHERE name = ? AND type = ?', array($name, $type)); - - if(!$this->HasAccess($name, $type)) - return array('title' => $name, - 'content' => ErrorMessage('Forbidden', array('page' => $name))); - - parse_str($res->fields[2], $data); - $data = array_map('Unquote', $data); - if($extra) $data = array_merge($data, $extra); - $data['_id'] = $res->fields[0]; - $data['_page'] = $name; - - return $GLOBALS['handlers'][$res->fields[1]]->Get($data); - } + function Edit($name, $type) { + if(!$this->Exists($name, $type)) + return array('title' => $name, + 'content' => ErrorMessage('PageNotFound', array('page' => $name))); - function Edit($name, $type) { - if(!$this->Exists($name, $type)) - return array('title' => $name, - 'content' => ErrorMessage('PageNotFound', array('page' => $name))); - - $res = $GLOBALS['db']->Execute('SELECT id, handler, data FROM pages WHERE name = ? AND type = ?', array($name, $type)); - - if(!$GLOBALS['user']->IsAdmin()) - return array('title' => $name, - 'content' => ErrorMessage('Forbidden', array('page' => $name))); - - parse_str($res->fields[2], $data = null); - $data = array_map('Unquote', $data); - $data['_id'] = $res->fields[0]; - $data['_page'] = $name; - - return $this->Get($res->fields[1], 'e', array('_data' => $data)); - } + $res = $GLOBALS['db']->Execute('SELECT id, handler, data FROM pages WHERE name = ? AND type = ?', array($name, $type)); - function Exists($name, $type) { - $res = $GLOBALS['db']->Execute('SELECT id FROM pages WHERE name = ? AND type = ?', array($name, $type)); - - return ($res->RecordCount() > 0); - } + if(!$GLOBALS['user']->IsAdmin()) + return array('title' => $name, + 'content' => ErrorMessage('Forbidden', array('page' => $name))); - function HasAccess($name, $type) { - $gid = $GLOBALS['user']->GetGid(); - $res = $GLOBALS['db']->Execute('SELECT access FROM pages WHERE name = ? AND type = ?', array($name, $type)); - - return ($GLOBALS['user']->IsAdmin() || (ord($res->fields[0][$gid/8]) & (1 << ($gid%8))) != 0); - } + parse_str($res->fields[2], $data = null); + $data = array_map('Unquote', $data); + $data['_id'] = $res->fields[0]; + $data['_page'] = $name; + + return $this->Get($res->fields[1], 'e', array('_data' => $data)); + } + + function Exists($name, $type) { + $res = $GLOBALS['db']->Execute('SELECT id FROM pages WHERE name = ? AND type = ?', array($name, $type)); + + return ($res->RecordCount() > 0); } - $pages = new Pages; + function HasAccess($name, $type) { + $gid = $GLOBALS['user']->GetGid(); + $res = $GLOBALS['db']->Execute('SELECT access FROM pages WHERE name = ? AND type = ?', array($name, $type)); + + return ($GLOBALS['user']->IsAdmin() || (ord($res->fields[0][$gid/8]) & (1 << ($gid%8))) != 0); + } } + + $GLOBALS['pages'] = new Pages; ?> |