Я не уверен, как обновить пользовательские модули для работы с патчем SUPEE-6788 , инструкции не очень понятны.
На основе учебного пособия Алана Шторма я создал простой модуль в генераторе www.silksoftware.com/magento-module-creator/ для тестирования. У него есть пользовательская страница в админке, которая прекрасно работает, но когда я применяю исправления, требуемые в SUPEE-6788, на странице администратора отображается ошибка 404.
URL пользовательской страницы администратора:
localhost / index.php / admin / admin_adminhello / adminhtml_adminhellobackend / index / key / 83f08ec4bddff37e47412e16acc8d3f6 /
Вот конфиг модуля:
<config>
<modules>
<Pulsestorm_Adminhello>
<version>0.1.0</version>
</Pulsestorm_Adminhello>
</modules>
<global>
<helpers>
<adminhello>
<class>Pulsestorm_Adminhello_Helper</class>
</adminhello>
</helpers>
<blocks>
<adminhello>
<class>Pulsestorm_Adminhello_Block</class>
</adminhello>
</blocks>
</global>
<admin>
<routers>
<adminhello>
<use>admin</use>
<args>
<module>Pulsestorm_Adminhello</module>
<frontName>admin_adminhello</frontName>
</args>
</adminhello>
</routers>
</admin>
...
Вот контроллер:
/app/code/local/Pulsestorm/Adminhello/controllers/Adminhtml/AdminhellobackendController.php
class Pulsestorm_Adminhello_Adminhtml_AdminhellobackendController extends Mage_Adminhtml_Controller_Action
{
public function indexAction()
{
$this->loadLayout();
$this->_title($this->__("My Test Page Title"));
$this->renderLayout();
}
}
Решение
Я заменил <routers>
часть на основе инструкций из патча, как это (вероятно, неправильно):
<routers>
<adminhtml>
<args>
<modules>
<admin_adminhello after="Mage_Adminhtml">Pulsestorm_Adminhello_Adminhtml</admin_adminhello>
</modules>
</args>
</adminhtml>
</routers>
Но теперь URL просто показывает 404 error
:
локальный / index.php / администратор / admin_adminhello / adminhtml_adminhellobackend / индекс / ключ / 83f08ec4bddff37e47412e16acc8d3f6 /
Как правильно исправить модуль для этого нового патча? Нужно ли мне просто обновлять config.xml
или мне нужно изменить URL страницы администратора после применения этого патча?
Я потерял часы, чтобы понять это. Просто потому, что разработчики в Magento не способны сделать понятную конфигурацию или даже документировать свой код так, чтобы человек мог его прочитать.
Давайте посмотрим на config.xml первый
Весь смысл тегов изменился. Тег под «модулями» - это просто случайное имя. вам просто нужно убедиться, что он уникален, чтобы не перезаписывать его при компиляции XML. Это влияет на URL.
Теперь Magento ожидает, что вы переместите классы внутреннего контроллера в новую подпапку с именем «adminhtml». Вот почему в config.xml вы должны изменить суффикс имени класса, добавив _Adminhtml .
В вашем случае папка будет расположена на
Теперь настоящая проблема. При использовании другой (лучшей) системы у вас было собственное пространство имен, определенное с помощью тега «FrontName». У вас больше нет этой роскоши, поэтому вам нужно убедиться, что ваш контроллер имеет уникальное имя. В противном случае это будет противоречить другим расширениям. Так что контроллеры с именем что-то вроде «AdminController.php» больше не годятся , вы должны сделать это чем-то конкретным для проекта, как в вашем случае « AdminhelloController.php »
Ваш URL будет затем изменен на
Не забудьте настроить имя класса контроллера после переименования или перемещения файла
В этом случае имя будет Pulsestorm_Adminhello_Adminhtml_AdminhellobackendController
Конечно, вы также должны настроить любые URL-адреса, используемые в пунктах меню и формах, которые вы используете в бэкэнде
Также убедитесь, что вы включили режим разработчика в файле index.php . Я заметил, что если в контроллере есть какая-то ошибка, вы также получаете 404. В режиме Develeport вы получаете ошибку Stacktrace.
То, что я также сделал бы, это просто записать журнал после вызова контроллера, чтобы вы увидели, был ли вообще доступен метод контроллера.
источник
Pulsestorm_Adminhello_Adminhtml
в config.xml. Вам также необходимо обновить любые дескрипторы макета администратора, и вызовы генерируют URL-адреса администратораgetUrl()
.Вот инструмент анализа / исправления для конфликтов расширения и настройки, возникающих из-за патча Magento SUPEE-6788.
https://github.com/rhoerr/supee-6788-toolbox
Примечание. Перед применением какого-либо исправления или исправления всегда рекомендуется сделать резервную копию вашего веб-сайта и базы данных.
Вы можете только проанализировать, что нужно исправить.
ИЛИ, вы также можете применить изменения / исправления.
источник