From e7359ccf2db89b1feec820d1c97583f720ae0d7a Mon Sep 17 00:00:00 2001 From: neoraider Date: Mon, 17 Apr 2006 23:17:05 +0000 Subject: Seiten verschoben. --- code/modules.inc.php | 43 +++++++++++++++++++++++++++---------------- code/pages.inc.php | 4 +++- 2 files changed, 30 insertions(+), 17 deletions(-) (limited to 'code') diff --git a/code/modules.inc.php b/code/modules.inc.php index 02aa9f2..605f8ca 100644 --- a/code/modules.inc.php +++ b/code/modules.inc.php @@ -1,5 +1,6 @@ code[$file])) @@ -11,16 +12,13 @@ } class Modules { - var $modules; - var $pages; - var $code; - var $templates; + var $modules = array(); + var $modules_enabled = array(); + var $pages = array(); + var $code = array(); + var $templates = array(); function Modules() { - $this->modules = array(); - $this->code = array(); - $this->templates = array(); - $dir = opendir('modules'); while($moddir = readdir($dir)) { @@ -36,11 +34,15 @@ if(!$name) continue; if(count($name['children']) != 1) continue; if(!is_string($name['children'][0])) continue; - $name = $name['children'][0]; - $this->module[$name] = array('name' => $name, 'code' => array(), - 'templates' => array()); + $desc = $GLOBALS['xmlparser']->FindTag($info, 'desc'); + if(!$desc) continue; + if(count($desc['children']) != 1) continue; + if(!is_string($desc['children'][0])) continue; + $desc = $desc['children'][0]; + + $this->modules[$name] = array('name' => $name, 'desc' => $desc, 'code' => array(), 'templates' => array()); $files = $GLOBALS['xmlparser']->FindTag($data, 'files'); if(!$files) continue; @@ -56,24 +58,21 @@ if(!$type) $type = 'c'; $pagename = $file['children'][0] . '.' . $type; - $realname = 'modules/' . $moddir . '/pages/' . strtr($file['children'][0], array(':' => '/')) - . '.' . $type . '.xml'; + $realname = 'modules/' . $moddir . '/pages/' . strtr($type, array('c' => 'content', 'e' => 'editor', 'n' => 'nav')) + . '/' . $file['children'][0] . '.xml'; - $this->pages[$pagename] = $realname; $this->modules[$name]['pages'][$pagename] = $realname; break; case 'code': $filename = 'code/' . $file['children'][0] . '.inc.php'; $realname = 'modules/' . $moddir . '/code/' . $file['children'][0] . '.inc.php'; - $this->code[$filename] = $realname; $this->modules[$name]['code'][$filename] = $realname; break; case 'template': $filename = 'templates/' . $file['children'][0] . '.inc.php'; $realname = 'modules/' . $moddir . '/templates/' . $file['children'][0] . '.inc.php'; - $this->templates[$filename] = $realname; $this->modules[$name]['templates'][$filename] = $realname; } } @@ -81,6 +80,18 @@ } closedir($dir); + + $res = $GLOBALS['db']->Execute('SELECT name FROM modules WHERE enabled = 1'); + + while($row = $res->FetchRow()) { + if(!array_key_exists($row[0], $this->modules)) continue; + + $this->modules_enabled[$row[0]] = $this->modules[$row[0]]; + + $this->pages = array_merge($this->pages, $this->modules[$row[0]]['pages']); + $this->code = array_merge($this->code, $this->modules[$row[0]]['code']); + $this->templates = array_merge($this->templates, $this->modules[$row[0]]['templates']); + } } } diff --git a/code/pages.inc.php b/code/pages.inc.php index 129167a..a6d9085 100644 --- a/code/pages.inc.php +++ b/code/pages.inc.php @@ -9,6 +9,7 @@ var $pages = array( 'Login.c' => null, 'Logout.c' => null, + 'Modules.c' => null, 'Pages.c' => null, 'Pages:Copy.c' => null, 'Pages:Delete.c' => null, @@ -115,7 +116,8 @@ } else { $filename = $GLOBALS['modules']->pages[$page . '.' . $type]; - if(!$filename) $filename = 'pages/' . strtr($page, array(':' => '/')) . '.' . $type . '.xml'; + if(!$filename) $filename = 'pages/' . strtr($type, array('c' => 'content', 'e' => 'editor', 'n' => 'nav')) + . '/' . $page . '.xml'; $xmldata = $GLOBALS['xmlparser']->ParseFile($filename); if(!$xmldata) return null; -- cgit v1.2.3