#php #xml #magento
#php #xml #magento
Вопрос:
Я пытаюсь добавить system.xml чтобы добавить пользовательский javascript в magento на каждой странице. Он не работает, и, насколько я вижу, мой макет xml не добавляется.
Это мой код:
app/code/local/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/design/frontend/default/default/layout/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, я только что добавил журнал. Он регистрируется, когда я обновляю кэш макета.
Ответ №1:
Загружается ли ваш модуль вообще?
у вас есть XML-файл модуля для включения расширения / модуля?
app/etc/modules/mynamespace_mymodule.xml
<?xml version="1.0"?>
<config>
<modules>
<mynamespace_mymodule>
<active>true</active>
<codepool>local</codepool>
</mynamespace_mymodule>
</modules>
</config>
Ответ №2:
Вы пробовали добавлять файлы 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="NamespaceModuleBlockClass" name="Namespace_Module" template="Template.phtml"></block>
</referenceContainer>
</body>
Затем в веб-папке вашего модуля (view / frontend / web) создайте папки js и css и поместите туда свои файлы.