MDL-18167 more hooks for distros

This commit is contained in:
skodak 2009-02-07 17:07:05 +00:00
parent 4f9dba35a3
commit 6724b0598b
2 changed files with 23 additions and 6 deletions

View file

@ -93,8 +93,8 @@ if (!empty($_POST)) {
$config->stage = INSTALL_WELCOME; $config->stage = INSTALL_WELCOME;
$config->dbtype = empty($distro->dbtype) ? '' : $distro->dbtype; // let distro skip dbtype selection $config->dbtype = empty($distro->dbtype) ? '' : $distro->dbtype; // let distro skip dbtype selection
$config->dbhost = 'localhost'; $config->dbhost = empty($distro->dbhost) ? 'localhost' : $distro->dbhost; // let distros set dbhost
$config->dbuser = ''; $config->dbuser = empty($distro->dbuser) ? '' : $distro->dbuser; // let distros set dbuser
$config->dbpass = ''; $config->dbpass = '';
$config->dbname = 'moodle'; $config->dbname = 'moodle';
$config->prefix = 'mdl_'; $config->prefix = 'mdl_';
@ -195,7 +195,7 @@ if ($config->stage == INSTALL_SAVE) {
if (!$database->driver_installed()) { if (!$database->driver_installed()) {
$config->stage = INSTALL_DATABASETYPE; $config->stage = INSTALL_DATABASETYPE;
} else { } 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 === '') { if ($hint_database === '') {
$configphp = '<?php /// Moodle Configuration File ' . "\r\n\r\n"; $configphp = '<?php /// Moodle Configuration File ' . "\r\n\r\n";
@ -323,16 +323,19 @@ if ($config->stage == INSTALL_DATABASE) {
$strdbsocket = get_string('databasesocket', 'install'); $strdbsocket = get_string('databasesocket', 'install');
echo '<div class="userinput">'; echo '<div class="userinput">';
$disabled = empty($distro->dbhost) ? '' : 'disabled="disabled';
echo '<div class="formrow"><label for="id_dbhost" class="formlabel">'.$strdbhost.'</label>'; 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>';
echo '<div class="formrow"><label for="id_dbname" class="formlabel">'.$strdbname.'</label>'; 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 '<input id="id_dbname" name="dbname" type="text" value="'.s($config->dbname).'" size="30" class="forminput" />';
echo '</div>'; echo '</div>';
$disabled = empty($distro->dbuser) ? '' : 'disabled="disabled';
echo '<div class="formrow"><label for="id_dbuser" class="formlabel">'.$strdbuser.'</label>'; 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>';
echo '<div class="formrow"><label for="id_dbpass" class="formlabel">'.$strdbpass.'</label>'; echo '<div class="formrow"><label for="id_dbpass" class="formlabel">'.$strdbpass.'</label>';

View file

@ -57,8 +57,22 @@ function install_helpbutton($url, $title='') {
echo "</a>\n"; 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 // 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 {
try { try {
$database->connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions); $database->connect($dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions);