Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Magento

Configuración personalizada del back-end en Magento

by
Read Time:6 minsLanguages:

Spanish (Español) translation by Andrea J (you can also view the original English article)

En este tutorial, pondré a prueba la configuración de módulos personalizados en el back-end de Magento. Siempre es útil proporcionar varias opciones configurables del módulo en el back-end, esto le permite a los administradores configurar fácilmente los ajustes específicos del módulo. Te explicaré el proceso de la configuración del módulo mediante la creación de un módulo personalizado en Magento.

Introducción a la configuración personalizada en Magento

Como desarrollador, durante el proceso de creación de los módulos personalizados creo que sería bueno si se pudiera transferir el control de ciertas configuraciones específicas del módulo al back-end. Magento te permite lograr esto utilizando un sistema de configuración basado en archivos XML. De acuerdo con las convenciones de Magento, ¡solo tienes que configurar los archivos y se incluirán automáticamente! La mayoría de las veces, tendrás que lidiar con una gran cantidad de valores configurables proporcionados por los módulos principales mientras configuras la tienda básica del front-end.

Asumo que estás familiarizado con el proceso básico de la creación de módulos en Magento. Este es un artículo muy interesante para quienes quieren tener más información sobre los módulos personalizados en Magento. Dicho esto, Magento sigue la asamblea sobre el paradigma de la configuración, si eres un novato en el proceso de desarrollo de módulos personalizados esto debería hacerte comprender mejor y más fácilmente.

Crea un módulo personalizado para proporcionar una configuración personalizada

En el transcurso de este tutorial, crearé un módulo básico personalizado llamado "CustomConfig" que proporciona la configuración del fondo en el menú Sistema > Configuración. Esta es la lista de archivos necesarios para la configuración deseada:

  • app/etc/modules/Envato_All.xml: Es un archivo utilizado para habilitar nuestro módulo personalizado.
  • app/code/local/Envato/CustomConfig/etc/config.xml: Es un archivo de la configuración del módulo.
  • app/code/local/Envato/CustomConfig/etc/system.xml: Es un archivo que indica las opciones de la configuración para nuestro módulo.
  • app/code/local/Envato/CustomConfig/Model/Options.php: Es un archivo modelo que de cierta forma proporciona las opciones para los elementos de la configuración.
  • app/code/local/Envato/CustomConfig/Helper/Data.php: Es un archivo utilizado por el sistema de traducción de Magento.

Configuración de archivos

Para comenzar, crearemos un archivo habilitador del módulo. Crea un archivo "app/etc/modules/Envato_All.xml" y pega el siguiente contenido en ese archivo. Usamos "Envato" como nuestro espacio de nombres del módulo y "CustomConfig" como nuestro nombre del módulo. Habilitará nuestro módulo "CustomConfig" de forma predeterminada.

Luego, crearemos un archivo de la configuración del módulo. Crea "app/code/local/Envato/CustomConfig/etc/config.xml" y pega el siguiente contenido en ese archivo.

Según las convenciones de Magento debes estar familiarizado con el modelo y la declaración de la clase auxiliar. Por supuesto, la etiqueta <adminhtml> es nueva para ti, y es algo que nos preocupa en el contexto de este tutorial. Repasaremos cada etiqueta en detalle para entender lo que significa.

La etiqueta <adminhtml> se usa para definir los recursos del lado del administrador. En nuestro ejemplo, la página de configuración de nuestro módulo es un recurso. Además, utilizamos la etiqueta <acl> para ajustar una etiqueta <resources>, lo que significa que solo podrá acceder a los usuarios autenticados.

El siguiente par de etiquetas se utilizan para definir la ruta de acceso de nuestra página de configuración del back-end. Por lo que la ruta de acceso a nuestra página de configuración se parece a esta "admin/system/config/customconfig_options". Por supuesto, la última etiqueta <customconfig_options> debe ser única para que no entre en conflicto con otras extensiones.

Avancemos y definamos el archivo más importante, "system.xml". Crea "app/code/local/Envato/CustomConfig/etc/system.xml" y pega el siguiente contenido en ese archivo.

Como habrás adivinado, este archivo es el responsable de mostrar una página de configuración de nuestro módulo en el back-end. Analicemos más de cerca algunas de las etiquetas importantes en ese archivo.

La etiqueta <tabs> se utiliza para definir las pestañas que se mostrarán en el lado izquierdo de la página de configuración. Y la etiqueta <sections> se utiliza para definir secciones debajo de cada pestaña.

Trataremos de entenderlo mediante un ejemplo. Ve al menú Sistema > Configuración en el back-end de Magento. Notarás que hay diferentes pestañas como General, Catálogo, Clientes, entre otras.

En cada pestaña, también verás diferentes secciones. Por ejemplo, en la etiqueta Avanzadas, están las secciones Administrador, Sistema, Avanzado y Desarrollador. En nuestro caso, tendremos una sección llamada Configuración personalizada en la pestaña Configuración personalizada.

Luego, usamos la etiqueta <groups> para agrupar campos similares de configuración. Por ejemplo, te gustaría mostrar los campos relacionados con las imágenes y los campos relacionados con el correo electrónico en diferentes secciones. Para eso, definimos las etiquetas <section_one> y <section_two>.

Finalmente, ajustamos los campos de cada sección con la etiqueta <fields>. En nuestro ejemplo, proporcionamos un campo de texto en el conjunto de campos "Sección uno", mientras que otros campos como el cuadro de selección, el botón de opción y la selección múltiple están disponibles en el conjunto de campos "Sección dos". Eso es todo para el archivo "system.xml". 

Crearemos un archivo modelo "app/code/local/Envato/CustomConfig/Model/Options.php".

No hay nada lujoso aquí: esto solo se usa para introducir las opciones en un campo del formulario de radio y seleccionar el campo del formulario en el formulario de configuración.

Por último, necesitaremos crear el archivo "app/code/local/Envato/CustomConfig/Helper/Data.php" solo para asegurarnos de que el sistema de traducción de Magento funcione correctamente. ¡Es un archivo casi vacío, pero según las convenciones debe estar allí!

Terminamos con la configuración de los archivos. En el siguiente artículo, verificaremos cómo se ve en el back-end de Magento.

Recorrer el back-end para poner a prueba la configuración personalizada

Dirígete al back-end de Magento y borra todos los elementos guardados en la caché. Se puede acceder a él en el menú Sistema > Administración de la caché.

Ahora, para abrir la página de configuración ve a Sistema > Configuración. En el lado izquierdo de la página notarás la PESTAÑA DE CONFIGURACIÓN PERSONALIZADA. El enlace Configuración personalizada está disponible, y al hacer clic en él se abrirá una página de configuración para nuestro módulo. Si no puedes verlo, intenta cerrar sesión en la sección de la administración e iniciar sesión de nuevo.

Custom Configuration in the Back-EndCustom Configuration in the Back-EndCustom Configuration in the Back-End

Es una interfaz bonita que funciona de inmediato, ¿no? Puedes jugar un poco, rellenar el formulario y hacer clic en el botón Guardar configuración para confirmar los cambios, y Magento se encargará del resto.

Para tener acceso a los valores de los parámetros de configuración en el código, puedes usar el método estático getStoreConfig. Por ejemplo, puedes recuperar el valor del parámetro custom_field_one utilizando la siguiente sintaxis:

La sintaxis es bastante simple: debes utilizar el patrón "section_name/group_name/field_name" tal como se define en el archivo system.XML.

Conclusión

La configuración del sistema de administración es una de las partes más fuertes y útiles de Magento. ¡Gracias a la ampliabilidad de uno de los sistemas de comercio electrónico más potentes, Magento te permite conectar muy fácilmente los parámetros personalizados de la configuración! ¡Cuéntanos qué te pareció en la parte de los comentarios!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.