summaryrefslogtreecommitdiff
path: root/modules/system/system.module
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2003-01-26 12:54:56 +0000
committerDries Buytaert <dries@buytaert.net>2003-01-26 12:54:56 +0000
commitad9b03033a2bfcbb4cb0b7d64698d6b12a57e13f (patch)
tree5f6464158a7b83fdbc1e9225e919545a471bfdcd /modules/system/system.module
parent37fe442d89bc5c36376be24e3908f207f8daea3e (diff)
downloadbrdo-ad9b03033a2bfcbb4cb0b7d64698d6b12a57e13f.tar.gz
brdo-ad9b03033a2bfcbb4cb0b7d64698d6b12a57e13f.tar.bz2
- Some first changes to the system.module; tidied up some code, preparations
for theme settings and borrowing some ideas from Kjartan's long-awaited system.module patch.
Diffstat (limited to 'modules/system/system.module')
-rw-r--r--modules/system/system.module91
1 files changed, 59 insertions, 32 deletions
diff --git a/modules/system/system.module b/modules/system/system.module
index a7f974069..9f59c00ed 100644
--- a/modules/system/system.module
+++ b/modules/system/system.module
@@ -35,15 +35,16 @@ function system_perm() {
function system_link($type) {
if ($type == "admin" && user_access("administer site configuration")) {
menu_add("site configuration", url("admin/system"), "Site configuration.", NULL, NULL, 2);
- menu_add("site settings", url("admin/system/options"), "Site settings.", NULL, "site configuration", 1);
- menu_add("content filters", url("admin/system/filters"), "Content filters.", NULL, "site configuration", 2);
- menu_add("module selector", url("admin/system/modules"), "Module selector.", NULL, "site configuration", 3);
- menu_add("theme selector", url("admin/system/themes"), "Theme selector.", NULL, "site configuration", 4);
+ menu_add("module selector", url("admin/system/modules/selector"), "Module selector.", NULL, "site configuration", 1);
+ menu_add("module settings", url("admin/system/modules/settings"), "Site settings.", NULL, "site configuration", 2);
+ menu_add("theme selector", url("admin/system/themes/selector"), "Theme selector.", NULL, "site configuration", 3);
+ // menu_add("theme settings", url("admin/system/themes/settings"), "Theme selector.", NULL, "site configuration", 4);
+ menu_add("content filters", url("admin/system/filters"), "Content filters.", NULL, "site configuration", 5);
menu_add("help", url("admin/system/help"), "Help.", NULL, "site configuration", 9);
}
}
-function system_view_options() {
+function system_view_modules() {
global $conf, $cmodes, $corder;
// general settings:
@@ -95,6 +96,17 @@ function system_view_options() {
$output .= "<h3><a name=\"$name\">". ucfirst(t("$name")) ." " . t("settings") . "</a></h3>". module_invoke($name, "conf_options") ."<hr />\n";
}
}
+
+ return $output;
+}
+
+function system_view_themes() {
+ foreach (theme_list() as $name) {
+ if (module_hook($name, "conf_options")) {
+ $output .= "<h3><a name=\"$name\">". ucfirst(t("$name")) ." " . t("settings") . "</a></h3>". module_invoke($name, "conf_options") ."<hr />\n";
+ }
+ }
+
return $output;
}
@@ -112,7 +124,7 @@ function system_save($edit = array()) {
variable_set($name, $value);
}
- return t("The configuration options have been saved.");
+ return t("the configuration options have been saved.");
}
function system_default($edit = array()) {
@@ -120,30 +132,33 @@ function system_default($edit = array()) {
variable_del($name);
}
- return t("The configuration options have been reset to their default values.");
+ return t("the configuration options have been reset to their default values.");
}
function system_view($type) {
+ $links = array();
+
switch ($type) {
case "filters":
$form = system_view_filters();
break;
+ case "themes":
+ $form = system_view_themes();
+ break;
default:
foreach (module_list() as $name) {
if (module_hook($name, "conf_options")) {
- $links[] = l(t("$name"), "admin/system#$name");
+ $links[] = "<a href=\"#$name\">". t("$name") ."</a>";
}
}
-
- $output = "<small>". implode(" :: ", $links) ."</small><hr />";
- $form = system_view_options();
+ $form = system_view_modules();
}
$form .= form_submit(t("Save configuration"));
$form .= form_submit(t("Reset to defaults"));
- return $output . form($form);
+ print implode(" &middot; ", $links) ."<br />". form($form);
}
function system_dirscan($dir, $mask, $nomask = array(".", "..", "CVS")) {
@@ -167,9 +182,21 @@ function system_dirscan($dir, $mask, $nomask = array(".", "..", "CVS")) {
}
function system_listing($type, $directory, $required = array()) {
+ $op = arg(2);
+
// Make sure we set $type correctly
$type = $type != 'theme' ? "module" : "theme";
+ if ($op == t("Save $type settings")) {
+ db_query("UPDATE system SET status = '0' WHERE type = '%d'", $type);
+ foreach ($edit["status"] as $filename => $status) {
+ db_query("UPDATE system SET status = '%d' WHERE filename = '$filename'", $status);
+ }
+ cache_clear_all();
+
+ $message = t("the configuration options have been saved.");
+ }
+
// Find files in the directory.
$files = system_dirscan($directory, "\.$type$");
@@ -214,7 +241,9 @@ function system_listing($type, $directory, $required = array()) {
$output = table($header, $rows) . form_submit(t("Save $type settings"));
- return form($output);
+ print form($output);
+
+ return $message;
}
function system_admin() {
@@ -229,38 +258,36 @@ function system_admin() {
case "help":
print system_help();
break;
- case t("Save module settings"):
- db_query("UPDATE system SET status = '0' WHERE type = 'module'");
- foreach ($edit["status"] as $filename => $status) {
- db_query("UPDATE system SET status = %d WHERE filename = '$filename'", $status);
- }
- cache_clear_all();
case "modules":
- // Note: changing this also requires changing module_init() @ includes/module.inc.
- $required = array("modules/admin.module", "modules/user.module", "modules/system.module", "modules/watchdog.module");
- print system_listing("module", "modules", $required);
- break;
- case t("Save theme settings"):
- db_query("UPDATE system SET status = '0' WHERE type = 'theme'");
- foreach ($edit["status"] as $filename => $status) {
- db_query("UPDATE system SET status = %d WHERE filename = '$filename'", $status);
+ if (arg(3) == "settings") {
+ print status(system_view("modules"));
}
- cache_clear_all();
+ else {
+ // NOTE: changing this also requires changing module_init() @ "includes/module.inc".
+ $required = array("modules/admin.module", "modules/user.module", "modules/system.module", "modules/watchdog.module");
+ print status(system_listing("module", "modules", $required));
+ }
+ break;
case "themes":
- print system_listing("theme", "themes");
+ if (arg(3) == "settings") {
+ print status(system_view("themes"));
+ }
+ else {
+ print status(system_listing("theme", "themes"));
+ }
break;
case t("Reset to defaults"):
print status(system_default($edit));
- print system_view(arg(3));
+ print system_view(arg(2));
cache_clear_all();
break;
case t("Save configuration"):
print status(system_save($edit));
- print system_view(arg(3));
+ print system_view(arg(2));
cache_clear_all();
break;
default:
- print system_view($op);
+ print system_view(arg(2));
}
}
else {