2011-03-30 34 views
0

我有下面的代碼塊在我footer.phtml頁腳緩存解決方法..什麼是正確的方法來做到這一點?

<!-- Customer Modal --> 
<?php if (array_key_exists("customer_select", $_COOKIE) == FALSE): ?> 
    <script type="text/javascript" src="<?=$this->getSkinUrl('js/jqModal.js')?>"></script> 
    <script type="text/javascript"> 
     jQuery(document).ready(function(){ 
      jQuery("#customer_type_dialog").jqm().jqmShow(); 
     }); 
    </script> 
    <?php include("../../templates.eu/templates.sbc.de/_includes/customer_select.php"); ?> 
<?php endif; ?> 

當我打開塊緩存它停止這種評估的只返回被緩存的值。我該如何解決這個問題,或者有什麼更好的方法來做到這一點?基本上我正在檢查是否存在cookie,如果它存在,我將一些js和另一個文件添加到頁面中。

回答

2

把上面的代碼在它自己的模板文件,使這個佈局變化:

<reference name="before_body_end"> 
    <block type="core/template" template="your/cookie/check/file.phtml" /> 
</reference> 

這樣頁腳獲取要緩存(這有助於保持頁面快),每次你的cookie檢查評估。此外,Javascript仍留在頁面的最後一點,這是內聯腳本的最佳實踐。

+0

我會在哪裏放置該佈局更改?在page.xml中?我應該創建它自己的佈局文件嗎? – Chris 2011-04-12 20:18:29

+0

兩者都可以很好地工作,這取決於個人的品味。有些人說總是使用'local.xml',但如果它是用於你正在編寫的模塊,那麼它應該放在'modulename.xml'中。我認爲如果你的主題取決於它,那麼直接把它放在'page.xml'中是可以接受的。它也應該放置在''佈局句柄或者像''之類的更多頁面特定的東西里面......或者其他什麼...... – clockworkgeek 2011-04-12 20:30:13

+0

我開始在部分中聲明權利,但它似乎工作正常。 – Chris 2011-05-04 16:39:28

相關問題