function load($use_cache = true) { // temporarely hide the cache display problem // http://ez.no/community/bugs/char_transform_cache_file_is_not_valid_php //$use_cache = false; $cache_dir = "var/cache/codepages/"; $cache_filename = md5($this->InputCharsetCode . $this->OutputCharsetCode); $cache = $cache_dir . $cache_filename . ".php"; if (!eZCodePage::exists($this->InputCharsetCode)) { $input_file = eZCodePage::fileName($this->InputCharsetCode); eZDebug::writeWarning("Couldn't load input codepage file {$input_file}", "eZCodePageMapper"); return false; } if (!eZCodePage::exists($this->OutputCharsetCode)) { $output_file = eZCodePage::fileName($this->OutputCharsetCode); eZDebug::writeWarning("Couldn't load output codepage file {$output_file}", "eZCodePageMapper"); return false; } $this->Valid = false; if (file_exists($cache) and $use_cache) { $cache_m = filemtime($cache); if (eZCodePage::fileModification($this->InputCharsetCode) <= $cache_m and eZCodePage::fileModification($this->OutputCharsetCode) <= $cache_m) { unset($eZCodePageMapperCacheCodeDate); $in_out_map =& $this->InputOutputMap; $out_in_map =& $this->OutputInputMap; eZDebug::writeDebug('loading cache from: ' . $cache, __METHOD__); include $cache; if (isset($eZCodePageMapperCacheCodeDate) or $eZCodePageMapperCacheCodeDate == self::CACHE_CODE_DATE) { $this->Valid = true; return; } } } $this->InputOutputMap = array(); $this->OutputInputMap = array(); $input_codepage = eZCodePage::instance($this->InputCharsetCode); $output_codepage = eZCodePage::instance($this->OutputCharsetCode); if (!$input_codepage->isValid()) { eZDebug::writeError("Input codepage for " . $this->InputCharsetCode . " is not valid", "eZCodePageMapper"); return false; } if (!$output_codepage->isValid()) { eZDebug::writeError("Output codepage for " . $this->OutputCharsetCode . " is not valid", "eZCodePageMapper"); return false; } $min = max($input_codepage->minCharValue(), $output_codepage->minCharValue()); $max = min($input_codepage->maxCharValue(), $output_codepage->maxCharValue()); for ($i = $min; $i <= $max; ++$i) { $code = $i; $unicode = $input_codepage->codeToUnicode($code); if ($unicode !== null) { $output_code = $output_codepage->unicodeToCode($unicode); if ($output_code !== null) { $this->InputOutputMap[$code] = $output_code; $this->OutputInputMap[$output_code] = $code; } } } }
function initializeOutputCodepage() { $this->Codepage = eZCodePage::instance($this->OutputCharsetCode); }
function initialize() { if (ob_get_length() != 0) { ob_end_clean(); } $debugINI = eZINI::instance('debug.ini'); eZDebugSetting::setDebugINI($debugINI); // Initialize text codec settings $this->updateTextCodecSettings(); // Initialize debug settings $this->updateDebugSettings($this->UseDebugOutput); // Set the different permissions/settings. $ini = eZINI::instance(); $iniFilePermission = $ini->variable('FileSettings', 'StorageFilePermissions'); $iniDirPermission = $ini->variable('FileSettings', 'StorageDirPermissions'); $iniVarDirectory = eZSys::cacheDirectory(); eZCodePage::setPermissionSetting(array('file_permission' => octdec($iniFilePermission), 'dir_permission' => octdec($iniDirPermission), 'var_directory' => $iniVarDirectory)); eZExecution::addCleanupHandler('eZDBCleanup'); eZExecution::addFatalErrorHandler('eZFatalError'); eZDebug::setHandleType(eZDebug::HANDLE_FROM_PHP); if ($this->UseExtensions) { // Check for extension eZExtension::activateExtensions('default'); // Extension check end } else { if (!$this->isQuiet()) { $cli = eZCLI::instance(); $cli->output("Notice: This script uses 'use-extensions' => false, meaning extension settings are not loaded!"); } } $siteaccess = $this->SiteAccess; if ($siteaccess) { $access = array('name' => $siteaccess, 'type' => eZSiteAccess::TYPE_STATIC); } else { $ini = eZINI::instance(); $siteaccess = $ini->variable('SiteSettings', 'DefaultAccess'); $access = array('name' => $siteaccess, 'type' => eZSiteAccess::TYPE_DEFAULT); } $access = eZSiteAccess::change($access); if ($this->UseExtensions) { // Check for siteaccess extension eZExtension::activateExtensions('access'); // Extension check end } // Now that all extensions are activated and siteaccess has been changed, reset // all eZINI instances as they may not take into account siteaccess specific settings. eZINI::resetAllInstances(false); // Set the global setting which is read by the session lib $GLOBALS['eZSiteBasics']['session-required'] = $this->UseSession; if ($this->UseSession) { $db = eZDB::instance(); if ($db->isConnected()) { eZSession::start(); } else { $this->setIsInitialized(false); $this->InitializationErrorMessage = 'database error: ' . $db->errorMessage(); return; } } if ($this->User) { $userLogin = $this->User['login']; $userPassword = $this->User['password']; if ($userLogin and $userPassword) { $userID = eZUser::loginUser($userLogin, $userPassword); if (!$userID) { $cli = eZCLI::instance(); if ($this->isLoud()) { $cli->warning('Failed to login with user ' . $userLogin); } eZExecution::cleanup(); eZExecution::setCleanExit(); } } } // Initialize module handling if ($this->UseModules) { $moduleRepositories = eZModule::activeModuleRepositories($this->UseExtensions); eZModule::setGlobalPathList($moduleRepositories); } $this->setIsInitialized(true); }
static function setPermissionSetting($permissionArray) { // eZDebug::writeDebug( "setPermissionSetting was called..." ); $GLOBALS['EZCODEPAGEPERMISSIONS'] = $permissionArray; if ($permissionArray !== false) { eZCodePage::flushCacheObject(); } }