function changeSiteAccessSetting(&$siteaccess, $optionData) { $cli = eZCLI::instance(); if (file_exists('settings/siteaccess/' . $optionData)) { $siteaccess = $optionData; return "Using siteaccess {$siteaccess} for cronjob"; } elseif (isExtensionSiteaccess($optionData)) { $siteaccess = $optionData; eZExtension::prependExtensionSiteAccesses($siteaccess); return "Using extension siteaccess {$siteaccess} for cronjob"; } else { return "Siteaccess {$optionData} does not exist, using default siteaccess"; } }
function changeSiteAccessSetting(&$siteaccess, $optionData) { global $cronPart; $cli = eZCLI::instance(); if (file_exists('settings/siteaccess/' . $optionData)) { $siteaccess = $optionData; $cli->output("Using siteaccess {$siteaccess} for cronjob"); } elseif (isExtensionSiteaccess($optionData)) { $siteaccess = $optionData; $cli->output("Using extension siteaccess {$siteaccess} for cronjob"); eZExtension::prependExtensionSiteAccesses($siteaccess); } else { $cli->notice("Siteaccess {$optionData} does not exist, using default siteaccess"); } }
function changeSiteAccessSetting( $siteaccess ) { global $cli; if ( file_exists( 'settings/siteaccess/' . $siteaccess ) ) { $cli->notice( 'Using siteaccess "' . $siteaccess . '" for installation from XML' ); } elseif ( isExtensionSiteaccess( $siteaccess ) ) { $cli->notice( 'Using extension siteaccess "' . $siteaccess . '" for installation from XML' ); eZExtension::prependExtensionSiteAccesses( $siteaccess ); } else { $cli->notice( 'Siteaccess "' . $siteaccess . '" does not exist, using default siteaccess' ); } }
/** * Changes the site access to what's defined in $access. It will change the * access path in eZSys and prepend an override dir to eZINI * Note: does not load extensions, use {@link eZSiteAccess::load()} if you want that * * @since 4.4 * @param array $access An associative array with 'name' (string), 'type' (int) and 'uri_part' (array). * See {@link eZSiteAccess::match()} for array structure definition * @param eZINI|null $siteINI Optional parameter to be able to only do change on specific instance of site.ini * hence skip changing eZSys access paths (but not siteaccess, see {@link eZSiteAccess::load()}) * @return array The $access parameter */ static function change( array $access, eZINI $siteINI = null ) { $name = $access['name']; $GLOBALS['eZCurrentAccess'] =& $access; if ( $siteINI !== null ) { $ini = $siteINI; } else { $ini = eZINI::instance(); } $ini->prependOverrideDir( "siteaccess/$name", false, 'siteaccess', 'siteaccess' ); /* Make sure extension siteaccesses are prepended */ eZExtension::prependExtensionSiteAccesses( $name, $ini ); $ini->loadCache(); // change some global settings if $siteINI is null if ( $siteINI === null ) { eZSys::clearAccessPath(); if ( !isset( $access['uri_part'] ) || $access['uri_part'] === null ) { if ( $ini->hasVariable('SiteSettings', 'SiteUriParts') ) $access['uri_part'] = $ini->variable('SiteSettings', 'SiteUriParts'); else if ( isset( $access['type'] ) && $access['type'] === eZSiteAccess::TYPE_URI ) $access['uri_part'] = array( $access['name'] ); else $access['uri_part'] = array(); } eZSys::setAccessPath( $access['uri_part'], $name ); eZUpdateDebugSettings(); eZDebugSetting::writeDebug( 'kernel-siteaccess', "Updated settings to use siteaccess '$name'", __METHOD__ ); } return $access; }
function findInputFiles(&$inputFiles, &$iniFile) { if ($this->RootDir !== false) { $iniFile = eZDir::path(array($this->RootDir, $this->FileName)); } else { $iniFile = eZDir::path(array($this->FileName)); } $inputFiles = array(); if ($this->FileName === 'override.ini') { eZExtension::prependExtensionSiteAccesses(false, $this, true, false, false); } if (file_exists($iniFile)) { $inputFiles[] = $iniFile; } // try the same file name with '.append.php' replace with '.append' if (strpos($iniFile, '.append.php') !== false && preg_match('#^(.+.append).php$#i', $iniFile, $matches) && file_exists($matches[1])) { $inputFiles[] = $matches[1]; } if (strpos($iniFile, '.php') === false && file_exists($iniFile . '.php')) { $inputFiles[] = $iniFile . '.php'; } if ($this->DirectAccess) { if (file_exists($iniFile . '.append')) { eZDebug::writeStrict("INI files with *.ini.append suffix is DEPRECATED, use *.ini or *.ini.append.php instead: {$iniFile}.append", __METHOD__); $inputFiles[] = $iniFile . '.append'; } if (file_exists($iniFile . '.append.php')) { $inputFiles[] = $iniFile . '.append.php'; } } else { $overrideDirs = $this->overrideDirs(); $fileName = $this->FileName; $rootDir = $this->RootDir; foreach ($overrideDirs as $overrideDirItem) { $overrideDir = $overrideDirItem[0]; $isGlobal = $overrideDirItem[1]; if ($isGlobal) { $overrideFile = eZDir::path(array($overrideDir, $fileName)); } else { $overrideFile = eZDir::path(array($rootDir, $overrideDir, $fileName)); } if (file_exists($overrideFile . '.php')) { eZDebug::writeStrict("INI files with *.ini.php suffix is DEPRECATED, use *.ini or *.ini.append.php instead: {$overrideFile}.php", __METHOD__); $inputFiles[] = $overrideFile . '.php'; } if (file_exists($overrideFile)) { $inputFiles[] = $overrideFile; } if (file_exists($overrideFile . '.append.php')) { $inputFiles[] = $overrideFile . '.append.php'; } if (file_exists($overrideFile . '.append')) { eZDebug::writeStrict("INI files with *.ini.append suffix is DEPRECATED, use *.ini or *.ini.append.php instead: {$overrideFile}.append", __METHOD__); $inputFiles[] = $overrideFile . '.append'; } } } }
/** * Switch the siteaccess during runtime. * * WARNING: eZ publish does not support unloading extensions very well. Using this method might * leave the system with partly registered extensions! * * @param string $requested_siteaccess The name of an existing real siteaccess. * @param string $virtual_siteaccess The name of an optional virtual siteaccess. * @return boolean true on success - otherwise false * @access private * @author ymc-dabe */ private function switchSiteaccessInternally($requested_siteaccess = false, $virtual_siteaccess = false) { if (self::getCurrentSiteaccess() === null) { return false; } //We might simply want to switch back to the original siteaccess... if ($requested_siteaccess === false and $virtual_siteaccess === false) { $requested_siteaccess = $this->attribute('original_non_virtual_siteaccess'); $virtual_siteaccess = $this->attribute('original_virtual_siteaccess'); } if (!$this->attribute('is_enabled')) { eZDebug::writeError("The ymcExtensionLoader is disabled, but " . __METHOD__ . " has just been called (which really shouldn't be done)!", __METHOD__); return false; } //no switching needed. bye. if ($requested_siteaccess == self::getCurrentNonVirtualSiteaccess() and $virtual_siteaccess == self::getCurrentVirtualSiteaccess()) { return true; } //Reset the loaded extensions... self::$earlyLoadingCompleted = false; $this->standardLoadingCompleted = false; $this->virtualLoadingCompleted = false; $this->loadingCompleted = false; $this->registeredExtensions = array(); $this->non_virtual_siteaccess_name = false; //Reset all loaded INIs unset($GLOBALS["eZINIOverrideDirList"]); //Set no siteaccess self::setInternalSiteaccess(null); //Initialise INI (using site.ini) $ini = eZINI::instance(); //FLush the INI-Cache (of site.ini) $ini->loadCache(); //Activate basic extensions $this->registerExtensions(); //Set the requested siteaccess and load it self::setInternalSiteaccess($requested_siteaccess); //Advice new INI-files to use (as it is done by eZ publish on startup if (file_exists("settings/siteaccess/{$requested_siteaccess}")) { $ini->prependOverrideDir("siteaccess/{$requested_siteaccess}", false, 'siteaccess'); } eZExtension::prependExtensionSiteAccesses($requested_siteaccess); //FLush the INI-Cache (of site.ini) $ini->loadCache(); //Register access-extensions $this->registerExtensions(); //Activate the virtual_siteaccess if needed if ($virtual_siteaccess !== false) { $this->registerExtensions($virtual_siteaccess); } return true; }