0byt3m1n1
Path:
/
data
/
applications
/
aps.bak
/
joomla
/
1.7.2-0
/
standard
/
scripts
/
[
Home
]
File: configure.orig
<?php ini_set('include_path', '.'); require_once('env-parser.php'); require_once('file-util.php'); require_once('db-util.php'); require_once('app-util.php'); require_once('upgrade-app.php'); function admin_password_crypt($value) { return md5($value); } function get_localized_schema_files() { $schema_files = array( 'schema.sql' => 'main', 'admin_user.sql' => 'main', 'enable-auto-login.sql' => 'main' ); $locale = fetch_env_var('SETTINGS_locale'); $default_lang = fetch_env_var('SETTINGS_default_lang'); if ($default_lang != '') // override locale during installation { $locale = $default_lang; } $fname = "${locale}_data.sql"; if ($locale == '' or !@file_exists($fname)) { $fname = 'en-GB_data.sql'; } $schema_files[$fname] = 'main'; return $schema_files; } $config_files = array( '/' => array( array( 'configuration.php.in', 'configuration.php' ) ), '/cgi-bin' => array() ); $reconfig_files = array('/' => array( array('configuration.php.in', 'configuration.php' ) ), '/cgi-bin' => array() ); $upgrade_files = $config_files; $schema_files = get_localized_schema_files(); $reconf_schema_files = array( 'reconfigure.sql' => 'main' ); $remove_schema_files = array( 'remove.sql' => 'main' ); $psa_params = array ( ); $db_ids = array ( 'main' ); $web_ids = array ( 'administrator', 'backups', 'components', 'language', 'modules', 'templates', 'cache', 'cache', 'components', 'images', 'banners', 'stories', 'language', 'modules', 'plugins', 'templates', 'tmp', 'configuration.php', '/' ); $settings_params = array ( 'admin_name', 'admin_email', 'title', 'autologin_token', 'smtp_port', 'smtp_host', 'locale' ); $settings_enum_params = array ( 'default_lang' => array( 'en-GB' => 'en-GB', 'de-DE' => 'de-DE', 'es-ES' => 'es-ES', 'nl-NL' => 'nl-NL', 'ru-RU' => 'ru-RU' ) ); $crypt_settings_params = array ( 'admin_password' ); $psa_modify_hash = get_psa_modify_hash($psa_params); $db_modify_hash = get_db_modify_hash($db_ids); $web_modify_hash = get_web_modify_hash($web_ids); $settings_modify_hash = get_settings_modify_hash($settings_params); // Pull in default POA locale: 'en-US' if(isset($settings_modify_hash['@@LOCALE@@']) and $settings_modify_hash['@@LOCALE@@'] == 'en-US') { $settings_modify_hash['@@LOCALE@@'] = 'en-GB'; } if(strlen($settings_modify_hash['@@SMTP_HOST@@']) > 0) { $settings_modify_hash['@@MAILER@@'] = "smtp"; } else { $settings_modify_hash['@@MAILER@@'] = "mail"; } $settings_enum_modify_hash = get_settings_enum_modify_hash($settings_enum_params); $crypt_settings_modify_hash = get_crypt_settings_modify_hash($crypt_settings_params); $additional_modify_hash = get_additional_modify_hash(); if(count($argv) < 2) { print "Usage: configure (install | upgrade <version> | configure | remove)\n"; exit(1); } $command = $argv[1]; if (($command == "upgrade" && preg_match("/1.6/", $argv[2])) // upgrade is minor => config should not be rewritten || $command == "configure") { // Preserve all settings except ones that we change (ones defined in metadata) $old_config = $psa_modify_hash["@@"."ROOT_DIR"."@@"]."/configuration.php"; if (file_exists($old_config)) { $meta_settings = array('dbtype', 'host', 'user', 'password', 'db', 'dbprefix', 'mailfrom', 'log_path', 'tmp_path', 'smtpport', 'smtphost', 'mailer'); $old_content = read_file($old_config); if (preg_match('/class JConfig /', $old_content)) { rebuild_config_file($old_config, "configuration.php.in", $psa_modify_hash["@@"."ROOT_DIR"."@@"]."/tmp/configuration2.php.in", $meta_settings); $reconfig_files = array('/' => array( array($psa_modify_hash["@@"."ROOT_DIR"."@@"].'/tmp/configuration2.php.in', 'configuration.php')), '/cgi-bin' => array()); $upgrade_files = array( '/' => array ( array($psa_modify_hash["@@"."ROOT_DIR"."@@"].'/tmp/configuration2.php.in', 'configuration.php') ), '/cgi-bin' => array() ); } } } if($command == "upgrade") { if($argv[2] && $argv[3]){ upgrade_app($argv[2], $argv[3], $upgrade_files, $db_ids, $psa_modify_hash, $db_modify_hash, $settings_modify_hash, $crypt_settings_modify_hash, $settings_enum_modify_hash, $additional_modify_hash); exit(0); } else{ print "Error: upgrade version or release not specified.\n"; exit(1); } } if($command == "install") { delete_directory($psa_modify_hash['@@ROOT_DIR@@'].'/joomla15'); configure($config_files, $schema_files, $db_ids, $psa_modify_hash, $db_modify_hash, $settings_modify_hash, $crypt_settings_modify_hash, $settings_enum_modify_hash, $additional_modify_hash); exit(0); } if($command == "remove") { remove_app($remove_schema_files, $db_ids, $psa_modify_hash, $db_modify_hash, $settings_modify_hash, $crypt_settings_modify_hash, $settings_enum_modify_hash, $additional_modify_hash); exit(0); } if($command == "configure") { configure($reconfig_files, $reconf_schema_files, $db_ids, $psa_modify_hash, $db_modify_hash, $settings_modify_hash, $crypt_settings_modify_hash, $settings_enum_modify_hash, $additional_modify_hash); exit(0); } print "Error: unknown command $command.\n"; exit(1); function rebuild_config_file($old_config_file, $file_source, $file_dest, $meta_settings) { $file_content = read_file($file_source); require_once "$old_config_file"; $old_conf = new JConfig(); foreach (get_object_vars($old_conf) as $key => $value) { foreach ($meta_settings as $field) { if ($key == $field) { continue 2; } } $file_content = preg_replace('/public \$'.$key.' = .*?;\n/', 'public \$'.$key." = '".php_quote($value)."';\n", $file_content); } write_file($file_dest, $file_content); } ?>