function createTranslationSiteAccesses($params) { foreach ($params['locales'] as $locale) { // Prepare 'SiteLanguageList': // make $locale as 'top priority language' // and append 'primary language' as fallback language. $primaryLanguage = $params['primary_language']; $languageList = array($locale); if ($locale != $primaryLanguage) { $languageList[] = $primaryLanguage; } eZSiteInstaller::createSiteAccess(array('src' => array('siteaccess' => $params['user_siteaccess']), 'dst' => array('siteaccess' => eZSiteInstaller::languageNameFromLocale($locale), 'settings' => array('site.ini' => array('RegionalSettings' => array('Locale' => $locale, 'ContentObjectLocale' => $locale, 'TextTranslation' => $locale != 'eng-GB' ? 'enabled' : 'disabled', 'SiteLanguageList' => $languageList)))))); } }
// extra siteaccess based on languages info, like 'eng', 'rus', ... $params['language_based_siteaccess_list'] = $siteInstaller->languageNameListFromLocaleList($params['locales']); $params['user_siteaccess_list'] = array_merge(array($params['user_siteaccess']), $params['language_based_siteaccess_list']); $params['all_siteaccess_list'] = array_merge($params['user_siteaccess_list'], $params['admin_siteaccess']); $params['main_site_design'] = 'ezwebin'; // Create siteaccesses URLs $siteaccessUrls = array('admin' => $siteInstaller->createSiteaccessUrls(array('siteaccess_list' => array($params['admin_siteaccess']), 'access_type' => $accessType, 'port' => $adminAccessTypeValue, 'host' => $params['host'])), 'user' => $siteInstaller->createSiteaccessUrls(array('siteaccess_list' => array($params['user_siteaccess']), 'access_type' => $accessType, 'port' => $accessTypeValue, 'host' => $params['host'])), 'translation' => $siteInstaller->createSiteaccessUrls(array('siteaccess_list' => $params['language_based_siteaccess_list'], 'access_type' => $accessType, 'port' => $accessTypeValue + 1, 'host' => $params['host'], 'exclude_port_list' => array($adminAccessTypeValue, $accessTypeValue)))); $params['siteaccess_urls'] = $siteaccessUrls; // prepare 'admin_url' for 'eZSiteINISettings'. Will unset it later. $params['siteaccess_urls']['admin_url'] = $siteaccessUrls['admin']['ezwebin_site_admin']['url']; // Include setting files $settingsFiles = $package->attribute('settings-files'); foreach ($settingsFiles as $settingsFileName) { include_once installScriptDir($packageRepository) . '/settings/' . $settingsFileName; } $siteInstaller->createSiteAccess(array('src' => array('siteaccess' => $adminSiteaccess), 'dst' => array('siteaccess' => 'ezwebin_site_admin'))); $siteInstaller->createSiteAccess(array('src' => array('siteaccess' => $userSiteaccess), 'dst' => array('siteaccess' => 'ezwebin_site'))); // Call user function for additional setup tasks. if (function_exists('eZSitePreInstall')) { eZSitePreInstall(); } installPackages($packageList, $installParameters); $settings = array(); $settings[] = array('settings_dir' => 'settings/siteaccess/' . $params['user_siteaccess'], 'groups' => eZSiteINISettings($params)); $settings[] = array('settings_dir' => 'settings/siteaccess/' . $params['admin_siteaccess'], 'groups' => eZSiteAdminINISettings($params)); $settings[] = array('settings_dir' => 'settings/override', 'groups' => eZSiteCommonINISettings($params)); foreach ($settings as $settingsGroup) { resetINI($settingsGroup, 'override.ini'); $siteInstaller->updateINIFiles($settingsGroup); } // 'admin_url' is not needed anymore.