我试图添加一个system.xml添加自定义javascript到每个页面上的magento。它不工作,到目前为止,我看到我的布局xml没有被添加。
这是我的代码:
app/代码/地方/mynamespace/mymodule里/etc/config . xml
<config>
<modules>
<mynamespace_mymodule>
<version>1.0.0.1</version>
</mynamepace_mymodule>
</modules>
<frontend>
<layout>
<updates>
<mymodule>
<file>mynamespace_mymodule.xml</file>
</mymodule>
</updates>
</layout>
</frontend>
</config>
app/设计/前端/违约/违约/布局/mynamespace_mymodule.xml
<?xml version="1.0"?>
<layout>
<default>
<reference name="head">
<action method="addJs"><script>mynamespace/mymodule/js/myscript.js</script></action>
</reference>
</default>
</layout>
这是不工作。我很困在如何调试这个。我在'Mage_Core_Model_Layout_Update::getFileLayoutUpdatesXml()中添加了日志记录,以查看所有$updateFiles[]。我没有看到mynamespace_mymodule.xml在那里,所以我认为我添加我的布局xml在一个错误的方式。
我将相关代码从那里复制到这里,只是为了显示我如何尝试查看添加的文件:
$updatesRoot = Mage::app()->getConfig()->getNode($area.'/layout/updates');
foreach ($updatesRoot->children() as $updateNode) {
if ($updateNode->file) {
Mage::log((string)$updateNode->file);
...
}
}
这是来自mage/core的代码,我只是添加了日志。它记录当我刷新布局缓存
您的模块是否正在加载?
您是否有一个模块XML文件来启用扩展/模块?
应用程序/etc/模块/mynamespace_mymodule.xml
<?xml version="1.0"?>
<config>
<modules>
<mynamespace_mymodule>
<active>true</active>
<codepool>local</codepool>
</mynamespace_mymodule>
</modules>
</config>
你试过这样添加js和css文件吗:
<head>
<title>Page Title</title>
<css src="Namespace_Module::css/styles.css"/>
<script src="Namespace_Module::js/angular/angular.min.js"></script>
<script src="Namespace_Module::js/app.js"></script>
</head>
<body>
<referenceContainer name="content">
<block class="Namespace'Module'Block'Class" name="Namespace_Module" template="Template.phtml"></block>
</referenceContainer>
</body>
然后在你的模块web文件夹(view/frontend/web),创建js和css文件夹,并把你的文件。