X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Foptions.php;h=de63a8f4a5798bcaa73cc93ee3088f069af86ec3;hb=fd28fa79b1ccbcc961472de73c39c66036baccdd;hp=057cb8c86b00801ca1981ec31bb911b506e5935b;hpb=6b4bd11ff9e790990d819c03a04eab069d52e0d6;p=squirrelmail.git
diff --git a/functions/options.php b/functions/options.php
index 057cb8c8..de63a8f4 100644
--- a/functions/options.php
+++ b/functions/options.php
@@ -3,12 +3,13 @@
/**
* options.php
*
- * Copyright (c) 1999-2002 The SquirrelMail Project Team
+ * Copyright (c) 1999-2004 The SquirrelMail Project Team
* Licensed under the GNU GPL. For full terms see the file COPYING.
*
* Functions needed to display the options pages.
*
- * $Id$
+ * @version $Id$
+ * @package squirrelmail
*/
/**********************************************/
@@ -18,12 +19,13 @@
/* Define constants for the various option types. */
define('SMOPT_TYPE_STRING', 0);
define('SMOPT_TYPE_STRLIST', 1);
-define('SMOPT_TYPE_textarea', 2);
+define('SMOPT_TYPE_TEXTAREA', 2);
define('SMOPT_TYPE_INTEGER', 3);
define('SMOPT_TYPE_FLOAT', 4);
define('SMOPT_TYPE_BOOLEAN', 5);
-define('SMOPT_TYPE_hidden', 6);
+define('SMOPT_TYPE_HIDDEN', 6);
define('SMOPT_TYPE_COMMENT', 7);
+define('SMOPT_TYPE_FLDRLIST', 8);
/* Define constants for the options refresh levels. */
define('SMOPT_REFRESH_NONE', 0);
@@ -51,6 +53,7 @@ define('SMOPT_SAVE_NOOP', 'save_option_noop');
* Also, I'd like to ask that people leave this alone (mostly :) until
* I get it a little further along. That should only be a day or two or
* three. I will remove this message when it is ready for primetime usage.
+ * @package squirrelmail
*/
class SquirrelOption {
/* The basic stuff. */
@@ -61,6 +64,7 @@ class SquirrelOption {
var $size;
var $comment;
var $script;
+ var $post_script;
/* The name of the Save Function for this option. */
var $save_function;
@@ -71,7 +75,7 @@ class SquirrelOption {
var $possible_values;
function SquirrelOption
- ($name, $caption, $type, $refresh_level, $possible_values = '') {
+ ($name, $caption, $type, $refresh_level, $initial_value = '', $possible_values = '') {
/* Set the basic stuff. */
$this->name = $name;
$this->caption = $caption;
@@ -81,23 +85,24 @@ class SquirrelOption {
$this->size = SMOPT_SIZE_MEDIUM;
$this->comment = '';
$this->script = '';
+ $this->post_script = '';
/* Check for a current value. */
- if (isset($GLOBALS[$name])) {
+ if (!empty($initial_value)) {
+ $this->value = $initial_value;
+ } else if (isset($GLOBALS[$name])) {
$this->value = $GLOBALS[$name];
} else {
$this->value = '';
}
/* Check for a new value. */
- if (isset($GLOBALS["new_$name"])) {
- $this->new_value = $GLOBALS["new_$name"];
- } else {
+ if ( !sqgetGlobalVar("new_$name", $this->new_value, SQ_POST ) ) {
$this->new_value = '';
}
/* Set the default save function. */
- if (($type != SMOPT_TYPE_hidden) && ($type != SMOPT_TYPE_COMMENT)) {
+ if (($type != SMOPT_TYPE_HIDDEN) && ($type != SMOPT_TYPE_COMMENT)) {
$this->save_function = SMOPT_SAVE_DEFAULT;
} else {
$this->save_function = SMOPT_SAVE_NOOP;
@@ -129,6 +134,11 @@ class SquirrelOption {
$this->script = $script;
}
+ /* Set the "post script" for this option. */
+ function setPostScript($post_script) {
+ $this->post_script = $post_script;
+ }
+
/* Set the save function for this option. */
function setSaveFunction($save_function) {
$this->save_function = $save_function;
@@ -145,7 +155,7 @@ class SquirrelOption {
case SMOPT_TYPE_STRLIST:
$result = $this->createWidget_StrList();
break;
- case SMOPT_TYPE_textarea:
+ case SMOPT_TYPE_TEXTAREA:
$result = $this->createWidget_TextArea();
break;
case SMOPT_TYPE_INTEGER:
@@ -157,21 +167,24 @@ class SquirrelOption {
case SMOPT_TYPE_BOOLEAN:
$result = $this->createWidget_Boolean();
break;
- case SMOPT_TYPE_hidden:
+ case SMOPT_TYPE_HIDDEN:
$result = $this->createWidget_Hidden();
break;
case SMOPT_TYPE_COMMENT:
$result = $this->createWidget_Comment();
break;
+ case SMOPT_TYPE_FLDRLIST:
+ $result = $this->createWidget_FolderList();
+ break;
default:
$result = ''
. sprintf(_("Option Type '%s' Not Found"), $this->type)
. '';
}
- /* Add the script for this option. */
- $result .= $this->script;
-
+ /* Add the "post script" for this option. */
+ $result .= $this->post_script;
+
/* Now, return the created widget. */
return ($result);
}
@@ -195,13 +208,13 @@ class SquirrelOption {
$width = 25;
}
- $result = "name\" value=\"$this->value\" size=\"$width\">";
+ $result = "name\" value=\"$this->value\" size=\"$width\" $this->script>";
return ($result);
}
function createWidget_StrList() {
/* Begin the select tag. */
- $result = "