magento добавить макет xml, чтобы добавить javascript не работает

#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 и поместите туда свои файлы.