X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Foptions.php;h=de63a8f4a5798bcaa73cc93ee3088f069af86ec3;hb=fd28fa79b1ccbcc961472de73c39c66036baccdd;hp=67c3c132ac378c7562aaf716aa5043fb693b4100;hpb=0b97a708e71c931153cd1ceee1495c9f4e1e209b;p=squirrelmail.git
diff --git a/functions/options.php b/functions/options.php
index 67c3c132..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
*/
/**********************************************/
@@ -24,6 +25,7 @@ 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($_POST["new_$name"])) {
- $this->new_value = $_POST["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;
@@ -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 = "