2016-08-02 33 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'); 

祝你好運!