summaryrefslogtreecommitdiffstats
path: root/code/pages.inc.php
diff options
context:
space:
mode:
authorneoraider <devnull@localhost>2006-01-13 00:49:05 +0100
committerneoraider <devnull@localhost>2006-01-13 00:49:05 +0100
commit8b89c8c8a9001c5f5b38465ceb58306fc6f0659e (patch)
treea5b57b8809365c8e3184ae81bd193986367e31b8 /code/pages.inc.php
parentecb8233cd7e9fbacd7614028115161565e841d87 (diff)
downloadneon-8b89c8c8a9001c5f5b38465ceb58306fc6f0659e.tar
neon-8b89c8c8a9001c5f5b38465ceb58306fc6f0659e.zip
Navigationsleiste verbessert (ungenutzte Eintr?ge werden ausgeblendet); einige kleinere ?nderungen + Bugs gefixt
Diffstat (limited to 'code/pages.inc.php')
-rw-r--r--code/pages.inc.php53
1 files changed, 53 insertions, 0 deletions
diff --git a/code/pages.inc.php b/code/pages.inc.php
new file mode 100644
index 0000000..d529602
--- /dev/null
+++ b/code/pages.inc.php
@@ -0,0 +1,53 @@
+<?PHP
+ if(!defined('PAGES_INC')) {
+ define('PAGES_INC', 1);
+
+ include('code/db.inc.php');
+ include('code/user.inc.php');
+ include('code/handlers.inc.php');
+
+ class Pages {
+ function Get($name) {
+ if(!$this->Exists($name)) {
+ $message = $GLOBALS['handlers']['default']->HandleErrorMessage('PageNotFound', array('page' => $name));
+
+ if(!$message['title']) $message['title'] = $name;
+
+ return $message;
+ }
+
+ $res = DBQuery('SELECT handler, data FROM pages WHERE name = ?', $name);
+
+ if(!$this->HasAccess($name)) {
+ $message = $GLOBALS['handlers'][$res->fields[0]]->HandleErrorMessage('Forbidden', array('page' => $name));
+
+ if(!$message['title']) $message['title'] = $name;
+
+ return $message;
+ }
+
+ parse_str($res->fields[1], $data);
+ $data['_page'] = $name;
+
+ return $GLOBALS['handlers'][$res->fields[0]]->HandleContentData($data);
+ }
+
+ function Exists($name) {
+ $res = DBQuery('SELECT id FROM pages WHERE name = ?', $name);
+
+ return ($res->RecordCount() > 0);
+ }
+
+ function HasAccess($name) {
+ $user = $GLOBALS['user'];
+
+ $res = DBQuery('SELECT access FROM pages WHERE name = ?', $name);
+
+ return ((($user->GetUid() != 0) && ($user->GetGid() == 0))
+ || ($res->fields[0] & (1 << $user->GetGid())) != 0);
+ }
+ }
+
+ $pages = new Pages;
+ }
+?>