Ejemplo n.º 1
0
    /**
     * Form submission handler for sending sms
     *
     * @return bool
     */
    public function sm()
    {
        $http = BlockDefault::http();
        $researchType = $http->hasPostVariable( 'typeOfResearch' ) ? stripslashes( $http->postVariable( 'typeOfResearch' ) ) : '';
        if(!empty($researchType)){
            $this->researchType = $researchType;
            $this->recipientEmail = SolrSafeOperatorHelper::getCustomParameter($this->applicationObject->identifier, $this->researchType, 'application');
        }

        if(empty($this->senderEmail) || empty($this->recipientEmail)){
            return false;
        }

        $message = $this->prepareMessageText();
        $mailObject = $this->prepareMailObjectText();

        $email = new MailTool( $mailObject, $this->senderEmail, $this->recipientEmail, $message, self::DOC_REQUEST_LOG_NAME);
        return $email->sendMail();

        return $sendStatus;
    }
    /**
     * @return array
     */
    protected function getCourseCompletion()
    {
        if( !$this->user() )
            return false;
        
        $regexp = array(
            'options' => array(
                'regexp'    =>  "/^[a-zA-Z0-9]*$/",
            )
        );
        $courseId       = (isset($_REQUEST['cid']) && filter_var($_REQUEST['cid'], FILTER_VALIDATE_REGEXP, $regexp)) ? $_REQUEST['cid'] : null;
        $uuid           = $this->user()->attribute('uuid');
        $completion     = 0;
        $status         = '';
        $found          = false;
        $inError        = false;
        $countryUuid    = $uuid;
        $dueDate        = null;

        //if learning tracker is enabled
        if( SolrSafeOperatorHelper::featureIsActive( 'MyLearningTracker' ) && SolrSafeOperatorHelper::getCustomParameter($this->getApplicationIdentifier(), 'HasLearningTracker', 'application_localized') )
        {
            $xml = LearningTrackerWebservice::getUserCoursesStatus($courseId);

            if( $xml !== false )
            {
                if( $xml->CourseStatus != null)
                {
                    $found          = true;
                    $status         = (string)$xml->CourseStatus;
                    $dueDate        = (string)$xml->DueDate;
                }
            }
            else
            {
                $inError = true;
            }
        }
        else
        {
        	/*$url            = $this->getCustomParameter('WSCompletionUrl');
        	$timeout        = 5;
        	$countryUuid    = $uuid;

		    if( $this->getCustomParameter('WSTimeout') )
		    {
		        $timeout = $this->getCustomParameter('WSTimeout');
		    }

		    $ch = curl_init();
		    curl_setopt( $ch, CURLOPT_URL, $url );
		    curl_setopt( $ch, CURLOPT_HEADER, 0 );
		    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
		    curl_setopt( $ch, CURLOPT_TIMEOUT, $timeout );
		    curl_setopt( $ch, CURLOPT_POST, 1 );
		    curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query( array(
		        'AuthenticationKey' => 'medicusconnect',
		        'UserID'            => $countryUuid,
		        'CourseID'          => $courseId
		    )) );

		    $x          = curl_exec($ch);
		    $inError    = false;

            if( $x === false )
            {
                $inError = true;
                eZDebug::writeError( print_r(array($url, curl_errno($ch), curl_error($ch)), true ), 'Call to eLearning WS failed' );
            }
            else
            {
                $xml = simplexml_load_string($x);

                if( $xml !== false )
                {
                    if( $xml->Course != null && $xml->Course->coursecompletion != null )
                    {
                        $completion     = (string)$xml->Course->coursecompletion;
                        $status         = (string)$xml->Course->coursestatus;
                        $found          = true;
                        $dueDate        = (string)$xml->Course->duedate;
                    }
                }
            }*/
        }

        return array(
            'uuid'          => $countryUuid,
            'completion'    => $completion,
            'status'        => $status,
            'found'         => $found,
            'courseId'      => $courseId,
            'inError'       => $inError,
            'errorMsg'      => $inError ? ezpI18n::tr( 'merck', 'NO COMPLETION AVAILABLE' ) : '',
            'dueDate'       => $dueDate,
        );
    }
    public function contentBuildResult()
    {
        $oldSkipPage = SolrSafeOperatorHelper::getCustomParameter($this->applicationObject->identifier, 'SkipExitPage', 'application');
        $skipPage = $oldSkipPage || !$this->exitStrategy();

        $this->pushResult('user' , self::user());
        $this->pushResult('country', LocaleTool::countryISO3166Code());

        if ( $skipPage )
        {
            $_REQUEST['proceed'] = 'proceed';
            $_COOKIE[$this->cookieKey()] = '1';
            if ( ContextTool::instance()->isMobile() )
                $_REQUEST['r'] = 1;
        }

        if( isset($_REQUEST['proceed']) && isset($_COOKIE[$this->cookieKey()]) && filter_var($_COOKIE[$this->cookieKey()], FILTER_VALIDATE_INT))
        {
            // proceed to iframe view
            $this->iframeBuildResult( );
        }
        elseif( isset($_REQUEST['proceed']) )
        {
            // proceed requested but no cookie, we ask again and force redirect to make sure we the proper layout
            header('Location: '.ContextTool::instance()->domain().$this->applicationLocalized()->applicationUrl());
            eZExecution::cleanExit();
        }
        else
        {
            // normal exit page vie
            $isMobile   = ContextTool::instance()->isMobile();
            $urlToRedirect = isset($_REQUEST['r']) ? trim($_REQUEST['r']) : null;
            if ($this->isExitApplication() && $this->displayIframe())
            {
                $serverUrl  = ContextTool::instance()->domain();
                $params = array(
                    'r' => urlencode($urlToRedirect),
                    'exit_strategy' => 0,
                    'display_iframe' => $this->displayIframe(),
                    'new_window' => $this->newWindow()
                );

                $urlToRedirect = $serverUrl . '/external/exit/?' . http_build_query($params);
                $this->pushResult('decode_url', false);
                $this->pushResult('server_url', $serverUrl);
            }
            if($isMobile){
                if($this->applicationObject()->externalLinkHandler())
                {
                    $externalUrl = $this->applicationObject()->externalLinkHandler()->getNodeUrl( $this->node );
                    $urlToRedirect = isset($externalUrl) ? $externalUrl : $urlToRedirect ;

                    if(SolrSafeOperatorHelper::getCustomParameter($this->applicationObject->identifier, 'usePostMethod', 'application' )){

                        $url = $this->applicationObject()->externalLinkHandler()->getNodeUrl( $this->node );
                        $url = $this->getDeeplink( $url );

                        if ($url == null && isset($_REQUEST['r']))
                        {
                            $url = urldecode($_REQUEST['r']);
                        }

                        $url = in_array('arg', array_keys($this->_params['UserParameters'])) ? $url . $this->_params['UserParameters']['arg'] : $url;

                        $this->pushResult('postParams', $url);
                    }
                }
                else
                {
                    $urlToRedirect = '/bad_config';
                }
            }
            $this->pushResult('back_url', ContextTool::instance()->backUrl());
            $this->pushResult('url', $urlToRedirect);
            $this->pushResult('deeplink', urlencode( $this->getDeeplink() ));
            // Because we are passing boolean parameters to final URL, we need to make isset check.
            if ( $this->isDeeplinkApplication() || $this->isExitApplication() )
            {
                if ( isset( $_GET['display_iframe'] ) )
                {
                    $this->pushResult('display_iframe', $this->displayIframe());
                }
                if ( isset( $_GET['new_window'] ) )
                {
                    $this->pushResult('new_window', $this->newWindow());
                }
                if ( isset( $_GET['exit_strategy'] ) )
                {
                    $this->pushResult('exit_strategy', $this->exitStrategy());
                }
            }
        }

        if($this->node && $this->node->attribute('url_alias') != "")
        {
            $this->pushResult('article_url', end(explode("/", $this->node->attribute('url_alias'))));
            /* @type $pfDM eZContentObjectAttribute[] */
            $pf   = NodeTool::getPublisherNodeFromNode( $this->node );
            $pfDM = $pf->DataMap();
            $pfID = PublisherFolderTool::getPathToIDMapping( $pfDM['path']->content() );
            $this->pushResult( 'pfid', $pfID['pfid'] . '/' );
        }

        $oldOpenInNewWindow = SolrSafeOperatorHelper::getCustomParameter($this->applicationObject()->identifier, 'openInNewWindow', 'application');
        $openInNewWindow = $this->newWindow() || $oldOpenInNewWindow;
        $this->pushResult('application', $this->applicationObject);
        $this->pushResult('open_in_new_window', $openInNewWindow);
        $this->pushResult('cookie_key', $this->cookieKey());
        $this->pushResult('node', $this->node);
        
        if( SolrSafeOperatorHelper::featureIsActive( 'GoogleAnalytics' ) )
        {
            $this->pushResult( 'gtm_variables', $this->getGTMTags( $this->node ) );
            if( $this->node )
            {
                $publisherNodeId = PublisherFolderTool::getPublisherNodeIdFromArticleNode($this->node);

                if ($publisherNodeId)
                {
                    $publisherInfos  = PublisherFolderTool::getNodeIdToPathMapping( $publisherNodeId );
                    $publisherPath   = $publisherInfos['path'];

                    $this->pushResult( 'publisher', $this->applicationLocalized()->getPublisherFolderFromPath( $publisherPath ) );
                }
            }
        }
    }
 private function generateFacetHtml( $managedResults )
 {
     $hideEmptyAccreditationFacet = SolrSafeOperatorHelper::getCustomParameter('certificates', 'HideEmptyAcreditationFacet', 'application');
     if ( $hideEmptyAccreditationFacet && $managedResults['total'] == 0 )
     {
         return false;
     }
     else
     {
         $this->_tpl = null;
         $this->tpl()->setVariable( 'facets', $managedResults['facets'] );
         $this->tpl()->setVariable( 'total', $managedResults['total'] );
         $this->tpl()->setVariable( 'no_accreditation_keyword', self::$noAccreditationKeyword );
     
         return $this->tpl()->fetch( 'design:esibuild/app_content/certificates/facet_line.tpl' );
     }
 }
    /**
     * @param eZTemplate $tpl
     * @param string $operatorName
     * @param array $operatorParameters
     * @param string $rootNamespace
     * @param string $currentNamespace
     * @param mixed $operatorValue
     * @param array $namedParameters
     */
    function modify($tpl, $operatorName, $operatorParameters, $rootNamespace, $currentNamespace, &$operatorValue, $namedParameters)
    {
        switch ($operatorName)
        {
            /*******************************************************************************/
            /*                             Solr Safe Operators                             */
            /*******************************************************************************/

            case 'ezfind_raw_fetch':
                $operatorValue = SolrSafeOperatorHelper::ezfindRawFetch(
                    $namedParameters['params'],
                    $namedParameters['nodeIdsOnly']
                );
                break;
            case 'getUrlSolr':
                $operatorValue = SolrSafeOperatorHelper::getUrlSolr($namedParameters['solrdata']);
                break;
            case 'getDatesPDFavailable':
                $operatorValue = SolrSafeOperatorHelper::getDatesPDFavailable(
                    $namedParameters['onlineDate'],
                    $namedParameters['daysAvailable']
                );
                break;
            case 'getViewCounter':
                $operatorValue = SolrSafeOperatorHelper::getViewCounter(
                    $namedParameters['remoteId'],
                    $namedParameters['clusterIdentifier']
                );
                break;
            case 'getRatings':
                $operatorValue = SolrSafeOperatorHelper::getRatings(
                    $namedParameters['remoteId'],
                    $namedParameters['clusterIdentifier']
                );
                break;
            case 'getJavascriptFiles':
                $operatorValue = SolrSafeOperatorHelper::getJavascriptFiles(
                    $namedParameters['application_name'],
                    $namedParameters['type'],
                    $namedParameters['isConsult']
                );
                break;
            case 'getLessFiles':
                $operatorValue = SolrSafeOperatorHelper::getLessFiles(
                    $namedParameters['application_name'],
                    $namedParameters['application'],
                    $namedParameters['isConsult']
                );
                break;
            case 'getInfosApp':
                $operatorValue = SolrSafeOperatorHelper::getInfosApp($namedParameters['application_identifier']);
                break;
            case 'getHostNameFromURL':
                $operatorValue = SolrSafeOperatorHelper::getHostNameFromURL($namedParameters['url']);
                break;
            case 'context':
                $operatorValue = SolrSafeOperatorHelper::context($namedParameters['url']);
                break;
            case 'getMetas':
                $operatorValue = SolrSafeOperatorHelper::getMetas($namedParameters['applicationName']);
                break;
            case 'getSolrData':
                $operatorValue = SolrSafeOperatorHelper::getSolrData(
                    $namedParameters['remoteId'],
                    $namedParameters['clusterIdentifier'],
                    $namedParameters['extended_fields']
                );
                break;
            case 'getCustomParameter':
                $operatorValue = SolrSafeOperatorHelper::getCustomParameter(
                    $namedParameters['application'],
                    $namedParameters['parameter_name'],
                    $namedParameters['context']
                );
                break;
            case 'getAppIdentifierForIcon':
                $operatorValue = SolrSafeOperatorHelper::getAppIdentifierForIcon($namedParameters['application']);
                break;
            case 'getApplicationUrl':
                $operatorValue = SolrSafeOperatorHelper::getApplicationUrl($namedParameters['identifier']);
                break;
            case 'mappingNameSpe':
                $operatorValue = SolrSafeOperatorHelper::mappingNameSpe($namedParameters['specialtie']);
                break;
            case 'getMappingSpe':
                $operatorValue = SolrSafeOperatorHelper::getMappingSpe();
                break;
            case 'getCustomerTypes':
                $operatorValue = SolrSafeOperatorHelper::getCustomerTypes();
                break;
            case 'getMainSpecialities':
                $operatorValue = SolrSafeOperatorHelper::getMainSpecialities();
                break;
            case 'getUserSpecialities':
                $operatorValue = SolrSafeOperatorHelper::getUserSpecialities();
                break;
            case 'noSeoLink':
                $operatorValue = SolrSafeOperatorHelper::noSeoLink($operatorValue);
                break;
            case 'getTaxoTranslation':
                $operatorValue = SolrSafeOperatorHelper::getTaxoTranslation(
                    $namedParameters['identifier'],
                    $namedParameters['remote_id']
                );
                break;
            case 'cluster_ini':
                $operatorValue = SolrSafeOperatorHelper::clusterIni(
                    $namedParameters['section'],
                    $namedParameters['variable'],
                    $namedParameters['ini_file']
                );
                break;
            case 'truncateContentRelated':
                $operatorValue = SolrSafeOperatorHelper::truncateContentRelated($namedParameters['text']);
                break;
            case 'myCertificatesEnabled':
                $operatorValue = SolrSafeOperatorHelper::featureIsActive("MyCertificates");
                break;
            case 'appHasSpeciality':
                $operatorValue = SolrSafeOperatorHelper::appHasSpeciality();
                break;
            case 'setClusterIdentifier':
                // No $operatorValue modification is normal
                SolrSafeOperatorHelper::setClusterIdentifier($namedParameters['clusterIdentifier']);
                break;
            case 'featureIsActive':
                $operatorValue = SolrSafeOperatorHelper::featureIsActive($namedParameters['featureCode']);
                break;
            case 'feature':
                $operatorValue = SolrSafeOperatorHelper::feature(
                    $namedParameters['featureCode'],
                    $namedParameters['value']
                );
                break;
            case 'alphabet':
                $operatorValue = SolrSafeOperatorHelper::alphabet();
                break;
            case 'generateIso6391':
                $operatorValue = SolrSafeOperatorHelper::generateIso6391($namedParameters['regionalSettingsLocale']);
                break;
            case 'staticfile':
                $operatorValue = SolrSafeOperatorHelper::staticFile(
                    $operatorValue,
                    $namedParameters['quote'],
                    $namedParameters['skip_slash']
                );
                break;
            case 'showHelpDeskPhoneInHeader':
                $operatorValue = !(SolrSafeOperatorHelper::feature('HelpDeskSettings', 'HidePhoneNumberInHeader'));
                break;
            case 'showHelpDeskPhoneOnPage':
                $operatorValue = !(SolrSafeOperatorHelper::feature('HelpDeskSettings', 'HidePhoneNumberOnPage'));
                break;
            case 'getFooterHTML':
                $operatorValue = SolrSafeOperatorHelper::getFooterHTML($namedParameters['footerBlockIdentifier']);
                break;
            case 'getLocaleBySystemCode':
                $operatorValue = SolrSafeOperatorHelper::getLocaleBySystemCode($namedParameters['systemCode']);
                break;
            case 'buildExitUrl':
                $operatorValue = SolrSafeOperatorHelper::buildExitUrl($namedParameters['url']);
                break;
            case 'getUserToken':
                $operatorValue = SolrSafeOperatorHelper::getUserToken();
                break;
            case 'clusterHasFeaturedChannel':
                $operatorValue = SolrSafeOperatorHelper::clusterHasFeaturedChannel();
                break;
            case 'aliasDimensions':
                $operatorValue = SolrSafeOperatorHelper::aliasDimensions($namedParameters['alias']);
                break;
            case 'hasImageArticleFromSolr':
                $operatorValue = SolrSafeOperatorHelper::hasImageArticleFromSolr(
                    $namedParameters['solrdata'],
                    $namedParameters['media_case']
                );
                break;
            case 'getImageArticleUrl':
                $operatorValue = SolrSafeOperatorHelper::getImageArticleUrl(
                    $namedParameters['media_case'],
                    $namedParameters['object_id'],
                    $namedParameters['language'],
                    $namedParameters['alias']
                );
                break;
            case 'getImageArticleUrlFromSolr':
                $operatorValue = SolrSafeOperatorHelper::getImageArticleUrl(
                    $namedParameters['media_case'],
                    $namedParameters['solrdata']['object_id'],
                    $namedParameters['solrdata']['language'],
                    $namedParameters['alias']
                );
                break;
            case 'isHidden':
                $operatorValue = SolrSafeOperatorHelper::isHidden($namedParameters['contentobject_id']);
                break;
            case 'isObjectGloballyVisible':
                $operatorValue = SolrSafeOperatorHelper::isObjectGloballyVisible($namedParameters['contentobject_id']);
                break;
            case 'getClusterVisibilities':
                $operatorValue = SolrSafeOperatorHelper::getClusterVisibilities($namedParameters['contentobject_id']);
                break;
            case 'parseTranslationTagParams':
                $operatorValue = SolrSafeOperatorHelper::parseTranslationTagParams($namedParameters['params']);
                break;
            case 'isSendToColleagueDisabled':
                $operatorValue = SolrSafeOperatorHelper::featureIsActive('DisableSendToColleague')
                    ? SolrSafeOperatorHelper::feature('DisableSendToColleague', 'IsDisabled')
                    : false;
                break;
            case 'getListOfValueOptions':
                $operatorValue = SolrSafeOperatorHelper::getListOfValueOptions( $namedParameters['business_name'], $namedParameters['filter'] );
                break;
            case 'getListOfValues':
                $operatorValue = SolrSafeOperatorHelper::getListOfValues( $namedParameters['business_name'], $namedParameters['filter'] );
                break;
            case 'solrDateToStamp':
                $operatorValue = strtotime($namedParameters['date']) > 3600*24*2 ? SolrTool::getTimestampFromSolr($namedParameters['date']) : 0;
                break;
            case 'getSeoParam':
                $operatorValue = SolrSafeOperatorHelper::getSeoParam($namedParameters['applicationLocalized'], $namedParameters['name'], $namedParameters['params']);
                break;
            case 'applicationHasSeoSpeciality':
                $operatorValue = SolrSafeOperatorHelper::applicationHasSeoSpeciality($namedParameters['applicationIdentifier']);
                break;
            case 'seoIsEnabled':
                $operatorValue = SolrSafeOperatorHelper::seoIsEnabled($namedParameters['applicationIdentifier']);
                break;
            case 'includeEsi':
                $operatorValue = SolrSafeOperatorHelper::includeEsi( $namedParameters['src'], $namedParameters['debug'] );
                break;
            case 'imageDecHash':
                $operatorValue = SolrSafeOperatorHelper::imageDecHash( $operatorValue );
                break;
            case 'bannerDecHash':
                $operatorValue = SolrSafeOperatorHelper::bannerDecHash( $operatorValue );
                break;
            case 'getAndStoreGPNotebookHS':
                $operatorValue = self::getAndStoreGPNotebookHS( );
                break;
            case 'isPromoTaxonomyVisible':
                $operatorValue = SolrSafeOperatorHelper::isPromoTaxonomyVisible( $namedParameters['values'] );
                break;
            case 'translateTaxonomy':
                $operatorValue = SolrSafeOperatorHelper::translateTaxonomy( $namedParameters['code'] );
                break;
            case 'getPublisherArticleUrl':
                $operatorValue = SolrSafeOperatorHelper::getPublisherArticleUrl( $namedParameters['publisher'], $namedParameters['articleId'] );
                break;
        }
    }
    /**
     * @return array
     */
    private function entryExitPage()
    {
        header('esi-enabled: 1');
        $skipPage = SolrSafeOperatorHelper::getCustomParameter($this->applicationObject->identifier, 'SkipExitPage', 'application');
        $noFullView = SolrSafeOperatorHelper::getCustomParameter($this->applicationObject->identifier, 'NoFullView', 'application');

        $restrictionLevel = $this->applicationLocalized()->restrictionLevel();
        if(
            ( !isset($_GET['key']) &&  $this->applicationObject()->hasExternalLinkHandler() && $skipPage ) 
            || ( !(bool)self::user() &&  !isset($_GET['key']) && ($restrictionLevel == ApplicationObject::RESTRICTION_LEVEL_RESTRICTED) )
          )
        {
            $patterns   = array(
                '#^(?:https?://[^/]+)?/esibuild/main_view/app_content#',
                '#\?key=[^&]+#'
            );
            $context = ContextTool::instance()->domain().preg_replace($patterns, array( '', '' ), $_SERVER['REQUEST_URI'] );
            $context = preg_replace( '#/external/#', '/', $context );
            header( 'Location: '.$context );
            eZExecution::cleanExit();
        }

        $Result               = array();
        $Result['pagelayout'] = 'esibuild/app_content/pagelayout.tpl';
        $templateContent      = 'esibuild/app_content/external/restricted.tpl';
        if ( $this->isFull )
        {
            $Result['pagelayout'] = ContextTool::instance()->isMobile()
                ? 'esibuild/app_content/pagelayout.tpl'
                : 'esibuild/app_content/full/pagelayout.tpl';

            $templateContent = 'esibuild/app_content/default/restricted.tpl';

            $this->initChannelInformations();
            $this->pushChannelResult();
        }

        foreach ( $this->_result as $variableName => $variableValue )
            $this->tpl()->setVariable( $variableName, $variableValue );

        $instance = self::instance();

        if ( $instance->node && $instance->node instanceof eZContentObjectTreeNode )
        {
            $dataMap = $instance->node->dataMap();
            if( isset($dataMap["serialized_taxonomies"]) )
            {
                $taxonomies = $dataMap["serialized_taxonomies"]->content();
                $publisherPath = $taxonomies["publisher_folder"][0];
                $publisherFolder = $instance->applicationLocalized()->getPublisherFolderFromPath($publisherPath);
            }

            if (isset($taxonomies['language']) && $publisherFolder instanceof PublisherFolder) {
                $publisherLanguages = $publisherFolder->getLanguages();
                $languageList = $taxonomies['language'];

                $availableLanguages = array();

                foreach (array_keys($instance->node->object()->allLanguages()) as $locale) {
                    if (is_array($publisherLanguages) && in_array($locale, $publisherLanguages)) {
                        $key = LocaleTool::languageISO639Code($locale);
                        $availableLanguages[$key] = $locale;
                    }
                }
            }

            if (in_array($publisherLanguages[0], $availableLanguages)){
                if ($instance->node->currentLanguage() != $publisherLanguages[0]) {
                    $instance->node->setCurrentLanguage($publisherLanguages[0]);
                }
            }
        }
        
        $this->tpl()->setVariable( 'application', $this->applicationObject );
        $this->tpl()->setVariable( 'node', $instance->node );

        $patterns   = array(
            '#^(?:https?://[^/]+)?/esibuild/main_view/app_content#',
            '#\?key=[^&]+$#',
            '#\?key=[^&]+&#'
        );

        $appURL = preg_replace($patterns, array( '', '', '?' ), $_SERVER['REQUEST_URI'] );
        $context = $skipPage ? ContextTool::instance()->domain().'/external'.$appURL : ContextTool::instance()->domain().$appURL;

        // In case we are on application without full view like GP Notebook on UK
        if($noFullView)
        {
            $context = ContextTool::instance()->domain();
        }

        $this->tpl()->setVariable( 'context', urlencode( $context ) );

        if( SolrSafeOperatorHelper::featureIsActive( 'GoogleAnalytics' ) )
        {
            $this->tpl()->setVariable( 'gtm_variables', $this->getGTMTags( $instance->node ) );
            if( $instance->node )
            {
                $publisherNode = NodeTool::getPublisherNodeFromNode($instance->node);
                if ($publisherNode)
                {
                    /* @type eZContentObjectAttribute[] $publisherDM */
                    $publisherDM   = $publisherNode->dataMap();
                    $publisherPath = $publisherDM['path']->content();
                    $this->tpl()->setVariable( 'publisher', $this->applicationLocalized()->getPublisherFolderFromPath( $publisherPath ) );
                }
            }
        }

        $Result['content'] = $this->tpl()->fetch( "design:$templateContent" );

        return $Result;
    }