}
 while (is_object($var5) and method_exists($var5, 'templateValue')) {
     $var5 = $var5->templateValue();
 }
 while (is_object($var5) and method_exists($var5, 'templateValue')) {
     $var5 = $var5->templateValue();
 }
 $var1 = 'content/edit/' . $var3 . '/f/' . $var5;
 unset($var3, $var5);
 if (!isset($var1)) {
     $var1 = NULL;
 }
 while (is_object($var1) and method_exists($var1, 'templateValue')) {
     $var1 = $var1->templateValue();
 }
 eZURI::transformURI($var1, false, eZURI::getTransformURIMode());
 $var = $var1;
 unset($var1);
 if (!isset($var)) {
     $var = NULL;
 }
 while (is_object($var) and method_exists($var, 'templateValue')) {
     $var = $var->templateValue();
 }
 $text .= $var;
 unset($var);
 $text .= '">
     <img src="/design/standard/images/edit.gif" width="16" height="16" alt="Modifier" title="';
 unset($var);
 unset($var1);
 unset($var3);
 public static function addNode(xrowSitemap $sitemap, eZContentObjectTreeNode $node)
 {
     $site_ini = eZINI::instance('site.ini');
     $ini = eZINI::instance('xrowsitemap.ini');
     if (self::excludeNode($node)) {
         return false;
     }
     $extensions = array();
     $meta = xrowMetaDataFunctions::fetchByNode($node);
     if ($meta and $meta->sitemap_use == '0') {
         return false;
     } elseif ($meta === false and $ini->variable('Settings', 'AlwaysAdd') == 'disabled') {
         return false;
     }
     /*if ( $ini->hasVariable( 'ExtraAttributeFilter_1', 'Value' ) )
       {
           $offlineNummer = $ini->variable( 'ExtraAttributeFilter_1', 'Value' );
           if(in_array($offlineNummer,$node->attribute('object')->attribute('state_id_array')))
           {
               return false;
           }
       }*/
     if ($ini->hasVariable('SitemapSettings', 'GalleryClasses') and $node->attribute('parent') instanceof eZContentObjectTreeNode and in_array($node->attribute('parent')->attribute('class_identifier'), $ini->variable('SitemapSettings', 'GalleryClasses')) and in_array($node->attribute('class_identifier'), $ini->variable('SitemapSettings', 'ImageClasses'))) {
         return false;
     }
     $extensions[] = new xrowSitemapItemModified($node->attribute('modified_subnode'));
     $url = $node->attribute('url_alias');
     $urlAlias = $url;
     // $urlAlias is kept 'as is' to be able to generate these links
     eZURI::transformURI($urlAlias, true);
     if ($ini->hasVariable('SitemapSettings', 'CreateAlternateLink')) {
         if ($ini->hasVariable('SitemapSettings', 'MobileSiteAccessName') && $ini->hasVariable('SitemapSettings', 'MobileSiteAccessName') != '') {
             $mobileSiteAccess = $ini->variable('SitemapSettings', 'MobileSiteAccessName');
             $mobileURL = 'http://' . self::domain() . '/' . $mobileSiteAccess . $urlAlias;
         }
         if ($ini->hasVariable('SitemapSettings', 'MobileDomainName') && $ini->hasVariable('SitemapSettings', 'MobileDomainName') != '') {
             $mobileDomain = $ini->variable('SitemapSettings', 'MobileDomainName');
             $mobileURL = 'http://' . $mobileDomain . $urlAlias;
         }
         $extensions[] = new xrowSitemapItemAlternateLink($mobileURL);
     }
     $transformURIMode = eZURI::getTransformURIMode();
     // force URL to be generated in 'full mode' if MatchOrder != uri
     if ($site_ini->variable('SiteAccessSettings', 'MatchOrder') != 'uri') {
         $transformURIMode = 'full';
     }
     eZURI::transformURI($url, true, $transformURIMode);
     // only the URI mode is fully compatible with this $url generation
     if ($site_ini->variable('SiteAccessSettings', 'MatchOrder') == 'uri') {
         if ($site_ini->variable('SiteAccessSettings', 'RemoveSiteAccessIfDefaultAccess') == 'enabled' or $ini->variable('Settings', 'HideSiteaccessAlways') == 'true') {
             $url = 'http://' . self::domain() . $url;
         } else {
             $url = 'http://' . self::domain() . '/' . $GLOBALS['eZCurrentAccess']['name'] . $url;
         }
     }
     if ($ini->hasVariable('SitemapSettings', 'GalleryClasses') and in_array($node->attribute('class_identifier'), $ini->variable('SitemapSettings', 'GalleryClasses'))) {
         $imageextensions = self::fetchImages($node);
         if (!empty($imageextensions)) {
             $extensions = array_merge($extensions, $imageextensions);
         }
     }
     if ($ini->hasVariable('SitemapSettings', 'VideoClasses') and in_array($node->attribute('class_identifier'), $ini->variable('SitemapSettings', 'VideoClasses'))) {
         $extensions[] = self::getVideoConverter()->addVideo($node);
     }
     if ($meta and $meta->change) {
         $extensions[] = new xrowSitemapItemFrequency($meta->change);
     }
     if ($meta and $meta->priority !== null) {
         $extensions[] = new xrowSitemapItemPriority($meta->priority);
     } elseif (self::addPriority()) {
         $rootDepth = self::rootNode()->attribute('depth');
         $prio = 1 - ($node->attribute('depth') - $rootDepth) / 10;
         if ($prio > 0) {
             $extensions[] = new xrowSitemapItemPriority($prio);
         }
     }
     $sitemap->add($url, $extensions);
 }
示例#3
0
    function urlTransformation( $operatorName, &$node, $tpl, &$resourceData,
                                $element, $lastElement, $elementList, $elementTree, &$parameters )
    {
        $ini = eZINI::instance();
        $shareTemplates = $ini->hasVariable( 'TemplateSettings', 'ShareCompiledTemplates' ) ?
                            $ini->variable( 'TemplateSettings', 'ShareCompiledTemplates' ) == 'enabled' :
                            false;

        $useTmp = false;

        $newElements = array();
        $values = array();
        $paramCount = 0;
        $tmpCount = 0;
        switch( $operatorName )
        {
            case $this->URLName:
            {
                if ( !$shareTemplates && eZTemplateNodeTool::isConstantElement( $parameters[0] ) )
                {
                    $url = eZTemplateNodeTool::elementConstantValue( $parameters[0] );

                    $serverURL = isset( $parameters[2] ) ? eZTemplateNodeTool::elementConstantValue( $parameters[2] ) : eZURI::getTransformURIMode();

                    eZURI::transformURI( $url, false, $serverURL );

                    $url = $this->applyQuotes( $url, $parameters[1] );
                    return array( eZTemplateNodeTool::createStringElement( $url ) );
                }
                else if ( $shareTemplates && eZTemplateNodeTool::isConstantElement( $parameters[0] ) )
                {
                    $url = eZTemplateNodeTool::elementConstantValue( $parameters[0] );

                    $values[] = array( eZTemplateNodeTool::createStringElement( $url ) );

                    if ( isset( $parameters[2] ) )
                    {
                        $values[] = $parameters[2];
                        $parameter = "%2%";
                    }
                    else
                    {
                        $parameter = "eZURI::getTransformURIMode()";
                    }

                    $code = <<<CODEPIECE

%tmp1% = %1%;
eZURI::transformURI( %tmp1%, false, $parameter );

CODEPIECE;
                    unset( $parameter );
                    $useTmp = true;
                    ++$tmpCount;

                }
                else
                {
                    $values[] = $parameters[0];

                    if ( isset( $parameters[2] ) )
                    {
                        $values[] = $parameters[2];
                        $parameter = "%2%";
                    }
                    else
                    {
                        $parameter = "eZURI::getTransformURIMode()";
                    }

                    $code = <<<CODEPIECE

eZURI::transformURI( %1%, false, $parameter );

CODEPIECE;
                    unset( $parameter );
                }

                ++$paramCount;
            } break;

            case $this->URLRootName:
            {
                if ( !$shareTemplates && eZTemplateNodeTool::isConstantElement( $parameters[0] ) )
                {
                    $url = eZTemplateNodeTool::elementConstantValue( $parameters[0] );

                    if ( preg_match( "#^[a-zA-Z0-9]+:#", $url ) or
                         substr( $url, 0, 2 ) == '//' )
                        $url = '/';
                    else if ( strlen( $url ) > 0 and
                              $url[0] != '/' )
                        $url = '/' . $url;

                    $serverURL = isset( $parameters[2] ) ? eZTemplateNodeTool::elementConstantValue( $parameters[2] ) : eZURI::getTransformURIMode();

                    // Same as "ezurl" without "index.php" and the siteaccess name in the returned address.
                    eZURI::transformURI( $url, true, $serverURL );

                    $url = $this->applyQuotes( $url, $parameters[1] );
                    return array( eZTemplateNodeTool::createStringElement( $url ) );
                }
                else if ( $shareTemplates && eZTemplateNodeTool::isConstantElement( $parameters[0] ) )
                {
                    $url = eZTemplateNodeTool::elementConstantValue( $parameters[0] );

                    $values[] = array( eZTemplateNodeTool::createStringElement( $url ) );

                    if ( isset( $parameters[2] ) )
                    {
                        $values[] = $parameters[2];
                        $parameter = "%2%";
                    }
                    else
                    {
                        $parameter = "eZURI::getTransformURIMode()";
                    }

                    $code = '%tmp1% = %1%;';
                    $code .= 'if ( preg_match( "#^[a-zA-Z0-9]+:#", %tmp1% ) or' . "\n" .
                             'substr( %tmp1%, 0, 2 ) == \'//\' )' . "\n" .
                             '  %tmp1% = \'/\';' . "\n" .
                             'else if ( strlen( %tmp1% ) > 0 and' . "\n" .
                             '  %tmp1%[0] != \'/\' )' . "\n" .
                             '%tmp1% = \'/\' . %tmp1%;' . "\n";

                    $code .= "eZURI::transformURI( %tmp1%, true, $parameter );\n";

                    unset( $parameter );

                    $useTmp = true;
                    ++$tmpCount;
                }
                else
                {
                    $values[] = $parameters[0];

                    if ( isset( $parameters[2] ) )
                    {
                        $values[] = $parameters[2];
                        $parameter = "%2%";
                    }
                    else
                    {
                        $parameter = "eZURI::getTransformURIMode()";
                    }

                    $code = 'if ( preg_match( "#^[a-zA-Z0-9]+:#", %1% ) or' . "\n" .
                            'substr( %1%, 0, 2 ) == \'//\' )' . "\n" .
                            '  %1% = \'/\';' . "\n" .
                            'else if ( strlen( %1% ) > 0 and' . "\n" .
                            '  %1%[0] != \'/\' )' . "\n" .
                            '%1% = \'/\' . %1%;' . "\n";
                    $code .= "eZURI::transformURI( %1%, true, $parameter );\n";

                    unset( $parameter );
                }

                ++$paramCount;
            } break;

            case $this->SysName:
            {
                if ( !$shareTemplates && eZTemplateNodeTool::isConstantElement( $parameters[1] ) )
                {
                    $sysAttribute = eZTemplateNodeTool::elementConstantValue( $parameters[1] );

                    return array( eZTemplateNodeTool::createStringElement( $this->Sys->attribute( $sysAttribute ) ) );
                }
                return false;
            } break;

            case $this->DesignName:
            {
                if ( !$shareTemplates && eZTemplateNodeTool::isConstantElement( $parameters[0] ) )
                {
                    $path = eZTemplateNodeTool::elementConstantValue( $parameters[0] );

                    $path = $this->eZDesign( $tpl, $path, $operatorName );
                    $path = $this->applyQuotes( $path, $parameters[1] );

                    return array( eZTemplateNodeTool::createStringElement( $path ) );
                }
                else if ( $shareTemplates && eZTemplateNodeTool::isConstantElement( $parameters[0] ) )
                {
                    $path = eZTemplateNodeTool::elementConstantValue( $parameters[0] );

                    $values[] = array( eZTemplateNodeTool::createStringElement( $path ) );
                    $code = ( '%tmp1% = %1%;' . "\n" . '%tmp1% = eZURLOperator::eZDesign( $tpl, %tmp1%, "' . $operatorName . '" );' . "\n" );

                    $useTmp = true;
                    ++$tmpCount;
                }
                else
                {
                    $values[] = $parameters[0];
                    $code = ( '%1% = eZURLOperator::eZDesign( $tpl, %1%, "' . $operatorName . '" );' . "\n" );
                }

                ++$paramCount;
            } break;

            case $this->ImageName:
            {
                $skipSlash = count( $parameters ) > 2 ? eZTemplateNodeTool::elementConstantValue( $parameters[2] ) == true : false;

                if ( !$shareTemplates && eZTemplateNodeTool::isConstantElement( $parameters[0] ) )
                {
                    $path = eZTemplateNodeTool::elementConstantValue( $parameters[0] );

                    $path = eZURLOperator::eZImage( $tpl, $path, $operatorName, $skipSlash );
                    $path = $this->applyQuotes( $path, $parameters[1] );

                    return array( eZTemplateNodeTool::createStringElement( $path ) );
                }
                else if ( $shareTemplates && eZTemplateNodeTool::isConstantElement( $parameters[0] ) )
                {
                    $path = eZTemplateNodeTool::elementConstantValue( $parameters[0] );

                    $values[] = array( eZTemplateNodeTool::createStringElement( $path ) );
                    $values[] = array( eZTemplateNodeTool::createBooleanElement( $skipSlash ) );

                    $code = ( '%tmp1% = %1%;' . "\n" . '%tmp1% = eZURLOperator::eZImage( $tpl, %tmp1%, "' . $operatorName . '", %2% );' . "\n" );

                    $useTmp = true;
                    ++$tmpCount;
                }
                else
                {
                    $values[] = $parameters[0];
                    $values[] = array( eZTemplateNodeTool::createBooleanElement( $skipSlash ) );

                    $code = ( '%1% = eZURLOperator::eZImage( $tpl, %1%, "' . $operatorName . '", %2% );' . "\n" );
                }

                ++$paramCount;
            } break;

            case $this->ExtName:
            {
                if ( !$shareTemplates && eZTemplateNodeTool::isConstantElement( $parameters[0] ) )
                {
                    $origUrl = eZTemplateNodeTool::elementConstantValue( $parameters[0] );

                    $url = eZURL::urlByMD5( md5( $origUrl ) );
                    if ( $url == false )
                        eZURL::registerURL( $origUrl );
                    else
                        $origUrl = $url;

                    $origUrl = $this->applyQuotes( $origUrl, $parameters[1] );

                    return array( eZTemplateNodeTool::createStringElement( $origUrl ) );
                }
                else if ( $shareTemplates && eZTemplateNodeTool::isConstantElement( $parameters[0] ) )
                {
                    $origUrl = eZTemplateNodeTool::elementConstantValue( $parameters[0] );

                    $values[] = array( eZTemplateNodeTool::createStringElement( $origUrl ) );

                    $code .= '%tmp1% = %1%; ' . "\n" .
                         '%tmp2% = eZURL::urlByMD5( md5( %tmp1% ) );' . "\n" .
                         'if ( %tmp2% == false )' . "\n" .
                         '  eZURL::registerURL( %tmp1% );' . "\n" .
                         'else' . "\n" .
                         '  %tmp1% = %tmp2%;' . "\n";

                    ++$tmpCount;
                    $useTmp = true;
                }
                else
                {
                    $values[] = $parameters[0];

                    $code .= '%tmp1% = eZURL::urlByMD5( md5( %1% ) );' . "\n" .
                         'if ( %tmp1% == false )' . "\n" .
                         '  eZURL::registerURL( %1% );' . "\n" .
                         'else' . "\n" .
                         '  %1% = %tmp1%;' . "\n";
                }

                ++$tmpCount;
                ++$paramCount;
            } break;

        }

        $http = eZHTTPTool::instance();

        if ( isset( $http->UseFullUrl ) and $http->UseFullUrl )
        {
            ++$tmpCount;
            $code .= '%tmp' . $tmpCount . '% = eZHTTPTool::instance();' . "\n" .
                 'if ( isset( %tmp' . $tmpCount . '%->UseFullUrl ) and %tmp' . $tmpCount . '%->UseFullUrl ' . "\n" .
                 '                                                 and strncasecmp( %1%, \'/\' , 1 ) === 0 ) // do not prepend the site path if it\'s not a http url%'. "\n" .
                 '{' . "\n" .
                 ' %1% = %tmp' . $tmpCount . '%->createRedirectUrl( %1%, array( \'pre_url\' => false ) );' . "\n" .
                 '}' . "\n";
        }

        if ( count( $parameters ) > $paramCount )
        {
            if ( eZTemplateNodeTool::isConstantElement( $parameters[$paramCount] ) )
            {
                $quote = '"';
                $val = eZTemplateNodeTool::elementConstantValue( $parameters[$paramCount] );
                ++$paramCount;

                if ( $val == 'single' )
                    $quote = "'";
                else if ( $val == 'no' )
                    $quote = false;
                if ( $quote !== false )
                {
                    $values[] = array( eZTemplateNodeTool::createStringElement( $quote ) );
                    if ( $useTmp )
                    {
                        $code .= '%tmp1% = %' . count( $values ) . '% . %tmp1% . %' . count( $values ) . '%;' . "\n";
                    }
                    else
                    {
                        $code .= '%1% = %' . count( $values ) . '% . %1% . %' . count( $values ) . '%;' . "\n";
                    }
                }
            }
            else
            {
                $values[] = $parameters[$paramCount];
                if ( $useTmp )
                {
                    $code .= 'switch (%' . count( $values ) . '%)'          . "\n" .
                             '{'                                            . "\n" .
                             '    case \'single\':'                         . "\n" .
                             '         %tmp1% = \'\\\'\' . %tmp1% . \'\\\'\' ;'  . "\n" .
                             '         break;'                              . "\n" .
                             '    case \'no\':'                             . "\n" .
                             '         break;'                              . "\n" .
                             '     default:'                                . "\n" .
                             '         %tmp1 = \'"\' . %tmp1% . \'"\' ;'     . "\n" .
                             '}'  . "\n";
                }
                else
                {
                    $code .= 'switch (%' . count( $values ) . '%)'          . "\n" .
                             '{'                                            . "\n" .
                             '    case \'single\':'                         . "\n" .
                             '         %1% = \'\\\'\' . %1% . \'\\\'\' ;'   . "\n" .
                             '         break;'                              . "\n" .
                             '    case \'no\':'                             . "\n" .
                             '         break;'                              . "\n" .
                             '     default:'                                . "\n" .
                             '         %1% = \'"\' . %1% . \'"\' ;'         . "\n" .
                             '}'  . "\n";
                }
            }
        }
        else
        {
            $quote = '"';
            $values[] = array( eZTemplateNodeTool::createStringElement( $quote ) );
            if ( $useTmp )
            {
                $code .= '%tmp1% = %' . count( $values ) . '% . %tmp1% . %' . count( $values ) . '%;' . "\n";
            }
            else
            {
                $code .= '%1% = %' . count( $values ) . '% . %1% . %' . count( $values ) . '%;' . "\n";
            }
        }

        if ( $useTmp )
        {
            $code .= '%output% = %tmp1%;' . "\n";
        }
        else
        {
            $code .= '%output% = %1%;' . "\n";
        }

        $newElements[] = eZTemplateNodeTool::createCodePieceElement( $code, $values, false, $tmpCount );

        return $newElements;
    }
     $var1 = NULL;
 }
 while (is_object($var1) and method_exists($var1, 'templateValue')) {
     $var1 = $var1->templateValue();
 }
 while (is_object($var1) and method_exists($var1, 'templateValue')) {
     $var1 = $var1->templateValue();
 }
 if (preg_match("#^[a-zA-Z0-9]+:#", $var1) or substr($var1, 0, 2) == '//') {
     $var1 = '/';
 } else {
     if (strlen($var1) > 0 and $var1[0] != '/') {
         $var1 = '/' . $var1;
     }
 }
 eZURI::transformURI($var1, true, eZURI::getTransformURIMode());
 $var1 = '"' . $var1 . '"';
 $var = $var1;
 unset($var1);
 if (!isset($var)) {
     $var = NULL;
 }
 while (is_object($var) and method_exists($var, 'templateValue')) {
     $var = $var->templateValue();
 }
 $text .= $var;
 unset($var);
 $text .= ' width="';
 unset($var);
 unset($var);
 $var = (array_key_exists($rootNamespace, $vars) and array_key_exists('image', $vars[$rootNamespace])) ? $vars[$rootNamespace]['image'] : null;