Prev |  | Next

#### 2.3.7.5. Full module settings page example

Here is a full example settings page, using the tools from above. A real settings page will often be much larger than this, but the basics are the same.

Example 2.11. An example module settings.php script

      <?php

      if (!defined("PHORUM_ADMIN")) return;

      // If data is posted, then store the posted settings in the database.
      if (count($_POST))
      {
          $PHORUM['mod_foo']['field1'] = empty($_POST['field1']) ? 0 : 1;
          $PHORUM['mod_foo']['field2'] = (int) $_POST['field2'];

          // Do some error checking.
          if ($PHORUM['mod_foo']['field2'] > 1000) {
              phorum_admin_error("The value for field 2 is too high!");
          }
          // The data was okay. Store the settings.
          else {
              phorum_db_update_settings(array("mod_foo" => $PHORUM["mod_foo"]));
              phorum_admin_okmsg('The settings were saved successfully');
          }
      }

      // This block is standard for every settings page. The "mod" field
      // must be set to the name of the module for which the settings
      // page is written.
      include_once "./include/admin/PhorumInputForm.php";
      $frm = new PhorumInputForm ("", "post", "Submit this form");
      $frm->hidden("module", "modsettings");
      $frm->hidden("mod", "foo");

      // Add a header row to the form.
      $frm->addbreak("Foo module settings");

      // Add a checkbox to the form.
      $row = $frm->addrow(
          "Field 1",
          $frm->checkbox("field1", "1", "Yes", $PHORUM['mod_foo']['field1'])
      );

      // Add a help balloon to Field 1.
      $frm->addhelp(
          $row, "Field 1",
          "This is a help balloon text for Field 1."
      );

      // Add a text field to the form.
      $frm->addrow(
          "Field 2",
          $frm->text_box("field2", $PHORUM['mod_foo']['field2'], 50)
      );

      // Display the form.
      $frm->show();

      ?>

Prev | Up | Next
| Home |