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);
 }
Exemplo n.º 3
0
 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);
 }
Exemplo n.º 4
0
 static function setPermissionSetting($permissionArray)
 {
     //         eZDebug::writeDebug( "setPermissionSetting was called..." );
     $GLOBALS['EZCODEPAGEPERMISSIONS'] = $permissionArray;
     if ($permissionArray !== false) {
         eZCodePage::flushCacheObject();
     }
 }