Componente con las funciones de buscar, enviar emails y otras

Vamos a crear un componente personalizado para Joomla mejor aún, ya está creado y te lo puedes descargar de aquí: com_prod.zip. El archivo principal del componente está en la raíz, prod.php, y básicamente lo que hace es establecer qué método del controlador /controllers/cProd.php se va a ejecutar.

Así si vamos a la url tudominio.com/prod se ejecutará el método default y éste llama al método getview($viewin) de models/mProd.php que como no le hemos dicho nada, cargará la vista /views/vprods.php.

Ahora vamos a decirle a través del método default que cargue la vista vprod.php y para ello le pasamos la vista a getview($viewin) del modelo escribiéndola en la última línea del método default(): require_once($clase->getview('prod')). Vamos a pasarle la misma vista pero, esta vez a través de la url, la quitamos del método default: require_once($clase->getview('')) y cargamos la url tudominio.com/prod?view=prod.

 

Ahora vamos a ejecutar el método del controlador buscar(). Así que escribimos la url tudominio.com/prod?task=buscar. Y vemos como este método llama al método del modelo buscar($objRequest): $allData = $clase->buscar($obj) pasándole el objeto que devuelve la función del controlador getobjDatos().

Como puedes ver es un componente personalizado totalmente escalable ya que en las funciones del modelo devuelve siempre un objeto cuyas propiedades son el retorno de otras funciones. Así que con sólo crear otra función en el modelo, podemos llamarla desde el método que ha sido cargado con el controlador. $obj->busqueda = $this->busqueda()

Buscador personalizado para Joomla

Arriba a la derecha de esta página tienes un buscador, copia el código fuente del formulario. Verás que el target es prod?task=buscar es decir, hace un POST al componente personalizado y se ejecuta el método buscar(). Este método lláma al método buscar del modelo que es el que ejecuta el query a la base de datos.

En este query podemos ver cómo busca en las tablas #_content, #_categories y #_menu coincidencias con la palabra buscada. Siempre utilizo PDO para las consultas a las bases de datos ya que, esto me permite trasladar toda la programación a otro sitio sin tener que depender de la programación de Joomla.

Copyright 2026 bilbaolavieja.net