X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=plugins%2Fadministrator%2Foptions.php;h=059b0981c751d61ccbdccd7c6db48a919344c578;hb=701e7beed3baca980039f978c6d536dd91cae775;hp=3b7e1a82ff0fc13f3cec07be784e2e08a5fba7af;hpb=91e0dccca7b2452d8b450791cae3aa4125e8889e;p=squirrelmail.git diff --git a/plugins/administrator/options.php b/plugins/administrator/options.php index 3b7e1a82..059b0981 100644 --- a/plugins/administrator/options.php +++ b/plugins/administrator/options.php @@ -6,14 +6,16 @@ * This script creates separate page, that allows to review and modify * SquirrelMail configuration file. * - * @version $Id$ * @author Philippe Mingo - * @copyright (c) 1999-2004 The SquirrelMail Project Team + * @copyright 1999-2014 The SquirrelMail Project Team * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @version $Id$ * @package plugins * @subpackage administrator */ +define('PAGE_NAME', 'administrator_options'); + /** * parse the config file * @@ -28,6 +30,7 @@ function parseConfig( $cfg_file ) { $mode = ''; $l = count( $cfg ); $modifier = FALSE; + $arraykey = 0; for ($i=0;$i<$l;$i++) { $line = trim( $cfg[$i] ); @@ -49,6 +52,11 @@ function parseConfig( $cfg_file ) { $mode = '='; } else { $key .= $line{$j}; + // FIXME: this is only pour workaround for plugins[] array. + if ($line{$j}=='[' && $line{($j+1)}==']') { + $key .= $arraykey; + $arraykey++; + } } break; case ';': @@ -164,6 +172,7 @@ function change_to_rel_path($old_path) { * empty_string --> '' * ../images/logo.gif --> SM_PATH . 'images/logo.gif' * images/logo.gif --> SM_PATH . 'config/images/logo.gif' + * C:/absolute/win/path --> 'C:/absolute/win/path' * /absolute/path/logo.gif --> '/absolute/path/logo.gif' * http://whatever/ --> 'http://whatever' * @@ -174,7 +183,8 @@ function change_to_rel_path($old_path) { function change_to_sm_path($old_path) { if ( $old_path === '' || $old_path == "''" ) { return "''"; - } elseif ( preg_match("/^(\/|http)/", $old_path) ) { + } elseif ( preg_match("/^(\/|http)/", $old_path) || + substr($old_path,1,2) == ':/' ) { return "'" . $old_path . "'"; } elseif ( preg_match("/^(\$|SM_PATH)/", $old_path) ) { return $old_path; @@ -213,17 +223,12 @@ function change_to_sm_path($old_path) { /* ---------------------- main -------------------------- */ - -/** @ignore */ -define('SM_PATH','../../'); - -/* SquirrelMail required files. */ -require_once(SM_PATH . 'include/validate.php'); -require_once(SM_PATH . 'functions/page_header.php'); -require_once(SM_PATH . 'functions/imap.php'); -require_once(SM_PATH . 'include/load_prefs.php'); -require_once(SM_PATH . 'plugins/administrator/defines.php'); -require_once(SM_PATH . 'plugins/administrator/auth.php'); +/** main SquirrelMail include */ +require('../../include/init.php'); +/* configuration definitions */ +include_once(SM_PATH . 'plugins/administrator/defines.php'); +/* additional functions */ +include_once(SM_PATH . 'plugins/administrator/auth.php'); global $data_dir, $username; @@ -232,7 +237,7 @@ if ( !adm_check_user() ) { exit; } -displayPageHeader($color, 'None'); +displayPageHeader($color); $newcfg = array( ); @@ -255,7 +260,7 @@ $colapse = array( 'Titles' => 'off', 'Group8' => getPref($data_dir, $username, 'adm_Group8', 'on' ), 'Group9' => getPref($data_dir, $username, 'adm_Group9', 'on' ), 'Group10' => getPref($data_dir, $username, 'adm_Group10', 'on' ), - 'Group11' => getPref($data_dir, $username, 'adm_Group10', 'on' ) ); + 'Group11' => getPref($data_dir, $username, 'adm_Group11', 'on' ) ); /* look in $_GET array for 'switch' */ if ( sqgetGlobalVar('switch', $switch, SQ_GET) ) { @@ -268,7 +273,7 @@ if ( sqgetGlobalVar('switch', $switch, SQ_GET) ) { } echo '
'; /* Write the options to the file. @@ -610,8 +626,7 @@ if ( $fp = @fopen( $cfgfile, 'w' ) ) { " * SquirrelMail Configuration File\n". " * Created using the Administrator Plugin\n". " */\n". - "\n". - "global \$version;\n" ); + "\n" ); foreach ( $newcfg as $k => $v ) { if ( $k{0} == '$' && $v <> '' || is_int($v)) { @@ -620,9 +635,11 @@ if ( $fp = @fopen( $cfgfile, 'w' ) ) { $v = str_replace( 'array(', "array(\n\t", $v ); $v = str_replace( "',", "',\n\t", $v ); } + /* FIXME: add elseif that reverts plugins[#] to plugins[] */ fwrite( $fp, "$k = $v;\n" ); } } + // close php fwrite( $fp, '?>' ); fclose( $fp ); } else { @@ -630,5 +647,6 @@ if ( $fp = @fopen( $cfgfile, 'w' ) ) { _("Config file can't be opened. Please check config.php."). ''; } + ?> -