Componente para Joomla 3

Instalación

componenteEn primer lugar vamos a bajarnos un componente vació como este >> COM_BILBAO.zip. Vamos a Extensiones -> Gestor de extensiones -> Install y lo instalamos.

 Editamos el archivo de la parte frontend  components -> com_bilbao -> bilbao.php. Este archivo lo he construido para que pueda elegir vía url tanto el controller como la task (método) a ejecutar.

$controller = JRequest::getWord('controller', 'cbilbao');     //  nombre del controlador

 llamará al controller que le pongamos via url o al de por defecto si no le ponemos nada:

if ( $_GET[controller] == ""){ $controller = $controller ;} else { $controller = $_GET[controller];}

$path = JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php';

Modelo

Para poder llamar a la vista vía url puse un método en el model

 public function getview($view){
         if ( $_GET[view] == ""){ $view = $view ;} else { $view = $_GET[view];}
         $VPATH = JPATH_COMPONENT.DS.'views'.DS.$view.'.php';
         return $VPATH;
    }

Controlador

Desde el controller llamamos a la vista que queramos mostrar (en este caso llamamos a /views/vbilbao.php)

function display(){
          $clase = new BilbaoModelMbilbao();
     require_once ($clase->getview(vbilbao));
     
                   }

En este componente podemos crear tantos modelos, vistas, controladores y task como queramos, dependerá de la amplitud de la aplicación que necesitemos implementar. Para llamar al componente podemos crar un elemento de menú que apunte a  index.php?option=com_bilbao que mostrará los elementos por defecto definidos. Podemos añadir a la url tanto el controlador como la task:  index.php?option=com_bilbao&controller=cbilbao2&task=funcionTask2  por ejemplo.

En la parte del administrador tenemos exactamente lo mismo y llamariamos a la ur:   administrator/index.php?option=com_bilbao ....

Podemos utilizar el administrador para controlar los registros que hagan los usuarios en el front del componente, para habilitarlos o para simplemente tener algún tipo de estadística de registros de cualquier tabla de Joomla.