From: simond Date: Wed, 30 Jan 2002 18:43:14 +0000 (+0000) Subject: Allow easy editing of address book DSN X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=commitdiff_plain;h=497203d474ca2a3762751dc433cfe13fda41e01c Allow easy editing of address book DSN git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@2296 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- diff --git a/config/conf.pl b/config/conf.pl index b66ebe5b..20d736f5 100755 --- a/config/conf.pl +++ b/config/conf.pl @@ -317,6 +317,7 @@ while (($command ne "q") && ($command ne "Q")) { print "6. Address Books (LDAP)\n"; print "7. Message of the Day (MOTD)\n"; print "8. Plugins\n"; + print "9. Database\n"; print "\n"; print "D. Set pre-defined settings for specific IMAP servers\n"; print "\n"; @@ -450,6 +451,12 @@ while (($command ne "q") && ($command ne "Q")) { print "A Sanitize all plugins for use with Squirrelmail 1.2\n"; print "\n"; print "R Return to Main Menu\n"; + } elsif ($menu == 9) { + print $WHT."Database\n".$NRM; + print "1. DSN for Address Book : $WHT$addrbook_dsn$NRM\n"; + print "\n"; + print "S Save data\n"; + print "R Return to Main Menu\n"; } if ($config_use_color == 1) { print "C. Turn color off\n"; @@ -496,7 +503,7 @@ while (($command ne "q") && ($command ne "Q")) { } else { $saved = 0; if ($menu == 0) { - if (($command > 0) && ($command < 9)) { + if (($command > 0) && ($command < 10)) { $menu = $command; } } elsif ($menu == 1) { @@ -555,6 +562,8 @@ while (($command ne "q") && ($command ne "Q")) { } elsif ($menu == 8) { if ($command =~ /^[0-9]+/) { @plugins = command81(); } elsif ($command eq "a") { command8s(); } + } elsif ($menu == 9) { + if ($command == 1) { $addrbook_dsn = command91(); } } } } @@ -1813,6 +1822,31 @@ sub command62 { return $default_use_javascript_addr_book; } +sub command91 { + print "If you want to store your users address book details in a database then\n"; + print "you need to set this DSN to a valid value. The format for this is:\n"; + print "mysql://user:pass\@hostname/dbname\n"; + print "Where mysql can be one of the databases PHP supports, the most common\n"; + print "of these are mysql, msql and pgsql\n"; + print "If the DSN is left empty (hit space and then return) the database\n"; + print "related code for address books will not be used\n"; + print "\n"; + + if ($addrbook_dsn eq "") { + $default_value = "Disabled"; + } else { + $default_value = $addrbook_dsn; + } + print "[$WHT$addrbook_dsn$NRM]: $WHT"; + $new_dsn = ; + if ($new_dsn eq "\n") { + $new_dsn = ""; + } else { + $new_dsn =~ s/[\r|\n]//g; + $new_dsn =~ s/^\s+$//g; + } + return $new_dsn; +} sub save_data { $tab = " "; @@ -1954,10 +1988,8 @@ sub save_data { print CF "\n"; } - if (defined $addrbook_dsn) { - print CF "global \$addrbook_dsn;\n"; - print CF "\$addrbook_dsn = '$addrbook_dsn';\n\n"; - } + print CF "global \$addrbook_dsn;\n"; + print CF "\$addrbook_dsn = '$addrbook_dsn';\n\n"; print CF "/**\n"; print CF " * Make sure there are no characters after the PHP closing\n"; diff --git a/config/config_default.php b/config/config_default.php index 309cc5c7..62946d20 100644 --- a/config/config_default.php +++ b/config/config_default.php @@ -378,9 +378,10 @@ global $ldap_server; * addressbooks are stored. See doc/db-backend.txt for more info. * If it is not defined, the addressbooks are stored in files * in the data dir. + * The DSN is in the format: mysql://user:pass@hostname/dbname */ -#global $addrbook_dsn; -#$addrbook_dsn = 'mysql://user:pass@hostname/dbname'; +global $addrbook_dsn; +$addrbook_dsn = ''; /** * Users may search their addressbook via either a plain HTML or Javascript diff --git a/functions/addressbook.php b/functions/addressbook.php index 4432751b..61b9e7be 100644 --- a/functions/addressbook.php +++ b/functions/addressbook.php @@ -41,7 +41,7 @@ if (isset($address_book_global_filename)) { } /* Only load database backend if database is configured */ -if(isset($addrbook_dsn)) { +if(isset($addrbook_dsn) && !empty($addrbook_dsn)) { include_once('../functions/abook_database.php'); } diff --git a/plugins/administrator/defines.php b/plugins/administrator/defines.php index 4ebc5af3..ea057b3f 100644 --- a/plugins/administrator/defines.php +++ b/plugins/administrator/defines.php @@ -188,13 +188,20 @@ $defcfg = array( '$config_version' => array( 'name' => _("Config File Version"), 'type' => SMOPT_TYPE_TEXTAREA, 'size' => 40 ), /* --------------------------------------------------------*/ - 'Group6' => array( 'name' => _("Themes"), + 'Group6' => array( 'name' => _("Database"), + 'type' => SMOPT_TYPE_TITLE ), + '$addrbook_dsn' => array( 'name' => _("Address book DSN"), + 'type' => SMOPT_TYPE_STRING, + 'size' => 40 ), + /* --------------------------------------------------------*/ + 'Group7' => array( 'name' => _("Themes"), 'type' => SMOPT_TYPE_TITLE ), '$theme_css' => array( 'name' => _("Style Sheet URL (css)"), 'type' => SMOPT_TYPE_STRING, 'size' => 40 ), /* --------------------------------------------------------*/ '$config_use_color' => array( 'type' => SMOPT_TYPE_HIDDEN ) + /* --------------------------------------------------------*/ );