/** * @return JsonModel */ public function indexAction() { $this->logger->clear(); $data = Json::decode($this->getRequest()->getContent(), Json::TYPE_ARRAY); $this->config->setConfigData($data); $this->config->install(); $this->setupFactory->setConfig($this->config->getConfigData()); $moduleNames = array_keys($this->moduleList); foreach ($moduleNames as $moduleName) { $setup = $this->setupFactory->create($moduleName); $setup->applyUpdates(); $this->logger->logSuccess($moduleName); } $this->logger->logSuccess('Artifact'); // Set data to config $setup->addConfigData('web/seo/use_rewrites', isset($data['config']['rewrites']['allowed']) ? $data['config']['rewrites']['allowed'] : 0); $setup->addConfigData('web/unsecure/base_url', isset($data['config']['address']['web']) ? $data['config']['address']['web'] : '{{unsecure_base_url}}'); $setup->addConfigData('web/secure/use_in_frontend', isset($data['config']['https']['front']) ? $data['config']['https']['front'] : 0); $setup->addConfigData('web/secure/base_url', isset($data['config']['address']['web']) ? $data['config']['address']['web'] : '{{secure_base_url}}'); $setup->addConfigData('web/secure/use_in_adminhtml', isset($data['config']['https']['admin']) ? $data['config']['https']['admin'] : 0); $setup->addConfigData('general/locale/code', isset($data['store']['language']) ? $data['store']['language'] : 'en_US'); $setup->addConfigData('general/locale/timezone', isset($data['store']['timezone']) ? $data['store']['timezone'] : 'America/Los_Angeles'); $currencyCode = isset($data['store']['currency']) ? $data['store']['currency'] : 'USD'; $setup->addConfigData('currency/options/base', $currencyCode); $setup->addConfigData('currency/options/default', $currencyCode); $setup->addConfigData('currency/options/allow', $currencyCode); // Create administrator account $this->adminAccountFactory->setConfig($this->config->getConfigData()); $adminAccount = $this->adminAccountFactory->create($setup); $adminAccount->save(); $this->logger->logSuccess('Admin User'); if ($data['config']['encrypt']['type'] == 'magento') { $key = md5($this->random->getRandomString(10)); } else { $key = $data['config']['encrypt']['key']; } $this->config->replaceTmpEncryptKey($key); $this->config->replaceTmpInstallDate(date('r')); $phpPath = $this->phpExecutablePath(); exec($phpPath . 'php -f ' . escapeshellarg($this->systemConfig->create()->getMagentoBasePath() . '/dev/shell/run_data_fixtures.php'), $output, $exitCode); if ($exitCode !== 0) { $outputMsg = implode(PHP_EOL, $output); $this->logger->logError(new \Exception('Data Update Failed with Exit Code: ' . $exitCode . PHP_EOL . $outputMsg)); $this->json->setVariable('success', false); } else { $this->logger->logSuccess('Data Updates'); $this->json->setVariable('success', true); } $this->json->setVariable('key', $key); return $this->json; }
/** * @return JsonModel */ public function indexAction() { $this->logger->clear(); $data = Json::decode($this->getRequest()->getContent(), Json::TYPE_ARRAY); $this->config->setConfigData($data); $this->config->install(); $this->setupFactory->setConfig($this->config->getConfigData()); $moduleNames = array_keys($this->moduleList); foreach ($moduleNames as $moduleName) { $setup = $this->setupFactory->create($moduleName); $setup->applyUpdates(); $this->logger->logSuccess($moduleName); } $this->logger->logSuccess('Artifact'); // Set data to config $setup->addConfigData('web/seo/use_rewrites', isset($data['config']['rewrites']['allowed']) ? $data['config']['rewrites']['allowed'] : 0); $setup->addConfigData('web/unsecure/base_url', isset($data['config']['address']['web']) ? $data['config']['address']['web'] : '{{unsecure_base_url}}'); $setup->addConfigData('web/secure/use_in_frontend', isset($data['config']['https']['front']) ? $data['config']['https']['front'] : 0); $setup->addConfigData('web/secure/base_url', isset($data['config']['address']['web']) ? $data['config']['address']['web'] : '{{secure_base_url}}'); $setup->addConfigData('web/secure/use_in_adminhtml', isset($data['config']['https']['admin']) ? $data['config']['https']['admin'] : 0); $setup->addConfigData('general/locale/code', isset($data['store']['language']) ? $data['store']['language'] : 'en_US'); $setup->addConfigData('general/locale/timezone', isset($data['store']['timezone']) ? $data['store']['timezone'] : 'America/Los_Angeles'); $currencyCode = isset($data['store']['currency']) ? $data['store']['currency'] : 'USD'; $setup->addConfigData('currency/options/base', $currencyCode); $setup->addConfigData('currency/options/default', $currencyCode); $setup->addConfigData('currency/options/allow', $currencyCode); // Create administrator account $this->adminAccountFactory->setConfig($this->config->getConfigData()); $adminAccount = $this->adminAccountFactory->create($setup); $adminAccount->save(); $this->logger->logSuccess('Admin User'); if ($data['config']['encrypt']['type'] == 'magento') { $key = md5($this->random->getRandomString(10)); } else { $key = $data['config']['encrypt']['key']; } $this->config->replaceTmpEncryptKey($key); $this->config->replaceTmpInstallDate(date('r')); $this->json->setVariable('success', true); $this->json->setVariable('key', $key); return $this->json; }
/** * @param string $path * @return string */ public function getAbsolutePath($path) { return $this->config->getMagentoBasePath() . '/' . ltrim($this->fixSeparator($path), '/'); }