/**
     * Constructor
     * For more info see {@link eZXMLInputHandler::eZXMLInputHandler()}
     *
     * @param string $xmlData
     * @param string $aliasedType
     * @param eZContentObjectAttribute $contentObjectAttribute
     */
    function eZOEXMLInput( &$xmlData, $aliasedType, $contentObjectAttribute )
    {
        $this->eZXMLInputHandler( $xmlData, $aliasedType, $contentObjectAttribute );

        $contentIni = eZINI::instance( 'content.ini' );
        if ( $contentIni->hasVariable( 'header', 'UseStrictHeaderRule' ) === true )
        {
            if ( $contentIni->variable( 'header', 'UseStrictHeaderRule' ) === 'true' )
                $this->IsStrictHeader = true;
        }

        $this->eZPublishVersion = eZPublishSDK::majorVersion() + eZPublishSDK::minorVersion() * 0.1;

        $ezxmlIni = eZINI::instance( 'ezxml.ini' );
        if ( $ezxmlIni->hasVariable( 'InputSettings', 'AllowMultipleSpaces' ) === true )
        {
            $allowMultipleSpaces = $ezxmlIni->variable( 'InputSettings', 'AllowMultipleSpaces' );
            $this->allowMultipleSpaces = $allowMultipleSpaces === 'true' ? true : false;
        }
        if ( $ezxmlIni->hasVariable( 'InputSettings', 'AllowNumericEntities' ) )
        {
            $allowNumericEntities = $ezxmlIni->variable( 'InputSettings', 'AllowNumericEntities' );
            $this->allowNumericEntities = $allowNumericEntities === 'true' ? true : false;
        }
    }
예제 #2
0
 /**
  * Abstract method to initialize a template and eventually takes advantage of new 4.3 TPL API
  * @return eZTemplate
  */
 public static function templateInit()
 {
     $tpl = null;
     if (eZPublishSDK::majorVersion() >= 4 && eZPublishSDK::minorVersion() < 3) {
         include_once 'kernel/common/template.php';
         $tpl = templateInit();
     } else {
         $tpl = eZTemplate::factory();
     }
     return $tpl;
 }
예제 #3
0
 static function version($withRelease = true, $asAlias = false, $withState = true)
 {
     if ($asAlias) {
         $versionText = eZPublishSDK::alias();
         if ($withState) {
             $versionText .= "-" . eZPublishSDK::state();
         }
     } else {
         $versionText = 'Community Project ' . eZPublishSDK::majorVersion() . '.' . eZPublishSDK::minorVersion();
         //            $development = eZPublishSDK::developmentVersion();
         //            if ( $development !== false )
         //                $versionText .= '.' . $development;
     }
     return $versionText;
 }
예제 #4
0
 function fetchMajorVersion()
 {
     return array('result' => eZPublishSDK::majorVersion());
 }
예제 #5
0
 function eZXMLInputParser($validateErrorLevel = self::ERROR_NONE, $detectErrorLevel = self::ERROR_NONE, $parseLineBreaks = false, $removeDefaultAttrs = false)
 {
     // Back-compatibility fixes:
     if ($detectErrorLevel === self::SHOW_SCHEMA_ERRORS) {
         $detectErrorLevel = self::ERROR_SCHEMA;
     } elseif ($detectErrorLevel === self::SHOW_ALL_ERRORS) {
         $detectErrorLevel = self::ERROR_ALL;
     }
     if ($validateErrorLevel === false) {
         $validateErrorLevel = self::ERROR_NONE;
     } elseif ($validateErrorLevel === true) {
         $validateErrorLevel = $detectErrorLevel;
     }
     $this->ValidateErrorLevel = $validateErrorLevel;
     $this->DetectErrorLevel = $detectErrorLevel;
     $this->RemoveDefaultAttrs = $removeDefaultAttrs;
     $this->ParseLineBreaks = $parseLineBreaks;
     $this->XMLSchema = eZXMLSchema::instance();
     $this->eZPublishVersion = eZPublishSDK::majorVersion() + eZPublishSDK::minorVersion() * 0.1;
     $ini = eZINI::instance('ezxml.ini');
     if ($ini->hasVariable('InputSettings', 'TrimSpaces')) {
         $trimSpaces = $ini->variable('InputSettings', 'TrimSpaces');
         $this->TrimSpaces = $trimSpaces == 'true' ? true : false;
     }
     if ($ini->hasVariable('InputSettings', 'AllowMultipleSpaces')) {
         $allowMultipleSpaces = $ini->variable('InputSettings', 'AllowMultipleSpaces');
         $this->AllowMultipleSpaces = $allowMultipleSpaces == 'true' ? true : false;
     }
     if ($ini->hasVariable('InputSettings', 'AllowNumericEntities')) {
         $allowNumericEntities = $ini->variable('InputSettings', 'AllowNumericEntities');
         $this->AllowNumericEntities = $allowNumericEntities == 'true' ? true : false;
     }
     $contentIni = eZINI::instance('content.ini');
     $useStrictHeaderRule = $contentIni->variable('header', 'UseStrictHeaderRule');
     $this->StrictHeaders = $useStrictHeaderRule == 'true' ? true : false;
 }
예제 #6
0
    /**
     * @param \eZTemplate $mailTpl
     * @param array $userData
     *
     * @return array|null|string
     */
    function generateRegistration( eZTemplate $mailTpl, array $userData )
    {
        $databaseMap = eZSetupDatabaseMap();
        $databaseInfo = $this->PersistenceList['database_info'];
        $databaseInfo['info'] = $databaseMap[$databaseInfo['type']];
        $regionalInfo = $this->PersistenceList['regional_info'];
        if ( !isset( $regionalInfo['languages'] ) )
            $regionalInfo['languages'] = array();

        $emailInfo = $this->PersistenceList['email_info'];

        $siteType = $this->chosenSiteType();


        $url = $siteType['url'];
        if ( !preg_match( "#^[a-zA-Z0-9]+://(.*)$#", $url ) )
        {
            $url = 'http://' . $url;
        }
        $currentURL = $url;
        $adminURL = $url;
        if ( $siteType['access_type'] == 'url' )
        {
            $url .= '/' . $siteType['access_type_value'];
            $adminURL .= '/' . $siteType['admin_access_type_value'];
        }
        else if ( $siteType['access_type'] == 'hostname' )
        {
            $url = eZHTTPTool::createRedirectURL( 'http://' . $siteType['access_type_value'] );
            $adminURL = eZHTTPTool::createRedirectURL( 'http://' . $siteType['admin_access_type_value'] );
        }
        else if ( $siteType['access_type'] == 'port' )
        {
            $url = eZHTTPTool::createRedirectURL( $currentURL, array( 'override_port' => $siteType['access_type_value'] ) );
            $adminURL = eZHTTPTool::createRedirectURL( $currentURL, array( 'override_port' => $siteType['admin_access_type_value'] ) );
        }
        $siteType['url'] = $url;
        $siteType['admin_url'] = $adminURL;


        $testsRun = $this->PersistenceList['tests_run'];
        $imageMagickProgram = $this->PersistenceList['imagemagick_program'];
        $imageGDExtension = $this->PersistenceList['imagegd_extension'];
        $phpVersion = $this->PersistenceList['phpversion'];
        $phpVersion['sapi'] = PHP_SAPI;

        $webserverInfo = false;
        if ( function_exists( 'apache_get_version' ) )
        {
            $webserverInfo = array( 'version' => apache_get_version() );
        }
        else if ( !empty( $_SERVER['SERVER_SOFTWARE'] ) )
        {
            $webserverInfo = array( 'version' => $_SERVER['SERVER_SOFTWARE'] );
        }

        $systemInfo = new eZSysInfo();
        $systemInfo->scan();

        $optionalTests = eZSetupOptionalTests();
        $runResult = eZSetupRunTests( $optionalTests, 'eZSetup:init:send_registration', $this->PersistenceList );
        $testResults = $runResult['results'];

        // Generate email body e-mail
        $mailTpl->setVariable( 'user_data', $userData );
        $mailTpl->setVariable( 'database_info', $databaseInfo );
        $mailTpl->setVariable( 'regional_info', $regionalInfo );
        $mailTpl->setVariable( 'email_info', $emailInfo );
        $mailTpl->setVariable( 'site_type', $siteType );
        $mailTpl->setVariable( 'tests_run', $testsRun );
        $mailTpl->setVariable( 'imagemagick_program', $imageMagickProgram );
        $mailTpl->setVariable( 'imagegd_extension', $imageGDExtension );
        $mailTpl->setVariable( 'phpversion', $phpVersion );
        $mailTpl->setVariable( 'webserver', $webserverInfo );
        $mailTpl->setVariable( 'system', $systemInfo );
        $mailTpl->setVariable( 'os', array( 'name' => php_uname() ) );
        $mailTpl->setVariable( 'optional_tests', $testResults );
        $mailTpl->setVariable( "version", array( "text" => eZPublishSDK::version(),
                                                 "major" => eZPublishSDK::majorVersion(),
                                                 "minor" => eZPublishSDK::minorVersion(),
                                                 "release" => eZPublishSDK::release() ) );

        return $mailTpl->fetch( 'design:setup/registration_email.tpl' );
    }
예제 #7
0
 function eZXMLSchema()
 {
     $ini = eZINI::instance('content.ini');
     // Get inline custom tags list
     $this->Schema['custom']['isInline'] = $ini->variable('CustomTagSettings', 'IsInline');
     if (!is_array($this->Schema['custom']['isInline'])) {
         $this->Schema['custom']['isInline'] = array();
     }
     $this->Schema['custom']['tagList'] = $ini->variable('CustomTagSettings', 'AvailableCustomTags');
     if (!is_array($this->Schema['custom']['tagList'])) {
         $this->Schema['custom']['tagList'] = array();
     }
     $eZPublishVersion = eZPublishSDK::majorVersion() + eZPublishSDK::minorVersion() * 0.1;
     // Get all tags available classes list
     foreach (array_keys($this->Schema) as $tagName) {
         if ($ini->hasVariable($tagName, 'AvailableClasses')) {
             $avail = $ini->variable($tagName, 'AvailableClasses');
             if (is_array($avail) && count($avail)) {
                 $this->Schema[$tagName]['classesList'] = $avail;
             } else {
                 $this->Schema[$tagName]['classesList'] = array();
             }
         } else {
             $this->Schema[$tagName]['classesList'] = array();
         }
     }
     // Fix for empty paragraphs setting
     $allowEmptyParagraph = $ini->variable('paragraph', 'AllowEmpty');
     $this->Schema['paragraph']['childrenRequired'] = $allowEmptyParagraph == 'true' ? false : true;
     // Get all tags custom attributes list
     $ini = eZINI::instance('content.ini');
     foreach (array_keys($this->Schema) as $tagName) {
         if ($tagName == 'custom') {
             // Custom attributes of custom tags
             foreach ($this->Schema['custom']['tagList'] as $customTagName) {
                 if ($ini->hasVariable($customTagName, 'CustomAttributes')) {
                     $avail = $ini->variable($customTagName, 'CustomAttributes');
                     if (is_array($avail) && count($avail)) {
                         $this->Schema['custom']['customAttributes'][$customTagName] = $avail;
                     } else {
                         $this->Schema['custom']['customAttributes'][$customTagName] = array();
                     }
                 } else {
                     $this->Schema['custom']['customAttributes'][$customTagName] = array();
                 }
             }
         } else {
             // Custom attributes of regular tags
             if ($ini->hasVariable($tagName, 'CustomAttributes')) {
                 $avail = $ini->variable($tagName, 'CustomAttributes');
                 if (is_array($avail) && count($avail)) {
                     $this->Schema[$tagName]['customAttributes'] = $avail;
                 } else {
                     $this->Schema[$tagName]['customAttributes'] = array();
                 }
             } else {
                 $this->Schema[$tagName]['customAttributes'] = array();
             }
         }
     }
 }
예제 #8
0
 function generateRegistration($mailTpl, $comments)
 {
     $databaseMap = eZSetupDatabaseMap();
     $databaseInfo = $this->PersistenceList['database_info'];
     $databaseInfo['info'] = $databaseMap[$databaseInfo['type']];
     $regionalInfo = $this->PersistenceList['regional_info'];
     if (!isset($regionalInfo['languages'])) {
         $regionalInfo['languages'] = array();
     }
     //        $demoData = $this->PersistenceList['demo_data'];
     $emailInfo = $this->PersistenceList['email_info'];
     $siteTemplates = array();
     $siteType = $this->chosenSiteType();
     /* $typeFunctionality = eZSetupFunctionality( $siteType['identifier'] );
        $additionalPackages = array();
        if ( isset( $this->PersistenceList['additional_packages'] ) )
            $additionalPackages = $this->PersistenceList['additional_packages'];
        $extraFunctionality = array_merge( $additionalPackages,
                                           $typeFunctionality['required'] );
        $extraFunctionality = array_unique( $extraFunctionality );*/
     $url = $siteType['url'];
     if (!preg_match("#^[a-zA-Z0-9]+://(.*)\$#", $url)) {
         $url = 'http://' . $url;
     }
     $currentURL = $url;
     $adminURL = $url;
     if ($siteType['access_type'] == 'url') {
         $url .= '/' . $siteType['access_type_value'];
         $adminURL .= '/' . $siteType['admin_access_type_value'];
     } else {
         if ($siteType['access_type'] == 'hostname') {
             $url = eZHTTPTool::createRedirectURL('http://' . $siteType['access_type_value']);
             $adminURL = eZHTTPTool::createRedirectURL('http://' . $siteType['admin_access_type_value']);
         } else {
             if ($siteType['access_type'] == 'port') {
                 $url = eZHTTPTool::createRedirectURL($currentURL, array('override_port' => $siteType['access_type_value']));
                 $adminURL = eZHTTPTool::createRedirectURL($currentURL, array('override_port' => $siteType['admin_access_type_value']));
             }
         }
     }
     $siteType['url'] = $url;
     $siteType['admin_url'] = $adminURL;
     //$siteType['extra_functionality'] = $extraFunctionality;
     $testsRun = $this->PersistenceList['tests_run'];
     $imageMagickProgram = $this->PersistenceList['imagemagick_program'];
     $imageGDExtension = $this->PersistenceList['imagegd_extension'];
     $phpVersion = $this->PersistenceList['phpversion'];
     $webserverInfo = false;
     if (function_exists('apache_get_version')) {
         $webserverInfo = array('version' => apache_get_version());
     }
     $systemInfo = new eZSysInfo();
     $systemInfo->scan();
     $optionalTests = eZSetupOptionalTests();
     $testTable = eZSetupTestTable();
     $runResult = eZSetupRunTests($optionalTests, 'eZSetup:init:send_registration', $this->PersistenceList);
     $testResults = $runResult['results'];
     $testResult = $runResult['result'];
     $successCount = $runResult['success_count'];
     $persistenceData = $runResult['persistence_list'];
     // Send e-mail
     $mailTpl->setVariable('comments', $comments);
     $mailTpl->setVariable('database_info', $databaseInfo);
     $mailTpl->setVariable('regional_info', $regionalInfo);
     //        $mailTpl->setVariable( 'demo_data', $demoData );
     $mailTpl->setVariable('email_info', $emailInfo);
     $mailTpl->setVariable('site_type', $siteType);
     $mailTpl->setVariable('tests_run', $testsRun);
     $mailTpl->setVariable('imagemagick_program', $imageMagickProgram);
     $mailTpl->setVariable('imagegd_extension', $imageGDExtension);
     $mailTpl->setVariable('phpversion', $phpVersion);
     $mailTpl->setVariable('webserver', $webserverInfo);
     $mailTpl->setVariable('system', $systemInfo);
     $mailTpl->setVariable('os', array('name' => php_uname()));
     $mailTpl->setVariable('optional_tests', $testResults);
     $mailTpl->setVariable("version", array("text" => eZPublishSDK::version(), "major" => eZPublishSDK::majorVersion(), "minor" => eZPublishSDK::minorVersion(), "release" => eZPublishSDK::release()));
     return $mailTpl->fetch('design:setup/registration_email.tpl');
 }
예제 #9
0
 /**
  * Wrapper method to initialize a template and eventually takes advantage of new 4.3 TPL API
  * @return eZTemplate
  */
 public static function eZTemplateFactory()
 {
     if (eZPublishSDK::majorVersion() == 4 && eZPublishSDK::minorVersion() < 3) {
         include_once 'kernel/common/template.php';
         return templateInit();
     } else {
         return eZTemplate::factory();
     }
 }
예제 #10
0
파일: ezsetup.php 프로젝트: legende91/ez
    }
}
$done = false;
$result = null;
while (!$done && $step != null) {
    // Some common variables for all steps
    $tpl->setVariable("script", eZSys::serverVariable('PHP_SELF'));
    $siteBasics = $GLOBALS['eZSiteBasics'];
    $useIndex = $siteBasics['validity-check-required'];
    if ($useIndex) {
        $script = eZSys::wwwDir() . eZSys::indexFileName();
    } else {
        $script = eZSys::indexFile() . "/setup/{$partName}";
    }
    $tpl->setVariable('script', $script);
    $tpl->setVariable("version", array("text" => eZPublishSDK::version(), "major" => eZPublishSDK::majorVersion(), "minor" => eZPublishSDK::minorVersion(), "release" => eZPublishSDK::release(), "alias" => eZPublishSDK::alias()));
    if ($persistenceList === null) {
        $persistenceList = eZSetupFetchPersistenceList();
    }
    $tpl->setVariable('persistence_list', $persistenceList);
    // Try to include the relevant file
    $includeFile = $baseDir . 'steps/ezstep_' . $step['file'] . '.php';
    $stepClass = false;
    if (file_exists($includeFile)) {
        include_once $includeFile;
        $className = 'eZStep' . $step['class'];
        if ($step == $currentStep) {
            $stepInstaller = $previousStepClass;
        } else {
            $stepInstaller = new $className($tpl, $http, $ini, $persistenceList);
        }
예제 #11
0
foreach (array('xmlrpc', 'jsonrpc', 'ezjscore', 'soap', 'rest v1', 'rest v2') as $i => $protocol) {
    $method = '';
    if ($protocol == 'ezjscore') {
        $uri = "ezjscore/call";
    } elseif ($protocol == 'soap') {
        $wsINI = eZINI::instance('soap.ini');
        $uri = "webservices/wsdl";
    } else {
        if ($protocol == 'rest v1') {
            $uri = "api/ezp/v1";
            $restv1 = in_array('ezprestapiprovider', eZExtension::activeExtensions());
            $method = '/';
        } else {
            if ($protocol == 'rest v2') {
                $uri = "api/ezp/v2";
                $ver = eZPublishSDK::majorVersion();
                $restv2 = $ver >= 2012 & eZPublishSDK::minorVersion() >= 9 || $ver >= 5 && $ver < 2011;
                $method = '/';
            } else {
                $uri = "webservices/execute/{$protocol}";
            }
        }
    }
    eZURI::transformURI($uri, false, 'full');
    if ($protocol == 'rest v2' || $protocol == 'rest v1') {
        // for now, manually remove siteaccess name if found in url
        $sa = $GLOBALS['eZCurrentAccess']['name'];
        $uri = str_replace("/{$sa}/", "/", $uri);
    }
    /// @todo disable link if ezjscore not active, enable rest v1 and rest v2 ...
    if ($protocol == 'ezjscore' && in_array('ezjscore', eZExtension::activeExtensions()) || $protocol != 'ezjscore' && $protocol != 'rest v1' && $protocol != 'rest v2' && $wsINI->variable('GeneralSettings', 'Enable' . strtoupper($protocol)) == 'true' || $protocol == 'rest v1' && $restv1 || $protocol == 'rest v2' && $restv2) {
예제 #12
0
while( !$done && $step != null )
{
// Some common variables for all steps
    $tpl->setVariable( "script", eZSys::serverVariable( 'PHP_SELF' ) );

    $siteBasics = $GLOBALS['eZSiteBasics'];
    $useIndex = $siteBasics['validity-check-required'];

    if ( $useIndex )
        $script = eZSys::wwwDir() . eZSys::indexFileName();
    else
        $script = eZSys::indexFile() . "/setup/$partName";
    $tpl->setVariable( 'script', $script );

    $tpl->setVariable( "version", array( "text" => eZPublishSDK::version(),
                                         "major" => eZPublishSDK::majorVersion(),
                                         "minor" => eZPublishSDK::minorVersion(),
                                         "release" => eZPublishSDK::release(),
                                         "alias" => eZPublishSDK::alias() ) );

    if ( $persistenceList === null )
        $persistenceList = eZSetupFetchPersistenceList();
    $tpl->setVariable( 'persistence_list', $persistenceList );

    // Try to include the relevant file
    $includeFile = $baseDir . 'steps/ezstep_'.$step['file'].'.php';
    $stepClass = false;
    if ( file_exists( $includeFile ) )
    {
        include_once( $includeFile );
        $className = 'eZStep'.$step['class'];