Es ingente la cantidad de cosas que se pueden hacer en un Magento recién instalado. Es un CMS orientado al eCommerce muy completo. También muy orientado a la optimización para motores de búsqueda (SEO). Tiene muchas características que le dotan de gran flexibilidad. Entre ellas es la «sencilla» forma de ampliar funcionalidades sin que nada se rompa. Siempre claro, que hagamos lo que en programación se llama overriding. De esta forma, no tocaremos los ficheros originales, ampliando o modificando su funcionamiento en otro espacio de trabajo.
Qué es hacer overriding
Es la forma correcta de hacer las cosas. Si queremos modificar o ampliar funcionalidades de un CMS, lo que siempre debemos de hacer es overriding. Por ejemplo, en WordPress es bastante habitual encontrarte con plantillas que se han modificado. Si se han modificado con el editor que te trae WordPress en el mismo panel de control, sin antes haber hecho una plantilla hija de la original, el problema es que esto no es hacer overriding. Y cuando vamos a actualizar la plantilla.. ¡zasca! se borran todos los cambios hechos.
Esto mismo puede pasar con plantillas, módulos, controladores.. Normalmente los CMSs proporcionan formas de hacer overrinding sobre cada tipo de elemento. Así editarás, borrarás o añadirás lo que necesites en otro segundo lugar. De esta forma el CMS busca primero en este segundo lugar donde has hecho tus cambios, y si no encuentra un fichero tuyo, entonces coge los ficheros originales, los que haya por defecto.
Así siempre podrás modificar los originales en este segundo lugar, en tu espacio de trabajo, y no te pasará que se borran tus cambios cuando actualizas. Y lo más importante, ya sea por seguridad o por estabilidad, podrás actualizar todo siempre.
Cómo se hace con las plantillas del backend
Así entonces, para un Magento 1.9 o inferior, tenemos que crear este espacio de trabajo en donde vamos a alojar nuestros ficheros de plantillas .phtml modificados:
app/design/adminhtml/default/mimodulo/
Aquí podemos reproducir la estructura de carpetas del backend equivalente a las plantillas que queramos sobre-escribir. Por ejemplo, si queremos hacer overriding de los ficheros de plantillas de Magento de la zona de los pedidos, estos los encuentras en la carpeta:
app/design/adminhtml/default/default/template/sales/order/*
Si queremos andar toqueteándolos todos, lo más cómodo es copiar todo lo que hay en la carpeta de arriba en esta otra carpeta de aquí abajo:
app/design/adminhtml/default/mimodulo/template/sales/order/*
Ya sólo falta decirle a Magento que primero busque en nuestra carpeta (default/mimodulo/) antes de ir a la por defecto (default/default/). Esto lo hacemos creando un módulo, y en el fichero app/code/local/Mimodulo/Adminhtml/etc/config.xml lo modificamos para que quede como el siguiente:
<?xml version="1.0" encoding="UTF-8"?> <config> <modules> <Mimodulo_Adminhtml> <version>1.0</version> </Mimodulo_Adminhtml> </modules> <stores> <admin> <design> <package> <name>default</name> </package> <theme> <default>mimodulo</default> </theme> </design> </admin> </stores> </config>
Doy por hecho que si estás aquí ya tienes un módulo. De aquí en adelante, ya es siempre lo mismo; encontrar qué plantillas necesitas modificar, copiar y pegar a tu directorio donde personalizar, y a trabajar.. Espero que sirva.
Un saludo.