Патч 5994 вызывает модуль Adminhtml 404 Status Error


18

Я применил Патч 5994 на днях, и он вызвал раздел администратора модуля, который я строю, чтобы выбросить 404. Кто-нибудь еще имел это. Модуль хорошо на фронтенде, хотя.

Это Magento 1.8.1.0, и после отката моих коммитов это определенно Патч 5994, где все пошло не так.

Кто-нибудь еще испытывал такую ​​же проблему?

Ниже мой файл config.xml для модуля, который, я подозреваю, содержит ответ:

<config>
    <modules>
        <Company_Playzone>
            <version>0.1.0</version>
        </Company_Playzone>
    </modules>
    <frontend>
        <routers>
            <playzone>
                <use>standard</use>
                <args>
                    <module>Company_Playzone</module>
                    <frontName>playzone</frontName>
                </args>
            </playzone>
        </routers>
        <layout>
            <updates>
                <playzone>
                    <file>playzone.xml</file>
                </playzone>
            </updates>
        </layout>
    </frontend>
    <adminhtml>
        <layout>
            <updates>
                <playzone>
                    <file>playzone.xml</file>
                </playzone>
            </updates>
        </layout>
        <acl>
            <resources>
                <all>
                    <title>Allow Everything</title>
                </all>
                <admin>
                    <children>
                        <playzone>
                            <title>Play Zone</title>
                            <sort_order>10</sort_order>
                        </playzone>
                    </children>
                </admin>
            </resources>
        </acl>
        <menu>
            <cms>
                <children>
                    <playzone_adminform module="playzone">
                        <title>Play Zone</title>
                        <children>
                            <activity module="playzone">
                                <title>Activities</title>
                                <action>playzone/adminhtml_activity</action>
                            </activity>
                            <category module="playzone">
                                <title>Categories</title>
                                <action>playzone/adminhtml_category</action>
                            </category>
                            <competition module="playzone">
                                <title>Competitions</title>
                                <action>playzone/adminhtml_competition</action>
                            </competition>
                        </children>
                    </playzone_adminform>
                </children>
            </cms>
        </menu>
    </adminhtml>
    <global>
        <helpers>
            <playzone>
                <class>Company_Playzone_Helper</class>
            </playzone>
        </helpers>
        <blocks>
            <playzone>
                <class>Company_Playzone_Block</class>
            </playzone>
        </blocks>
        <models>
            <playzone>
                <class>Company_Playzone_Model</class>
                <resourceModel>playzone_resource</resourceModel>
            </playzone>
            <playzone_resource>
                <class>Company_Playzone_Model_Resource</class>
                <entities>
                    <activity>
                        <table>playzone_activity</table>
                    </activity>
                    <category>
                        <table>playzone_category</table>
                    </category>
                    <competition>
                        <table>playzone_competition</table>
                    </competition>
                </entities>
            </playzone_resource>
        </models>
        <resources>
            <playzone_setup>
                <setup>
                    <module>Company_Playzone</module>
                    <class>Company_Playzone_Model_Resource_Setup</class>
                </setup>
            </playzone_setup>
            <playzone_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </playzone_write>
            <playzone_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </playzone_read>
        </resources>
    </global>
</config>

Вышел на тестирование модуля на предмет поломок ...
Fiasco Labs

Ответы:


14

Это новая функция безопасности в полном объеме, как об этом рассказал Кирилл Шумахер . Он также был так любезен, чтобы обеспечить исправление :

контроллер должен расширять админ html контроллер, а раздел роутеров config.xml также должен использовать админ.

Существует очень хорошее объяснение в решении Magento - Magento Routers : взгляд под капот .

Если вам нужно собственное имя маршрутизатора, то раздел, который нужно добавить, должен выглядеть следующим образом:

<config>
    ...
    <admin>
        <routers>
            <playzone>
                <use>admin</use>
                <args>
                    <module>Limesharp_Playzone</module>
                    <frontName>playzone</frontName>
                </args>
            </playzone>
        </routers>
    </admin>
    ...
</config>

Более распространенным является расширение конфигурации маршрутизатора:

Обновление : Начиная с Magento CE 1.9.2.2, предыдущий пример применим только к внешним интерфейсам. Расширение конфигурации маршрутизатора - вот путь:

<config>
    ...
    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <Limesharp_Playzone before="Mage_Adminhtml">Limesharp_Playzone_Adminhtml</Limesharp_Playzone>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
    ...
</config>

3
Таким образом, это красный флажок предупреждения для модулей, которые не были созданы надежно.
Fiasco Labs
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.