/** * Test created siteaccess URLs for given conditions * */ public function testCreateSiteaccessUrls() { $installer = new eZSiteInstaller(); /* * Access type: URL * */ $params = array('siteaccess_list' => array('ezwebin_site'), 'access_type' => 'url', 'access_type_value' => 'ezwebin_site', 'exclude_port_list' => array(), 'host' => '', 'host_prepend_siteaccess' => false); $siteaccessURLs = $installer->createSiteaccessUrls($params); $this->assertEquals($siteaccessURLs, array('ezwebin_site' => array('url' => 'localhost/ezwebin_site'))); /* * Access type: HOST * */ $params = array('siteaccess_list' => array('ezwebin_site'), 'access_type' => 'host', 'access_type_value' => 'ezwebin.site.host', 'exclude_port_list' => array(), 'host' => '', 'host_prepend_siteaccess' => false); $siteaccessURLs = $installer->createSiteaccessUrls($params); $this->assertEquals($siteaccessURLs, array('ezwebin_site' => array('url' => 'ezwebin.site.host', 'host' => 'ezwebin.site.host'))); /* * Access type: PORT * */ $params = array('siteaccess_list' => array('ezwebin_site'), 'access_type' => 'port', 'access_type_value' => '81', 'exclude_port_list' => array(), 'host' => '', 'host_prepend_siteaccess' => false); $siteaccessURLs = $installer->createSiteaccessUrls($params); $this->assertEquals($siteaccessURLs, array('ezwebin_site' => array('url' => 'localhost:81', 'port' => '81'))); /* * Access type: HOST * Language siteaccess * Host with prepended siteaccess name * */ $params = array('siteaccess_list' => array('eng'), 'access_type' => 'host', 'access_type_value' => 'ezwebin.site.host', 'exclude_port_list' => array(), 'host' => '', 'host_prepend_siteaccess' => true); $siteaccessURLs = $installer->createSiteaccessUrls($params); $this->assertEquals($siteaccessURLs, array('eng' => array('url' => 'eng.ezwebin.site.host', 'host' => 'eng.ezwebin.site.host'))); /* * Access type: PORT * Excluded port 81 */ $params = array('siteaccess_list' => array('ezwebin_site'), 'access_type' => 'port', 'access_type_value' => '81', 'exclude_port_list' => array('81'), 'host' => '', 'host_prepend_siteaccess' => false); $siteaccessURLs = $installer->createSiteaccessUrls($params); $this->assertEquals($siteaccessURLs, array('ezwebin_site' => array('url' => 'localhost:82', 'port' => '82'))); }
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)))))); } }
function initSettings($parameters) { $siteINI = eZINI::instance(); $classIdentifier = 'template_look'; //get the class $class = eZContentClass::fetchByIdentifier($classIdentifier, true, eZContentClass::VERSION_STATUS_TEMPORARY); if (!$class) { $class = eZContentClass::fetchByIdentifier($classIdentifier, true, eZContentClass::VERSION_STATUS_DEFINED); if (!$class) { eZDebug::writeError("Warning, DEFINED version for class identifier {$classIdentifier} does not exist."); return; } } $classId = $class->attribute('id'); $this->Settings['template_look_class_id'] = $classId; $objects = eZContentObject::fetchSameClassList($classId); if (!count($objects)) { eZDebug::writeError("Object of class {$classIdentifier} does not exist."); return; } $templateLookObject = $objects[0]; $this->Settings['template_look_object'] = $templateLookObject; $this->Settings['template_look_object_id'] = $templateLookObject->attribute('id'); if (!is_array($parameters)) { return; } $this->addSetting('admin_account_id', eZSiteInstaller::getParam($parameters, 'object_remote_map/1bb4fe25487f05527efa8bfd394cecc7', '')); $this->addSetting('guest_accounts_id', eZSiteInstaller::getParam($parameters, 'object_remote_map/5f7f0bdb3381d6a461d8c29ff53d908f', '')); $this->addSetting('anonymous_accounts_id', eZSiteInstaller::getParam($parameters, 'object_remote_map/15b256dbea2ae72418ff5facc999e8f9', '')); $this->addSetting('package_object', eZSiteInstaller::getParam($parameters, 'package_object', false)); $this->addSetting('design_list', eZSiteInstaller::getParam($parameters, 'design_list', array())); $this->addSetting('main_site_design', strtolower($this->solutionName())); $this->addSetting('extension_list', array('ezwt', 'ezstarrating', 'ezgmaplocation', strtolower($this->solutionName()))); $this->addSetting('version', $this->solutionVersion()); $this->addSetting('locales', eZSiteInstaller::getParam($parameters, 'all_language_codes', array())); // usual user siteaccess like 'ezwebin_site' $this->addSetting('user_siteaccess', eZSiteInstaller::getParam($parameters, 'user_siteaccess', '')); // usual admin siteaccess like 'ezwebin_site_admin' $this->addSetting('admin_siteaccess', eZSiteInstaller::getParam($parameters, 'admin_siteaccess', '')); // extra siteaccess based on languages info, like 'eng', 'rus', ... $this->addSetting('language_based_siteaccess_list', $this->languageNameListFromLocaleList($this->setting('locales'))); $this->addSetting('user_siteaccess_list', array_merge(array($this->setting('user_siteaccess')), $this->setting('language_based_siteaccess_list'))); $this->addSetting('all_siteaccess_list', array_merge($this->setting('user_siteaccess_list'), array($this->setting('admin_siteaccess')))); $this->addSetting('access_type', eZSiteInstaller::getParam($parameters, 'site_type/access_type', '')); $this->addSetting('access_type_value', eZSiteInstaller::getParam($parameters, 'site_type/access_type_value', '')); $this->addSetting('admin_access_type_value', eZSiteInstaller::getParam($parameters, 'site_type/admin_access_type_value', '')); $this->addSetting('host', eZSiteInstaller::getParam($parameters, 'host', '')); $siteaccessUrls = array('admin' => $this->createSiteaccessUrls(array('siteaccess_list' => array($this->setting('admin_siteaccess')), 'access_type' => $this->setting('access_type'), 'access_type_value' => $this->setting('admin_access_type_value'), 'host' => $this->setting('host'), 'host_prepend_siteaccess' => false)), 'user' => $this->createSiteaccessUrls(array('siteaccess_list' => array($this->setting('user_siteaccess')), 'access_type' => $this->setting('access_type'), 'access_type_value' => $this->setting('access_type_value'), 'host' => $this->setting('host'), 'host_prepend_siteaccess' => false)), 'translation' => $this->createSiteaccessUrls(array('siteaccess_list' => $this->setting('language_based_siteaccess_list'), 'access_type' => $this->setting('access_type'), 'access_type_value' => $this->setting('access_type_value') + 1, 'host' => $this->setting('host'), 'exclude_port_list' => array($this->setting('admin_access_type_value'), $this->setting('access_type_value'))))); $this->addSetting('siteaccess_urls', $siteaccessUrls); $this->addSetting('primary_language', eZSiteInstaller::getParam($parameters, 'all_language_codes/0', '')); $this->addSetting('var_dir', eZSiteInstaller::getParam($parameters, 'var_dir', 'var/' . $this->setting('user_siteaccess'))); }
function updateClassAttributes( $params ) { $classInfo = $params['class']; $attributesInfo = $params['attributes']; $contentClassID = eZSiteInstaller::classIDbyIdentifier( $classInfo ); if( $contentClassID ) { foreach( $attributesInfo as $attributeInfo ) { $attributeIdentifier = $attributeInfo['identifier']; $name = isset( $attributeInfo['new_name'] ) ? $attributeInfo['new_name'] : false; $classAttributeList = eZContentClassAttribute::fetchFilteredList( array( 'contentclass_id' => $contentClassID, 'identifier' => $attributeIdentifier ), true ); foreach( $classAttributeList as $attribute ) { if( $name !== false ) { $attribute->setName( $name ); } $attribute->store(); } } } }
// Do the job // include_once installScriptDir($packageRepository) . "/settings/ezwebininstaller.php"; $webinInstaller = new eZWebinInstaller($params); if (defined('EZWEBIN_INSTALLER_MAJOR_VERSION') && EZWEBIN_INSTALLER_MAJOR_VERSION >= "1.3") { $webinInstaller->createSiteAccess(array('src' => array('siteaccess' => $adminSiteaccess), 'dst' => array('siteaccess' => 'ezwebin_site_admin'))); $webinInstaller->createSiteAccess(array('src' => array('siteaccess' => $userSiteaccess), 'dst' => array('siteaccess' => 'ezwebin_site'))); $webinInstaller->preInstall(); installPackages($packageList, $installParameters); $webinInstaller->install(); $siteaccessUrls = $webinInstaller->setting('siteaccess_urls'); } else { // // BC for eZWebin < 1.3 // $siteInstaller = new eZSiteInstaller(); $params['locales'] = $params['all_language_codes']; // 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;