/**
  * Returns part of the data for the attribute
  *
  * @param string $dataMember
  *
  * @return string
  */
 public function getDataMember($dataMember)
 {
     if ($dataMember === 'related_images') {
         $images = array();
         $relations = $this->ContentObjectAttribute->attribute('content');
         foreach ($relations['relation_list'] as $relation) {
             $object = eZContentObject::fetch($relation['contentobject_id']);
             if ($object instanceof eZContentObject) {
                 $dataMap = $object->attribute('data_map');
                 foreach ($dataMap as $attribute) {
                     /** @var eZContentObjectAttribute $attribute */
                     if ($attribute->attribute('data_type_string') !== eZImageType::DATA_TYPE_STRING) {
                         continue;
                     }
                     if ($attribute->hasContent()) {
                         $imageAliasHandler = $attribute->attribute('content');
                         $imageAlias = $imageAliasHandler->imageAlias('opengraph');
                         if ($imageAlias['is_valid'] == 1) {
                             $images[] = eZSys::serverURL() . '/' . $imageAlias['full_path'];
                         }
                     }
                 }
             }
         }
         if (empty($images)) {
             $images[] = eZSys::serverURL() . eZURLOperator::eZImage(null, 'opengraph_default_image.png', '');
         }
         return $images;
     }
     return $this->getData();
 }
Пример #2
0
 /**
  * Returns data for the attribute
  *
  * @return string
  */
 public function getData()
 {
     if ($this->ContentObjectAttribute->hasContent()) {
         $imageAliasHandler = $this->ContentObjectAttribute->attribute('content');
         $imageAlias = $imageAliasHandler->imageAlias('opengraph');
         if ($imageAlias['is_valid'] == 1) {
             return eZSys::serverURL() . '/' . $imageAlias['full_path'];
         }
     }
     return eZSys::serverURL() . eZURLOperator::eZImage(null, 'opengraph_default_image.png', '');
 }
Пример #3
0
function lookupIcon($ini, $tag)
{
    $iconMap = $ini->variable('Icons', 'IconMap');
    $returnValue = $ini->variable('Icons', 'Default');
    if (array_key_exists($tag->attribute('id'), $iconMap) && !empty($iconMap[$tag->attribute('id')])) {
        $returnValue = $iconMap[$tag->attribute('id')];
    } else {
        $tempTag = $tag;
        while ($tempTag->attribute('parent_id') > 0) {
            $tempTag = $tempTag->getParent();
            if (array_key_exists($tempTag->attribute('id'), $iconMap) && !empty($iconMap[$tempTag->attribute('id')])) {
                $returnValue = $iconMap[$tempTag->attribute('id')];
                break;
            }
        }
    }
    return eZURLOperator::eZImage(eZTemplate::factory(), 'tag_icons/small/' . $returnValue, '');
}
Пример #4
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::isStaticElement($parameters[0])) {
                    $url = eZTemplateNodeTool::elementStaticValue($parameters[0]);
                    $serverURL = isset($parameters[2]) ? eZTemplateNodeTool::elementStaticValue($parameters[2]) : 'relative';
                    eZURI::transformURI($url, false, $serverURL);
                    $url = $this->applyQuotes($url, $parameters[1]);
                    return array(eZTemplateNodeTool::createStringElement($url));
                } else {
                    if ($shareTemplates && eZTemplateNodeTool::isStaticElement($parameters[0])) {
                        $url = eZTemplateNodeTool::elementStaticValue($parameters[0]);
                        $values[] = array(eZTemplateNodeTool::createStringElement($url));
                        $values[] = isset($parameters[2]) ? $parameters[2] : array(eZTemplateNodeTool::createStringElement('relative'));
                        $code = <<<CODEPIECE

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

CODEPIECE;
                        $useTmp = true;
                        ++$tmpCount;
                    } else {
                        $values[] = $parameters[0];
                        $values[] = isset($parameters[2]) ? $parameters[2] : array(eZTemplateNodeTool::createStringElement('relative'));
                        $code = <<<CODEPIECE

//include_once( 'lib/ezutils/classes/ezuri.php' );
eZURI::transformURI( %1%, false, %2% );

CODEPIECE;
                    }
                }
                ++$paramCount;
                break;
            case $this->URLRootName:
                if (!$shareTemplates && eZTemplateNodeTool::isStaticElement($parameters[0])) {
                    $url = eZTemplateNodeTool::elementStaticValue($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::elementStaticValue($parameters[2]) : 'relative';
                    // 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::isStaticElement($parameters[0])) {
                        $url = eZTemplateNodeTool::elementStaticValue($parameters[0]);
                        $values[] = array(eZTemplateNodeTool::createStringElement($url));
                        $values[] = isset($parameters[2]) ? $parameters[2] : array(eZTemplateNodeTool::createStringElement('relative'));
                        $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 .= '//include_once( \'lib/ezutils/classes/ezuri.php\' );' . "\n" . 'eZURI::transformURI( %tmp1%, true, %2% );' . "\n";
                        $useTmp = true;
                        ++$tmpCount;
                    } else {
                        $values[] = $parameters[0];
                        $values[] = isset($parameters[2]) ? $parameters[2] : array(eZTemplateNodeTool::createStringElement('relative'));
                        $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 .= '//include_once( \'lib/ezutils/classes/ezuri.php\' );' . "\n" . 'eZURI::transformURI( %1%, true, %2% );' . "\n";
                    }
                }
                ++$paramCount;
                break;
            case $this->SysName:
                if (!$shareTemplates && eZTemplateNodeTool::isStaticElement($parameters[1])) {
                    $sysAttribute = eZTemplateNodeTool::elementStaticValue($parameters[1]);
                    return array(eZTemplateNodeTool::createStringElement($this->Sys->attribute($sysAttribute)));
                }
                return false;
                break;
            case $this->DesignName:
                if (!$shareTemplates && eZTemplateNodeTool::isStaticElement($parameters[0])) {
                    $path = eZTemplateNodeTool::elementStaticValue($parameters[0]);
                    $path = $this->eZDesign($tpl, $path, $operatorName);
                    $path = $this->applyQuotes($path, $parameters[1]);
                    return array(eZTemplateNodeTool::createStringElement($path));
                } else {
                    if ($shareTemplates && eZTemplateNodeTool::isStaticElement($parameters[0])) {
                        $path = eZTemplateNodeTool::elementStaticValue($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::elementStaticValue($parameters[2]) == true : false;
                if (!$shareTemplates && eZTemplateNodeTool::isStaticElement($parameters[0])) {
                    $path = eZTemplateNodeTool::elementStaticValue($parameters[0]);
                    $path = eZURLOperator::eZImage($tpl, $path, $operatorName, $skipSlash);
                    $path = $this->applyQuotes($path, $parameters[1]);
                    return array(eZTemplateNodeTool::createStringElement($path));
                } else {
                    if ($shareTemplates && eZTemplateNodeTool::isStaticElement($parameters[0])) {
                        $path = eZTemplateNodeTool::elementStaticValue($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::isStaticElement($parameters[0])) {
                    $origUrl = eZTemplateNodeTool::elementStaticValue($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::isStaticElement($parameters[0])) {
                        $origUrl = eZTemplateNodeTool::elementStaticValue($parameters[0]);
                        $values[] = array(eZTemplateNodeTool::createStringElement($origUrl));
                        $code .= '//include_once( \'kernel/classes/datatypes/ezurl/ezurl.php\' );' . "\n" . '%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 .= '//include_once( \'kernel/classes/datatypes/ezurl/ezurl.php\' );' . "\n" . '%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 .= '//include_once( \'lib/ezutils/classes/ezhttptool.php\' );' . "\n" . '%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::isStaticElement($parameters[$paramCount])) {
                $quote = '"';
                $val = eZTemplateNodeTool::elementStaticValue($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;
    }
Пример #5
0
 /**
  * Returns the full URL of the tag icon image
  *
  * @static
  *
  * @param string $icon
  * @param string $size
  *
  * @return string
  */
 public static function getTagIcon($icon, $size = 'small')
 {
     return eZURLOperator::eZImage(null, 'tag_icons/' . $size . '/' . $icon, 'ezimage');
 }