/** * Gets the basic site parameters * * @return array */ protected function getSiteParamsVars() { $siteurl = str_replace('/installation/', '', AUri::root()); $homeurl = str_replace('/installation/', '', AUri::root()); $ret = array('blogname' => $this->getState('blogname', $this->configModel->get('blogname', 'Restored website')), 'blogdescription' => $this->getState('blogdescription', $this->configModel->get('blogdescription', 'Restored website')), 'dbcharset' => $this->getState('dbcharset', $this->configModel->get('dbcharset', 'utf_8')), 'dbcollation' => $this->getState('dbcollation', $this->configModel->get('dbcollation', '')), 'homeurl' => $this->getState('homeurl', $homeurl), 'siteurl' => $this->getState('siteurl', $siteurl)); require_once APATH_INSTALLATION . '/angie/helpers/setup.php'; $ret['homeurl'] = AngieHelperSetup::cleanLiveSite($ret['homeurl']); $ret['siteurl'] = AngieHelperSetup::cleanLiveSite($ret['siteurl']); $this->configModel->set('siteurl', $ret['siteurl']); $this->configModel->set('homeurl', $ret['homeurl']); // Special handling: if we were told to downgrade data from utf8mb4 to utf8 and the dbcharset or dbcollation // contains utf8mb4 we have to downgrade that too to utf8. /** @var AngieModelDatabase $dbModel */ $dbModel = AModel::getTmpInstance('Database', 'AngieModel'); $allDbIni = $dbModel->getDatabasesIni(); $dbNames = $dbModel->getDatabaseNames(); $firstDb = array_shift($dbNames); $dbIni = $allDbIni[$firstDb]; $dbOptions = array('driver' => $dbIni['dbtype'], 'database' => $dbIni['dbname'], 'select' => 0, 'host' => $dbIni['dbhost'], 'user' => $dbIni['dbuser'], 'password' => $dbIni['dbpass'], 'prefix' => $dbIni['prefix']); $db = ADatabaseDriver::getInstance($dbOptions); $downgradeUtf8 = $dbIni['utf8tables'] && (!$dbIni['utf8mb4'] || $dbIni['utf8mb4'] && !$db->supportsUtf8mb4()); if ($downgradeUtf8) { $ret['dbcharset'] = str_replace('utf8mb4', 'utf8', $ret['dbcharset']); $ret['dbcollation'] = str_replace('utf8mb4', 'utf8', $ret['dbcollation']); $this->configModel->set('dbcharset', $ret['dbcharset']); $this->configModel->set('dbcollation', $ret['dbcollation']); } return $ret; }