Forums / Developer / Template operator called many times..

Template operator called many times..

Author Message

Julien JOSEPH-AGATHE

Monday 17 August 2009 12:45:21 am

Hi,

I created a templated opertor called in my pagelayout.tpl (who generate a javascript code for tracking).

When I log when my template operator is call (eZLog::write), i saw 2-5 new lines each time i reload the page... My template operator is call only once in my footer...

I done mu test from http://www.domaine.com/new_siteaccess

The first time, the siteacces return by the function eZSys::indexFile() is the good one (new_siteaccess). But for the second, third,.. it return to me my defaut siteaccess...

I dont understand.

I try to set cookie (with the current siteaccess) before return my js code, but he always return the default..

Someone have a idea to this problem ? Code malformed ? eZ Bug ?

PS: Sorry for my english

Code:

<?php
class test
{
    function test()
    {   
    }

    function operatorList()
    {
        return array(
                        'my_template_operator'
                    );
    }
    function namedParameterPerOperator()
    {
        return array(
                        'my_template_operator'=> array( 'url' )
                    );
    }    
    
    function namedParameterList()
    {
        return array(
                        'my_template_operator' => array(  'params'=> array ())
                    );
    }

    function modify( &$tpl, &$operatorName, &$operatorParameters, &$rootNamespace, &$currentNamespace, &$operatorValue, &$namedParameters )
    {
            //parameters initialization
        $arrParemeters = $this->namedParameterList(); 
        foreach ($arrParemeters[$operatorName] as $strNameVar => $arrVal) { 
                
            if (isset($namedParameters[$strNameVar])) {
                    
                $$strNameVar = $namedParameters[$strNameVar];
            } else {
                    
                $$strNameVar = $arrVal['default'];
            }
        }
        switch ( $operatorName )
        {
            case 'my_template_operator':
            {
                 $operatorValue = $this->my_template_operator($params);
                 break;
            }
        }
    }


    function my_template_operator()
    {

       eZLog::write("Siteaccess: " . eZSys::indexFile(), "test.log");

    	$sCode = "<script language=\"javascript\" type=\"text/javascript\">
    	//<![CDATA[
    	*******
        //]]>>
        </script>";
    	
    	return $sCode;
    }
}

?>

Log results:
Siteaccess: new_siteaccess
Siteaccess: defaut_siteaccess
Siteaccess: defaut_siteaccess

Damien Pobel

Monday 17 August 2009 2:59:53 am

Hi Julien,

It's probably because your page uses some missing components (images, CSS, JS, ...) so when you load your page your browser loads two 404 pages that also uses your template operator.

You should check the error.log of the web server or try to use the Network tab of Firebug extension too see what components are missing.

Cheers

Damien
Planet eZ Publish.fr : http://www.planet-ezpublish.fr
Certification : http://auth.ez.no/certification/verify/372448
Publications about eZ Publish : http://pwet.fr/tags/keywords/weblog/ez_publish

André R.

Monday 17 August 2009 4:13:56 am

eZSys::indexFile() is not a function to get current siteaccess, but index file.....
Example on getting current siteaccess name:

$siteAccessName = isset( $GLOBALS['eZCurrentAccess']['name'] ) ? $GLOBALS['eZCurrentAccess']['name'] : null;

eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom

eZ debug

Timing: Jan 19 2025 14:03:25
Script start
Timing: Jan 19 2025 14:03:25
Module start 'content'
Timing: Jan 19 2025 14:03:25
Module end 'content'
Timing: Jan 19 2025 14:03:25
Script end

Main resources:

Total runtime0.2072 sec
Peak memory usage2,048.0000 KB
Database Queries141

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0064 588.9766180.8281
Module start 'content' 0.00640.0055 769.804798.0078
Module end 'content' 0.01200.1952 867.8125529.2969
Script end 0.2071  1,397.1094 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00351.6694200.0002
Check MTime0.00130.6444200.0001
Mysql Total
Database connection0.00090.452810.0009
Mysqli_queries0.162478.37431410.0012
Looping result0.00110.53311390.0000
Template Total0.194894.010.1948
Template load0.00080.391510.0008
Template processing0.194093.616410.1940
Override
Cache load0.00050.258810.0005
Sytem overhead
Fetch class attribute can translate value0.00120.569110.0012
XML
Image XML parsing0.00030.136110.0003
General
dbfile0.00572.7357200.0003
String conversion0.00000.002830.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 1
 Number of unique templates used: 1

Time used to render debug report: 0.0001 secs