summaryrefslogtreecommitdiffstats
path: root/code
diff options
context:
space:
mode:
authorneoraider <devnull@localhost>2006-04-18 01:17:05 +0200
committerneoraider <devnull@localhost>2006-04-18 01:17:05 +0200
commite7359ccf2db89b1feec820d1c97583f720ae0d7a (patch)
tree4321a817497f064457c184364a9a2745bf5bd629 /code
parent1a78cfbd3315897aa84b7a5d6735d54d94a590a1 (diff)
downloadneon-e7359ccf2db89b1feec820d1c97583f720ae0d7a.tar
neon-e7359ccf2db89b1feec820d1c97583f720ae0d7a.zip
Seiten verschoben.
Diffstat (limited to 'code')
-rw-r--r--code/modules.inc.php43
-rw-r--r--code/pages.inc.php4
2 files changed, 30 insertions, 17 deletions
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 @@
<?PHP
require_once('code/xmlparser.inc.php');
+ require_once('code/db.inc.php');
function require_mod($file) {
if(isset($GLOBALS['modules']->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;