2015-04-24 80 views
1

我試圖將JavaScript添加到標籤<head>內的所有Magento頁面。我有一個名爲在這個example.xml文件夾樹(我做了上etc/config.xml配置爲使用自定義的.xml文件像example.xml):如何在Magento擴展中添加自定義JavaScript

--design 
----frontend 
------base 
--------default 
----------layout 
------------example.xml 

我使用兩種方法來做到這一點。第一個是(不工作):

<layout> 
<default> 
    <reference name="head"> 
     <action method="addJs"> 
      <script>folder/myjavascript.js</script> 
     </action> 
    </reference> 
</default> 
</layout> 

第二個是(僅用於結帳頁面WORKING):

<layout> 
    <example_handle> 
     <reference name="head"> 
      <action method="addJs"> 
       <script>folder/myjavascript.js</script> 
      </action> 
     </reference> 
    </example_handle> 

    <checkout_onepage_index> 
     <update handle="example_handle"/> 
    </checkout_onepage_index> 

    <onepagecheckout_index_index> 
     <update handle="example_handle"/> 
    </onepagecheckout_index_index> 

    <opc_index_index> 
     <update handle="example_handle"/> 
    </opc_index_index> 

    <aw_onestepcheckout_index_index> 
     <update handle="example_handle"/> 
    </aw_onestepcheckout_index_index> 
</layout> 

我的JavaScript有一個片段,我需要從Magento的自定義變量(在php中我使用getConfigData('api_key'))。所以,我的第二個問題是:是否有可能直接從JavaScript獲得這個值,或者我需要用PHP來做到這一點?

var _api_key = ?`getConfigData('api_key')`?; 
+0

請你的問題中明確實現其許多mehtods您已緊隨其後,提供參考Magento的主頁是記錄你遵循的方法,說明你期望發生而是發生了什麼。同時請說明爲什麼現場的問答材料爲什麼不適合您,以及爲什麼要提供參考資料。 – hakre

+0

Alao請保持你的問題分開。在同一問題帖子中,Stackoverflow不能很好地詢問兩個或更多問題。相反,保持問題分開,並要求儘可能孤立地爲這個問答創造最大的價值。 – hakre

回答

0

當您要執行的PHP代碼則需要調用PHTML 這個調用PHTML文件頭的參考塊。

<example_handle> 
    <reference name="head"> 
     <block type="core/template" template="page/myjavascript.phtml" name="myjavascript" /> 
    </reference> 
</example_handle> 

然後PHTML(app/design/frontend/YOUR_PACKAGE/YOUR_TEMPATE/template/page/myjavascrpt.phtml)編寫PHP代碼,然後放myjavascript.js的所有代碼到這個PHTML。

然後調用<?php echo $this->getChildHtml('myjavascript');?>head.phtml

相關問題