Continuamos con la parte 2 para la creacion de un componete y modulo en joomla 3, si no has leido la parte 1 te recomiendo darle una leida.
¿Que se puede hacer con un modulo personalizado? R= puedes asigarle una posicion de tu template y ademas darle los estilos necesarios para presentar los datos optenidos del componente.
No quieres leer los pasos? te invito a ver el video para la creacion del modulo
Pasos para crear un modulo personalizado en joomla 3.
1.-Crear estructura del componente en http://extstore.com/tools/module-creator. Mi modulo tendra el nombre de mod_videojuegos.
2.-Programar el modulo.
Para saber la estructura y para que sirve cada archivo podemos consultar la documentacion de joomla
Los archivos a modificar son:
Siguiendo la estructura MVC los archivos a modificar quedarian asi:
- mod_videojuegos.php: Seria el controlador, aqui se inicia la llamada para la obtencion de datos (helper.php)
- helper.php: Seria el modelo, de aqui obtenemos los datos para mostrar en el modulo
- mod_videojuegos.xml: Contiene informacion sobre el modulo
- tmpl/default.php: Seria la Vista, aqui se imprimen los datos obtenidos.
mod_videojuegos.php
<?php error_reporting(0);
/**
* @copyright @copyright Copyright (c) 2015 CancunJS. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// no direct access
defined('_JEXEC') or die;
// include the syndicate functions only once
require_once dirname(__FILE__) . '/helper.php';
//Se obtienen los datos del componente
$list = modVideojuegosHelper::getList($params);
//Traduccion de caracteres especiales
$class_sfx = htmlspecialchars($params->get('class_sfx'));
//Se pintan los datos en el layout definido en tmpl/default.php
require JModuleHelper::getLayoutPath('mod_videojuegos');
helper.php
<?php
/**
* @copyright Copyright (c) 2015 CancunJS. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// no direct access
defined('_JEXEC') or die;
/**
* CancunJS - Videojuegos Helper Class.
*
* @package Joomla.Site
* @subpakage CancunJS.Videojuegos
*/
class modVideojuegosHelper {
public function getList($params){
$dId = $params->get('juegoId');//Obtiene el Id del modulo seleccionado
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select('*')
->from('#__videojuegos_')
->where('id='.$dId);
$db->setQuery($query);
$objects = $db->loadObjectList();
$query->clear();
return $objects[0];
}
}
mod_videojuegos.xml
Solo colocare la parte editada:
Aqui obtengo todos los juegos creados por el componente y asigno uno al modulo.
<field name="juegoId" type="sql" default="1" label="Selecciona un Juego" query="SELECT id, nombre FROM #__videojuegos_" key_field="id" value_field="nombre" required="true">
<option value="">Selecciona un Juego</option>
</field>
tmpl/default.php
<?php/**
* @copyright Copyright (c) 2015 CancunJS. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// no direct access
defined('_JEXEC') or die;?>
<h1> Listado Juegos </h1>
<hr>
<h2><?php echo $list->nombre;?> </h2>
<img src="<?php echo $list->imagen;?>" />
<p><strong>Consola: </strong> <?php echo $list->consola;?> </p>
<p><?php echo $list->descripcion;?></p>
3.-Instalar el modulo:
Primero se vuelve a comprimir el modulo y luego se instala.
4.-Crear un modulo y asignarlo a un template.
Resultado:
Con esto se termina la segunda y ultima parte, este es ejemplo completo para personalizar tus modulos y colocarlos en cualquier posicion de tu template.
Para finalizar te comparto los archivos de instalacion y un video.
Sitio completo Joomla – Componente y Modulo. Accesos: oscar pass 123456
Ver video creacion de modulo.