$config->stage = INSTALL_WELCOME;
$config->dbtype = empty($distro->dbtype) ? '' : $distro->dbtype; // let distro skip dbtype selection
- $config->dbhost = 'localhost';
- $config->dbuser = '';
+ $config->dbhost = empty($distro->dbhost) ? 'localhost' : $distro->dbhost; // let distros set dbhost
+ $config->dbuser = empty($distro->dbuser) ? '' : $distro->dbuser; // let distros set dbuser
$config->dbpass = '';
$config->dbname = 'moodle';
$config->prefix = 'mdl_';
if (!$database->driver_installed()) {
$config->stage = INSTALL_DATABASETYPE;
} else {
- $hint_database = install_db_validate($database, $config->dbhost, $config->dbuser, $config->dbpass, $config->dbname, $config->prefix, array('dbpersit'=>0, 'dbsocket'=>$config->dbsocket));
+ $hint_database = install_db_validate($database, $config->dbhost, $config->dbuser, $config->dbpass, $config->dbname, $config->prefix, array('dbpersit'=>0, 'dbsocket'=>$config->dbsocket), $distro);
if ($hint_database === '') {
$configphp = '<?php /// Moodle Configuration File ' . "\r\n\r\n";
$strdbsocket = get_string('databasesocket', 'install');
echo '<div class="userinput">';
+
+ $disabled = empty($distro->dbhost) ? '' : 'disabled="disabled';
echo '<div class="formrow"><label for="id_dbhost" class="formlabel">'.$strdbhost.'</label>';
- echo '<input id="id_dbhost" name="dbhost" type="text" value="'.s($config->dbhost).'" size="30" class="forminput" />';
+ echo '<input id="id_dbhost" name="dbhost" '.$disabled.' type="text" value="'.s($config->dbhost).'" size="30" class="forminput" />';
echo '</div>';
echo '<div class="formrow"><label for="id_dbname" class="formlabel">'.$strdbname.'</label>';
echo '<input id="id_dbname" name="dbname" type="text" value="'.s($config->dbname).'" size="30" class="forminput" />';
echo '</div>';
+ $disabled = empty($distro->dbuser) ? '' : 'disabled="disabled';
echo '<div class="formrow"><label for="id_dbuser" class="formlabel">'.$strdbuser.'</label>';
- echo '<input id="id_dbuser" name="dbuser" type="text" value="'.s($config->dbuser).'" size="30" class="forminput" />';
+ echo '<input id="id_dbuser" name="dbuser" '.$disabled.' type="text" value="'.s($config->dbuser).'" size="30" class="forminput" />';
echo '</div>';
echo '<div class="formrow"><label for="id_dbpass" class="formlabel">'.$strdbpass.'</label>';
echo "</a>\n";
}
-function install_db_validate($database, $dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions) {
+function install_db_validate($database, $dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions, $distro) {
// this is in function because we want the /install.php to parse in PHP4
+
+ if ($database->get_dbfamily() === 'mysql' and !empty($distro->setdbrootpassword) and $dbpass !== '') {
+ // distro hack - set root password
+ try {
+ if ($database->connect($dbhost, $dbuser, '', $dbname, $prefix, $dboptions)) {
+ $sql = "UPDATE user SET password=password(?) WHERE user='root'";
+ $params = array($dbpass);
+ $database->execute($sql, $params);
+ return '';
+ }
+ } catch (Exception $ignored) {
+ }
+ }
+
try {
try {
$database->connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions);