X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Foptions.php;h=de63a8f4a5798bcaa73cc93ee3088f069af86ec3;hb=17fca61d112f76a3f9c69be39eb1e8c252c95965;hp=653dfc0b8c17fe8a6c888bbcde2e54b02ec6c26a;hpb=2a50fbd78ecc337335eff7e62e28ae06580d452c;p=squirrelmail.git
diff --git a/functions/options.php b/functions/options.php
index 653dfc0b..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_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,18 +85,19 @@ 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 = '';
}
@@ -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:
@@ -163,15 +173,18 @@ class SquirrelOption {
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 = "