我在Magento安装中使用自定义模块,该模块使用布局XML文件将一些Javascript文件添加到每个页面的head部分。
这很好用,但是这些javascript文件需要在我已经在page.xml中声明的文件之后添加,但是看起来XML文件按字母顺序处理而不是分层处理!
我查看了页面/ html_head块,似乎没有本地方式来设置/更改包含项目的顺序。如果不从我的模块的XML文件中删除javascript文件并将它们放在page.xml中,有没有人知道如何确保首先添加page.xml javascript?
答案 0 :(得分:5)
布局XML文件仅按字母顺序处理,因为模块加载顺序的效果受glob()
字母顺序的影响。
虽然头块的缺失排序功能很不幸,但有一种解决方法。您可以使模块依赖于模块激活文件中的Mage_Page
。
其他选项包括:向core/template
块添加head
块,并使用带有主题安全链接的模板到JS文件或添加core/text
块并调用{{1带有显式链接到您的JS文件(安全性较低,通常用于CDN托管的脚本)。 setText()
中有一个空getChildHtml()
次调用,会调用page/html/head.phtml
的所有子块。