No estoy seguro de cómo actualizar módulos personalizados para que funcionen con el parche SUPEE-6788 , las instrucciones no son muy claras.
Basado en el tutorial de Alan Storm , creé un módulo simple en el generador www.silksoftware.com/magento-module-creator/ para probarlo. Tiene una página personalizada en administración que funciona perfectamente bien, pero cuando aplico las correcciones requeridas en SUPEE-6788, la página de administración muestra un error 404.
La URL de la página de administración personalizada es:
localhost / index.php / admin / admin_adminhello / adminhtml_adminhellobackend / index / key / 83f08ec4bddff37e47412e16acc8d3f6 /
Aquí está la configuración del módulo:
<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>
...
Aquí está el controlador:
/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();
}
}
Solución
Reemplacé la <routers>
parte según las instrucciones del parche como este (probablemente incorrectamente):
<routers>
<adminhtml>
<args>
<modules>
<admin_adminhello after="Mage_Adminhtml">Pulsestorm_Adminhello_Adminhtml</admin_adminhello>
</modules>
</args>
</adminhtml>
</routers>
Pero ahora la URL solo muestra 404 error
:
localhost / index.php / admin / admin_adminhello / adminhtml_adminhellobackend / index / key / 83f08ec4bddff37e47412e16acc8d3f6 /
¿Cómo arreglar el módulo correctamente para ese nuevo parche? ¿Solo necesito actualizar config.xml
o también tengo que cambiar la URL de la página de administración después de aplicar este parche?
Perdí horas descubriendo esto. El hecho de que los desarrolladores de Magento no sean capaces de hacer una configuración comprensible, o incluso de documentar su código de una manera que un ser humano pueda leerlo.
Veamos primero el config.xml
Todo el significado de las etiquetas ha cambiado. La etiqueta debajo de "módulos" es solo un nombre aleatorio. solo necesita asegurarse de que sea único para garantizar que no se sobrescriba cuando se compila el XML. Tiene influencia en la URL.
Magento ahora espera que mueva sus clases de controlador de back-end a una nueva subcarpeta llamada "adminhtml". Es por eso que en config.xml debe cambiar el sufijo del nombre de clase agregando _Adminhtml .
En su caso, la carpeta se ubicaría en
Ahora el verdadero problema. Usando el otro (mejor) sistema, tenía su propio espacio de nombres definido usando la etiqueta "FrontName". Ya no tiene este lujo, por lo que debe asegurarse de que su controlador tenga un nombre único. De lo contrario, entraría en conflicto con otras extensiones. Entonces, los controladores nombrados como "AdminController.php" ya no son buenos, debe hacer que sea algo específico del proyecto, como en su caso " AdminhelloController.php "
Su URL luego cambiará a
No olvide ajustar el nombre de clase del controlador después de cambiar el nombre o mover el archivo
En este caso, el nombre sería Pulsestorm_Adminhello_Adminhtml_AdminhellobackendController
Por supuesto, también debe ajustar las URL utilizadas en los elementos de menú y formularios que utiliza en el backend
También asegúrese de activar el Modo desarrollador en el archivo index.php . Noté que si el controlador tiene algún error, también obtienes un 404. Con el modo Develeport obtienes un error de Stacktrace.
Lo que también haría, es escribir un registro una vez que se llame al controlador, solo para ver si se accedió al método del controlador.
fuente
Pulsestorm_Adminhello_Adminhtml
en config.xml. También debe actualizar cualquier controlador de diseño de administrador, y las llamadas a genera URL de administrador comogetUrl()
.Aquí hay una herramienta de análisis / solución para conflictos de extensión y personalización resultantes del parche Magento SUPEE-6788.
https://github.com/rhoerr/supee-6788-toolbox
Nota: Antes de aplicar cualquier parche o corrección de parche, siempre se recomienda hacer una copia de seguridad de su sitio web y base de datos.
Solo puedes analizar lo que necesitas arreglar.
O bien, puede aplicar los cambios / arreglos también.
fuente