summaryrefslogtreecommitdiffstats
path: root/code/modules.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'code/modules.inc.php')
-rw-r--r--code/modules.inc.php43
1 files changed, 27 insertions, 16 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']);
+ }
}
}