2016-08-02 44 views
0

我想推迟JavaScript文件形成磁head.phtml文件,脚本和CSS是由磁head.phtml文件$this->getCssJsHtml();功能调用,所以只是SUBSTR像在Magento访问跨不同PHTML文件变量

$str = $this->getCssJsHtml(); 
$css = substr($str, 0, strpos($str, "<script")); 
$js = substr($str,strpos($str, "<script")); 
输出简单

然后我保存$ JS注册表像

Mage::register('hs_scripts' , $js); 

,并在footer.phtml我把它从注册表像

echo Mage::registry("hs_scripts"); 

现在每一件事情很好地工作,除非我使磁缓存,当我使磁缓存,然后打开让利说页面上的话,每次翻页仅在网页脚本得到加载,

如果我禁用缓存,一切正常,所以我需要一种方法来存储数据形式1 phtml文件,然后访问它的其他文件

+1

我不认为所有的东西都可以很好地处理页脚。页脚块获得缓存,并且您将在每个页面上获得相同的内容。 –

+0

那么,我可以做什么,先生? –

+0

我也尝试将数据存储在帮助器的静态变量中,但它不起作用 –

回答

1

而不是将脚本添加到页脚块获取缓存,尝试创建新的块,并将其添加到before_body_end块。

[主题] /layout/local.xml文件:

<default> 
    <reference name="before_body_end"> 
     <block type="core/template" name="footer.scripts" template="page/html/footer/scripts.phtml"/> 
    </reference> 
</default> 

[主题] /template/page/html/footer/scripts.phtml文件:

echo Mage::registry('hs_scripts'); 

祝你好运!