El nuevo sistema de modificación en OpenCart 2

El éxito de cualquier marco de código abierto depende de ciertos factores, y la extensibilidad es uno de los factores importantes entre ellos. Permite a la comunidad agregar nuevas funciones y enriquecer su funcionalidad central, lo que resulta en un producto final muy poderoso. Por supuesto, es una característica imprescindible cuando se trata del desarrollo de extensiones personalizadas..

En este artículo, veremos cómo podría alterar los archivos principales del marco OpenCart implementando una extensión OCMOD basada en XML. Gran parte de su funcionalidad está tomada de su predecesor, el sistema vQmod. De hecho, es un sistema mucho más simple, que ofrece menos funciones en comparación con vQmod. Dicho esto, ha cubierto todos los patrones de reemplazo importantes..

El sistema OCMOD es un sistema de búsqueda y reemplazo basado en XML. Usted define el archivo XML según las convenciones de OCMOD, y hará el resto. Por lo tanto, podríamos decir que podría alterar cualquier archivo en el marco central!

Vamos a enumerar un par de ejemplos para entender de lo que es capaz:

  • Inserte un determinado fragmento de código antes de cualquier línea en particular en el archivo.
  • Reemplace un bloque de código con su bloque de código personalizado.
  • Encuentre una cadena en el archivo usando regexp y reemplácela con otra cadena.
  • Alterar el esquema de la base de datos OpenCart..
  • Mucho mas…

Como puede ver, es una gran lista de cosas que podría hacer con OCMOD. Además, es una buena práctica usarlo en lugar de modificar directamente los archivos principales, lo cual no se recomienda.

En la siguiente sección, continuaremos y crearemos un módulo OCMOD simple para propósitos de demostración. Supongo que estás usando la última versión de OpenCart.

Cómo funciona OCMOD

Puede crear e instalar una extensión OCMOD de dos maneras diferentes. O necesita crear un archivo zip con la extensión ".ocmod.zip", o la otra forma es crear un solo archivo XML con la extensión ".ocmod.xml".

La opción de archivo zip

La opción del archivo zip también le permite incluir un par de otros archivos, de modo que también podría realizar otras operaciones como alterar el esquema de la base de datos, cargar archivos / directorios nuevos en la instalación de OpenCart, etc. Veamos qué opciones están disponibles Al usar la versión zip de la extensión OCMOD.

  • subir: Los contenidos de este directorio se copiarán tal como están en la raíz de OpenCart.
  • install.sql: En este archivo, podría incluir consultas SQL para alterar la base de datos.
  • install.php: En este archivo, podría incluir un código PHP personalizado requerido por el código de modificación.
  • install.xml: Es el archivo más importante, que contiene el código de modificación XML..

Por supuesto, no es obligatorio crear todos y cada uno de los archivos / directorios enumerados anteriormente, pero debe crear un install.xml archivo para asegurarse de que su extensión OCMOD se puede instalar.

La opción de archivo XML

Esta es una forma mucho más fácil de crear una extensión OCMOD, solo necesita crear un archivo XML con la extensión ".ocmod.xml". Podríamos decir que es idéntico al install.xml archivo y contiene el código de modificación XML que hemos discutido en la sección anterior.

Para simplificar las cosas, usaremos la opción posterior y crearemos una extensión OCMOD en la siguiente sección.

Crear los archivos del módulo OCMOD

Como desarrollador, la mayoría de las veces se colocará en una situación en la que tendrá la tentación de alterar los archivos principales. Por lo tanto, tomaremos un ejemplo del mundo real de cómo abordar este problema utilizando una extensión OCMOD..

Supongamos que desea modificar la forma en que se muestra el título en la página de detalles del producto. El siguiente código es responsable de asignar el título adecuado a la página de detalles del producto. Podéis encontrarlo en el archivo que se encuentra en. catálogo / controlador / producto / producto.php.

$ data ['heading_title'] = $ product_info ['name'];

Y quieres algo como esto:

$ data ['heading_title'] = strtoupper ($ product_info ['name']);

Veamos cómo podemos lograr eso usando una extensión OCMOD. Crear un product_title.ocmod.xml archivo con los siguientes contenidos.

  Modificación del título del producto Code_Tutsplus_Product_Title 1.0 Código Tutsplus http://code.tutsplus.com       

Como puede ver, la mayoría de las etiquetas se explican por sí mismas. La etiqueta más importante es , que define el nombre del archivo en el que se realizará la operación. los La etiqueta se usa para buscar el código que estamos buscando, y finalmente hemos usado el código etiqueta para inyectar nuestro código.

Instale el módulo desde el back-end

Ahora que hemos terminado con nuestro archivo de modificación, veamos cómo instalarlo desde el back-end de OpenCart. Dirígete al final y navega hasta Extensiones> Instalador de extensiones. Haga clic en el subir y seleccione el archivo que hemos creado en la sección anterior. Si todo va bien, debería ver un mensaje de éxito..

Navegar a Extensiones> Modificaciones, y deberías ver tu extensión OCMOD listada en esa página.

Esto significa que has instalado la extensión con éxito! Ahora, simplemente haga clic en el refrescar Icono en la sección superior derecha para que OpenCart lo detecte y esté listo para ser aplicado en la parte delantera.

En la siguiente sección, pasaremos por el front-end para ver si se aplica a la página de detalles del producto de manera adecuada.

Pruebas en el front-end

Dirígete a la parte delantera y navega a la página de detalles del producto. Debería poder ver que el título del producto ahora está en mayúscula.

Aunque este fue un ejemplo muy simple para demostrar el poder de OCMOD, podría hacer muchas más cosas con esta utilidad y alterar los archivos principales si es necesario..

Conclusión

Hoy, hemos discutido el nuevo sistema de modificación en OpenCart 2, y pasamos por todo el proceso para demostrar cómo se puede usar para alterar los archivos principales de OpenCart. Siéntase libre de publicar sus consultas!