summaryrefslogtreecommitdiff
path: root/modules/module.module
diff options
context:
space:
mode:
Diffstat (limited to 'modules/module.module')
-rw-r--r--modules/module.module56
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>" : "&nbsp;";
+ $admin = ($module["admin"]) ? "<A HREF=\"admin.php?mod=$name\">admin</A>" : "&nbsp;";
+ $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();
+}
+
+?>