summaryrefslogtreecommitdiff
path: root/modules/settings.module
blob: acb5af2cd2dd9f225099982612386289863cd66d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php

function settings_conf() {
  global $conf, $cmodes, $corder, $themes;

  // general settings:
  $output .= "<H3>General settings</H3>\n";
  $output .= form_textfield(t("Name"), "site_name", variable_get(site_name, "drupal"), 30, 55, t("The name of this website."));
  $output .= form_textfield(t("Slogan"), "site_slogan", variable_get(site_slogan, ""), 30, 55, t("The slogan of this website"));
  $output .= form_textfield(t("URL"), "site_url", variable_get(site_url, "http://drupal/"), 30, 55, t("The fully qualified URL of this website: starts with \"http://\" and ends with a trailing slash!"));
  $output .= form_textfield(t("E-mail address"), "site_mail", variable_get(site_mail, "root@localhost"), 30, 55, t("A valid e-mail address for this website, used by the auto-mailer to create new user accounts."));
  $output .= form_textarea(t("Footer message"), "site_footer", variable_get(site_footer, ""), 55, 3, t("This text will be displayed at the bottom of each page.  Useful for adding a copyright notice to your pages."));
  $output .= form_textfield(t("Anonymous user"), "anonymous", variable_get(anonymous, "Anonymous"), 30, 55, t("The name used to indicate anonymous users."));
  $output .= "<HR>\n";

  // node settings:
  $output .= "<H3>Node settings</H3>\n";
  $output .= form_select(t("Default number of nodes to display"), "default_nodes_main", variable_get(default_nodes_main, 10), array(10 => 10, 15 => 15, 20 => 20, 25 => 25, 30 => 30), t("The default maximum number of nodes to display on the main page."));
  $output .= "<HR>\n";

  // comment settings:
  $output .= "<H3>Comment settings</H3>\n";
  $output .= form_select(t("Default display mode"), "default_comment_mode", $conf[default_comment_mode], $cmodes, t("The default mode in which comments are displayed."));
  $output .= form_select(t("Default display order"), "default_comment_order", $conf[default_comment_order], $corder, t("The default order in which comments are displayed."));
  for ($count = -1; $count < 6; $count++) $threshold[$count] = t("Filter") ." - $count";
  $output .= form_select(t("Default filter threshold"), "default_comment_threshold", $conf[default_comment_threshold], $threshold, t("The default threshold used to filter comments."));
  $output .= "<HR>\n";

  // submission settings:
  $output .= "<H3>Submission settings</H3>\n";
  $size = array(1000 => "1.000 characters", 5000 => "5.000 characters", 10000 => "10.000 characters", 15000 => "15.000 characters", 30.000 => "30.000 characters", 50000 => "50.000 characters", 100000 => "100.000 characters");
  $output .= form_select(t("Maximum submission size"), "max_input_size", variable_get(max_input_size, 10000), $size, t("The maximum number of characters someone can enter in a form."));
  $rate = array(1 => "Maximum 1 every second", 5 => "Maximum 1 every 5 seconds", 15 => "Maximum 1 every 15 seconds", 30 => "Maximum 1 every 30 seconds", 60 => "Maximum 1 every minute", 300 => "Maximum 1 every 5 minutes", 900 => "Maximum 1 every 15 minutes", 1800 => "Maximum 1 every 30 minutes", 3600 => "Maximum 1 every hour", 21600 => "Maximum 1 every 6 hour", 43200 => "Maximum 1 every 12 hour");
  $output .= form_select(t("Maximum node rate"), "max_node_rate", variable_get(max_node_rate, 900), $rate, t("The maximum submission rate for nodes.  Its purpose is to stop potential abuse or denial of service attacks."));
  $output .= form_select(t("Maximum comment rate"), "max_comment_rate", variable_get(max_comment_rate, 120), $rate, t("The maximum submission rate for comments.  Its purpose is to stop potential abuse or denial of service attacks."));
  $output .= "<HR>\n";

  // theme settings:
  $output .= "<H3>Theme settings</H3>\n";
  foreach ($themes as $key=>$value) $options .= "<OPTION VALUE=\"$key\"". (variable_get(theme_default, key($themes)) == $key ? " SELECTED" : "") .">$key</OPTION>\n";
  $output .= form_item(t("Default theme"), "<SELECT NAME=\"edit[theme_default]\">$options</SELECT>", t("The default theme as seen by new visitors and anonymous users."));
  $output .= "<HR>\n";

  // development settings:
  $output .= "<H3>Development settings</H3>\n";
  $output .= form_select(t("Display timings"), "dev_timing", variable_get(dev_timing, 0), array("Disabled", "Enabled"), t("Display the time it took to generate a page: for drupal development only."));
  $output .= "<HR>\n";

  return $output;
}

function settings_save($edit) {
  global $conf;
  if ($edit) {
    db_query("DELETE FROM variable");
    foreach ($edit as $name=>$value) db_query("INSERT INTO variable (name, value) VALUES ('". check_input($name) ."', '". check_input($value) ."')");
  }
  $conf = variable_init();
  return "all settings have been saved.";
}

function settings_default() {
  db_query("DELETE FROM variable");
  return "all settings have been reset.";
}

function settings_module($name) {
  global $settings;

  if (module_hook($name, "conf")) {
    $settings .= "<H3>". ucfirst($name) ." module</H3>\n";
    $settings .= module_invoke($name, "conf");
    $settings .= "<HR>\n";
  }
}

function settings_overview() {
  global $settings;

  module_iterate("settings_module");

  $form .= settings_conf();
  $form .= $settings;
  $form .= form_submit("Save settings");
  $form .= form_submit("Reset to defaults");

  return form("admin.php?mod=settings", $form);
}

function settings_admin() {
  global $edit, $op;

  switch ($op) {
    case "Reset to defaults":
      print status(settings_default($edit));
      break;
    case "Save settings":
      print status(settings_save($edit));
      break;
  }
  print settings_overview();
}

?>