/** * Returns content of config.php file. * * Uses PHP_EOL for generating proper end of lines for the given platform. * * @param moodle_database $database database instance * @param object $cfg copy of $CFG * @return string */ function install_generate_configphp($database, $cfg) { $configphp = '<?php // Moodle configuration file' . PHP_EOL . PHP_EOL; $configphp .= 'unset($CFG);' . PHP_EOL; $configphp .= 'global $CFG;' . PHP_EOL; $configphp .= '$CFG = new stdClass();' . PHP_EOL . PHP_EOL; // prevent PHP5 strict warnings $dbconfig = $database->export_dbconfig(); foreach ($dbconfig as $key => $value) { $key = str_pad($key, 9); $configphp .= '$CFG->' . $key . ' = ' . var_export($value, true) . ';' . PHP_EOL; } $configphp .= PHP_EOL; $configphp .= '$CFG->wwwroot = ' . var_export($cfg->wwwroot, true) . ';' . PHP_EOL; $configphp .= '$CFG->dataroot = ' . var_export($cfg->dataroot, true) . ';' . PHP_EOL; $configphp .= '$CFG->admin = ' . var_export($cfg->admin, true) . ';' . PHP_EOL . PHP_EOL; if (empty($cfg->directorypermissions)) { $chmod = '02777'; } else { $chmod = '0' . decoct($cfg->directorypermissions); } $configphp .= '$CFG->directorypermissions = ' . $chmod . ';' . PHP_EOL . PHP_EOL; $configphp .= '$CFG->passwordsaltmain = ' . var_export(complex_random_string(), true) . ';' . PHP_EOL . PHP_EOL; $configphp .= 'require_once(dirname(__FILE__) . \'/lib/setup.php\');' . PHP_EOL . PHP_EOL; $configphp .= '// There is no php closing tag in this file,' . PHP_EOL; $configphp .= '// it is intentional because it prevents trailing whitespace problems!' . PHP_EOL; return $configphp; }
/** * Returns content of config.php file. * @param moodle_database $database database instance * @param object $cfg copy of $CFG * @param bool $userealpath allows symbolic links in dirroot * @return string */ function install_generate_configphp($database, $cfg, $userealpath = false) { $configphp = '<?php // Moodle Configuration File ' . "\r\n\r\n"; $configphp .= 'unset($CFG);' . "\r\n"; $configphp .= '$CFG = new stdClass();' . "\r\n\r\n"; // prevent PHP5 strict warnings $dbconfig = $database->export_dbconfig(); foreach ($dbconfig as $key => $value) { $key = str_pad($key, 9); $configphp .= '$CFG->' . $key . ' = ' . var_export($value, true) . ";\r\n"; } $configphp .= "\r\n"; $configphp .= '$CFG->wwwroot = ' . var_export($cfg->wwwroot, true) . ";\r\n"; if ($userealpath) { $dirroot = str_replace('\\', '/', $cfg->dirroot); // win32 fix $dirroot = rtrim($dirroot, '/'); // no trailing / $configphp .= '$CFG->dirroot = realpath(' . var_export($dirroot, true) . ");\r\n"; // fix for sym links } else { $dirroot = str_replace('\\', '/', $cfg->dirroot); // win32 fix $dirroot = rtrim($dirroot, '/'); // no trailing / $configphp .= '$CFG->dirroot = ' . var_export($dirroot, true) . ";\r\n"; } $dataroot = str_replace('\\', '/', $cfg->dataroot); // win32 fix $dataroot = rtrim($dataroot, '/'); // no trailing / $configphp .= '$CFG->dataroot = ' . var_export($dataroot, true) . ";\r\n"; $configphp .= '$CFG->admin = ' . var_export($cfg->admin, true) . ";\r\n\r\n"; $configphp .= '$CFG->directorypermissions = 00777; // try 02777 on a server in Safe Mode' . "\r\n"; $configphp .= "\r\n"; $configphp .= 'require_once("$CFG->dirroot/lib/setup.php");' . "\r\n\r\n"; $configphp .= '// There is no php closing tag in this file,' . "\r\n"; $configphp .= '// it is intentional because it prevents trailing whitespace problems!' . "\r\n"; return $configphp; }