Łatka 5994 powoduje błąd stanu modułu Adminhtml 404

18

Kiedyś zastosowałem łatkę 5994 i spowodowało to, że sekcja administracyjna modułu, który buduję, wyrzuciła 404. Czy ktokolwiek inny to miał. Moduł działa dobrze na interfejsie użytkownika.

To Magento 1.8.1.0 i po wycofaniu się z moich zatwierdzeń jest to zdecydowanie łatka 5994, w której wszystko poszło nie tak.

Czy ktoś jeszcze doświadczył tego samego problemu?

Poniżej znajduje się mój plik config.xml dla modułu, który, jak podejrzewam, zawiera odpowiedź:

<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>
hammygoonan
źródło
Przejdźmy do testowania modułów pod kątem pęknięć ...
Fiasco Labs

Odpowiedzi:

14

Jest to nowa funkcja bezpieczeństwa z pełnym skutkiem jako nakreślił Cyrill Schumacher . Był także tak miły, że zapewnił poprawkę :

kontroler musi rozszerzyć admin html sekcja kontrolerów i routery config.xml muszą również używać admin.

Istnieje bardzo dobre wytłumaczenie na Rozwiązanie Solent Magento - Magento Routery: : spojrzenie pod maską .

Jeśli potrzebujesz niestandardowej nazwy routera, sekcja, którą należy dodać, powinna wyglądać następująco:

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

Bardziej powszechne jest jednak rozszerzanie konfiguracji routera:

Aktualizacja : Począwszy od Magento CE 1.9.2.2, poprzedni przykład dotyczy tylko tras frontendowych. Rozszerzanie konfiguracji routera to sposób:

<config>
    ...
    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <Limesharp_Playzone before="Mage_Adminhtml">Limesharp_Playzone_Adminhtml</Limesharp_Playzone>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
    ...
</config>
mam08ixo
źródło
3
Jest to więc czerwona flaga ostrzegawcza dla modułów, które nie zostały bezpiecznie utworzone.
Fiasco Labs