diff options
Diffstat (limited to 'modules/module.module')
-rw-r--r-- | modules/module.module | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/modules/module.module b/modules/module.module new file mode 100644 index 000000000..f07b46a68 --- /dev/null +++ b/modules/module.module @@ -0,0 +1,56 @@ +<? + +$module = array("admin" => "module_admin"); + +function module_admin_rehash() { + global $repository; + + $result = db_query("SELECT * FROM modules"); + while ($module = db_fetch_object($result)) { + module_rehash($module->name); + } + + foreach ($repository as $name=>$module) { + module_rehash($name); + } +} + +function module_admin_display() { + global $output; + + function module_row($name, $module) { + global $output; + + $view = ($module["page"]) ? "<A HREF=\"module.php?mod=$name\">view</A>" : " "; + $admin = ($module["admin"]) ? "<A HREF=\"admin.php?mod=$name\">admin</A>" : " "; + $output .= " <TR><TD>$name</TD><TD>$view</TD><TD>$admin</TD><TD><A HREF=\"admin.php?mod=module&op=rehash&name=$name\">rehash</A></TD></TR>\n"; + } + + $output .= "<FORM ACTION=\"admin.php?mod=module\" METHOD=\"post\">\n"; + $output .= "<TABLE BORDER=\"1\" CELLPADDING=\"2\" CELLSPACING=\"2\">\n"; + $output .= " <TR><TH>module</TH><TH COLSPAN=\"3\">operations</TH></TR>\n"; + + module_iterate("module_row"); + + $output .= "</TABLE>\n"; + $output .= "<INPUT NAME=\"op\" TYPE=\"submit\" VALUE=\"Rehash modules\">\n"; + $output .= "</FORM>\n"; + print $output; +} + +function module_admin() { + global $op, $name; + + switch ($op) { + case "Rehash modules": + module_admin_rehash(); + break; + case "rehash": + module_rehash($name); + break; + } + + module_admin_display(); +} + +?> |