/** * Setup console action * * @param array $cart_settings Cart settings * @param array $database_settings Database settings * @param array $server_settings Server settings * @param array $addons List of addons to be installed * @return bool Result of setup */ public function actionConsole($cart_settings, $database_settings, $server_settings, $addons = array()) { $app = App::instance(); $setup_result = 1; // return code for cli $validator = new Validator(); if ($validator->validateAll(array_merge($cart_settings, $server_settings, $database_settings, $addons))) { if ($app->connectToDB($database_settings['host'], $database_settings['name'], $database_settings['user'], $database_settings['password'], $database_settings['table_prefix'], $database_settings['database_backend'])) { define('CART_LANGUAGE', $cart_settings['main_language']); define('DESCR_SL', $cart_settings['main_language']); define('CART_SECONDARY_CURRENCY', 'NULL'); // Need for cache_level set_time_limit(0); $sCart = new Setup($cart_settings, $server_settings, $database_settings, $this->isDemoInstall($cart_settings)); $sAddons = new AddonsSetup(); $sCart->setupScheme(); $sCart->setupData(); $sCart->setSimpleMode(); if ($this->isDemoInstall($cart_settings)) { $sCart->setupDemo(); } else { $sCart->clean(); } $sCart->setupUsers(); $sCart->setupCompanies(); $sCart->setupLanguages($this->isDemoInstall($cart_settings)); $sCart->setupThemes(); $sAddons->setup($this->isDemoInstall($cart_settings), $addons); $license_number = !empty($cart_settings['license_number']) ? $cart_settings['license_number'] : ''; $sCart->setupLicense($license_number); $sCart->writeConfig(); $app->setNotification('N', '', $app->t('successfully_finished'), true); $setup_result = 0; } } return $setup_result; }