¿Cómo desarrollar un módulo de Joomla?

10

He buscado por todas partes un tutorial sobre esto, pero parece que no puedo encontrar nada satisfactorio. ¿Cómo se hace un nuevo módulo para Joomla?

En este momento estoy usando módulos HTML personalizados en todo mi código, y me gustaría poder acceder a PHP y convertirlos a todos en un módulo, pero no he encontrado un tutorial para hacerlo. He modificado los módulos instalados antes, pero no sé cómo hacer uno que se instale.

La documentación de Joomla es bastante confusa y después de leerla varias veces me di por vencida. ¿Alguien puede ayudarme a explicar este proceso? ¡Gracias!

serakfalcon
fuente

Respuestas:

17

Aprendizaje del desarrollo del módulo Joomla

La forma en que aprendí fue estudiando y personalizando el núcleo u otros módulos de terceros.
Los módulos como concepto son más simples que los componentes (que podríamos decir que son 2 aplicaciones front-end / back-end) y están diseñados para mostrar una pieza de información.
Por lo tanto, si abre la carpeta / archivos del módulo y comienza a leer el código, probablemente lo accederá rápidamente.

Joomla Module Anatomy por ejemplo

Por ejemplo, puede abrir el Módulo de Últimos Artículos en Joomla 3.2 y verificar su código, mientras lee las líneas a continuación. En la carpeta del módulo encontraremos los 4 archivos básicos:

1. mod_articles_latest.php
2. helper.php
3. tmpl/default.php
4.mod_articles_latest.xml

  1. El mod_articles_latest.phpes el archivo principal de los módulos, el que se usa primero cuando se llama al módulo. Inicializa el módulo e incluye helper.php, llame al método de clase del ayudante para recuperar datos y finalmente incluye la plantilla del módulo ( default.php) para mostrar los datos.

  2. El helper.phparchivo es la "maquinaria" del módulo (si pudiéramos nombrarlo así). En el asistente, creamos la clase del módulo y sus métodos para recuperar los datos. Este es el lugar donde podemos hacer que el módulo "hable" con la base de datos. Leer el código en el archivo de ayuda de este módulo, verá que contiene la ModArticlesLatestHelperclase , que tiene un Método:getList(&$params) .
    Dentro de este método, el módulo verifica la configuración de back-end del módulo y, finalmente, crea la lista de los artículos que devolverá, en función de estas condiciones. Tenga en cuenta que este módulo utiliza el JModelLegacy::getInstancemétodo para devolver el Objeto del modelo de contenido .

  3. La default.phpes la plantilla principal del módulo y es responsable de mostrar el contenido del módulo. - Aquí construimos la salida html, usando los datos que recuperó previamente en el mod_articles_latest.phpllamando a la clase del módulo. Se encuentra dentro de la carpeta tmpl . * Observe que el archivo del módulo principal incluye el archivo de plantilla con el JModuleHelper::getLayoutPathmétodo, que primero verificará si se anula cualquier plantilla.

  4. Finalmente, mod_articles_latest.xmllo llamaría como el "embajador" del módulo. Es el archivo que "introduce" el módulo a Joomla durante la instalación, especifica los archivos que serán copiados por el instalador y también contiene información sobre los parámetros del módulo que utiliza el administrador del módulo, así como información adicional. Sobre el módulo.

Estas son las partes esenciales de un módulo básico. Otro aspecto que puede considerar es la compatibilidad con varios idiomas. Esto se puede lograr mediante el uso de cadenas de idioma y archivos de traducción de idiomas . Si hubiera llegado con éxito hasta ese punto, para crear un módulo básico, entonces agregar soporte de idiomas debería ser bastante simple.

FFrewin
fuente
15

¿Has visto los siguientes tutoriales en la documentación de joomla?

En particular, asegúrese de mirar todos los artículos de la serie.

Peter Wiseman
fuente
3

Hemos desarrollado un módulo gratuito con el mismo propósito Módulo PHP personalizado para Joomla CMS .

Necesita crear un archivo PHP, por ejemplo login.php en [sitio web-root] / modules / mod_customphp / files

  • Ahora para usar este archivo
  • Vaya a [back-end] -> administrador de módulos
  • Crear nuevo módulo php personalizado
  • En el parámetro includefile poner inicio de sesión
  • Esto representará login.php en el módulo.
Shyam
fuente
eso responde a mi caso de uso wrt php, pero no responde a lo que realmente estaba preguntando (en mi caso, necesito guardar ciertas configuraciones como color, etc. para cada uso del módulo, lo que será más fácil si puedo crear un nuevo módulo en lugar de simplemente acceder a php) aunque gracias por el consejo.
serakfalcon
Puede agregar más parámetros al módulo y usar estos parámetros en sus archivos php.
Shyam
3

Puede copiar un módulo existente en una instalación local. Luego, renómbralo como quieras. También debe cambiar el nombre de los archivos php y xml, así como los nombres de clase php en el código. Luego, simplemente haga un archivo zip de su módulo. Este archivo zip puede instalarlo en su instalación de Joomla.

¿Necesita más detalles sobre el cambio de nombre?

Seagul
fuente
Eso funciona hasta cierto punto, y a menudo es la forma en que empiezo, pero es insuficiente para lidiar con cadenas de idiomas y medios adicionales que se instalan en diferentes ubicaciones.
Peter Wiseman
@ PeterWiseman Sí, tiene razón, pero es una forma fácil y rápida de comenzar.
Seagul