Índice de la serie: desarrollo de extensiones con Joomla

  1. Hacer componentes en Joomla!
    1. Patrón MVC
    2. Concepto de Front-End y Back-End
    3. Primer componente MVC simple con Joomla!
    4. Segundo componente, Back-End y acceso a datos.
    5. Crear el xml del componente de joomla y generar instalable.
  2. Hacer Módulos para Joomla!
  3. Hacer Plugins para Joomla!

Aunque con las extensiones existentes de Joomla tendremos suficiente en la mayoría de los casos, hay ocasiones en que necesitamos algo concreto, como por ejemplo un módulo que muestre los usuarios registrados que cumplan años hoy o uno que muestre los artículos publicados hace un año.

Y eso es precisamente lo que voy a hacer.

En el siguiente tutorial vamos a crear un modulo que consulte a la base de datos y muestre el titulo de los artículos con un enlace al articulo completo.

Hacer un módulo es mucho más sencillo que un componente.

De hecho los módulos están pensados para mostrar datos concretos, como usuarios conectados, datos de contacto, menús etc… que en muchos casos son una simple consulta a la base de datos.

Los módulos se encuentran situados en el directorio modules dentro del directorio de instalación de Joomla y por cada módulo hay una carpeta con nombre mod_nombredelModulo .

Nuestro módulo se va a llamar anyo, por lo tanto la carpeta del módulo se llamará mod_anyo.

La estructura de un módulo es muy simple, tiene un fichero php con el mismo nombre que el módulo, el cual es el punto de entrada, que tomará en control del módulo cuando este sea llamado.

Para separar la lógica de la presentación se ha creado la clase helper, en la cual escribiremos nuestras funciones y de esta forma nuestro código quedará más ordenador y legible. La clase helper se encuentra en el fichero de nombre helper.php en la raíz del directorio del módulo.

Desde mod_anyo.php ejecutaremos las funciones de la clase helper simplemente llamándolos como métodos estáticos , puedes encontrar una definición de la clase en el sitio oficial de Joomla

Por ultimo, tenemos el layout, o template, que se encuentra dentro de la carpeta tmpl de nuestro módulo , el cual puede tener cualquier nombre que se te ocurra, pero le asignaremos default.php, que es el nombre por defecto que buscara Joomla si no le indicamos lo contrario.

Para la parte de Back-End disponemos del fichero mod_anyo.xml , donde definiremos los parámetros del módulo y mediante el cual podremos parametrizar el modulo para hacerlo mas configurable y reutilizable.

Vamos a ver el código de nuestro punto de entrada:

<?php
 
// no acceso directo
defined( '_JEXEC' ) or die( 'Restricted access' );
 
// incluir al helper que devolverá los datos, solo una vez
require_once( dirname(__FILE__).DS.'helper.php' );
 
$articulos = modAnyoHelper::getArticulos( $params );
require( JModuleHelper::getLayoutPath( 'mod_Anyo','default') );
?>

La primera línea, como siempre que hacemos una extensión para Joomla, es una línea de comprobación, que asegura que no se este accediendo al modulo estar usando Joomla.

La segunda línea importa el fichero de la clase helper, donde almacenamos nuestras funciones.

En la tercera línea, ejecutamos la función getArticulos() de nuestro helper que devuelve una lista de objetos con los resultados de la consulta SQL.

Por último, hacemos un require del layout, que en nuestro se llama default y lo hacemos usando el método getLayoutPath de la clase JModuleHelper, que devuelve la ruta del layout pasándole como parámetro el nombre del módulo y al nombre del layout.

En el helper almacenamos nuestras funciones, donde accedemos a datos para recuperar la lista de artículos que se escribieron hoy hace un anyo. Vamos a ver el código:

<?php
class modAnyoHelper
{
    function getArticulos( $params )
    {
		jimport('joomla.utilities.date');
		$jnow = new JDate();
		$now = $jnow->toMySQL(); 
 
		$db = &JFactory::getDBO();
		$consulta = "select title,id from #__content where datediff( #__content.created, '".$now."' ) = 365 limit 0,30";
		$db->setQuery($consulta);
		$categorias = $db->loadObjectList();
		return $db->loadObjectList();
    }
}
?>

La clase helper ha de llamarse con el nombre del modulo sin “_” seguido de helper, es decir, en nuestro caso seria modanyoHelper.

Mediante jimport importamos el fichero necesario para instanciar una clase de tipo JDate.

Jimport admite como parámetro un string que apunte al “package” donde se encuentre la clase. Es un concepto similar al import de java . Los paquetes se importan según la el árbol de clases que hay en la documentación oficial :

Después creamos el método getArticulos que será el que devuelva una lista de artículos que tengan un año de antigüedad.

Utilizamos un objeto de tipo JDatabase para realizar la consulta y después simplemente obtenemos la lista de objetos mediante el método loadObjectList .

El meollo de la cuestión esta en la consulta SQL, donde se utiliza la función datediff para consultar los artículos con una antigüedad de 365 días

Finalmente , en el layout, sacamos por pantalla una lista HTML con enlaces a los artículos que se escribieron hace justo 365 días:

<?php
if($params->get('asignarCss')){
$css = $params->get('clase');
}
 
 ?>
<ul <?php if(isset($css )){ echo 'class="'.$css.'"';} ?> >
<?php
foreach ($articulos as $articulo) {
		echo '
<li><a href="index.php?option=com_content&amp;id='.$articulo-">id.'>'. $articulo->title .'</a></li>
 
  ';
	}
?>
</ul>

Fíjate que para acceder a los parámetros del fichero mod_anyo.xml se utiliza $params->get() .

Estos parámetros se definen previamente en el fichero xml que acompaña el modulo.

<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5.0">
    <name>Hoy hace un año</name>
    <author>David Noguera</author>
    <version>1.5.0</version>
    <creationDate>30.07.2006</creationDate>
    <description>Modulo que carga los artículos de tal dia como hoy pero hace un año</description>
    <authorEmail>david@nosolocodigo.com</authorEmail>
    <files>
	<filename module="mod_anyo">mod_anyo.php</filename>
       	<filename>helper.php</filename>
		<filename>mod_anyo.xml</filename>
       	<filename>tmpl/default.php</filename>
       	<filename>tmpl/index.html</filename>
    </files>
<params>
<param name="clase" type="text" default="mod_anyo"
			label="Clase Css para el ul"
				description="La clase que se aplicara al ul" />
<param name="asignarCss" type="radio" default="1"
label="Clase css" description="Determina si se debe asignar la clase css o no">
<option value="0">No</option>
<option value="1">Si</option>
</param>
</params>
</install>

Para finalizar solo queda meter todo esto en un zip y subirlo al instalador de Joomla!.

Compartir:
  • del.icio.us
  • BarraPunto
  • Bitacoras.com
  • Facebook
  • Google Bookmarks
  • Meneame
  • Netvibes
  • Technorati
  • FriendFeed
  • Twitter
  • HelloTxt


Comentarios

  1. 3
    Muy buen tutorial
    12 de marzo del 2008 a las 8:02 am

    Buenas tardes.

    Ante todo decirte que has realizado muy buen trabajo con este tutorial. Muchas gracias por tu tiempo y esfuerzo.

    Ahora mismo, estoy intentando desarrollar un módulo para realizar una búsqueda avanzada para el mi zona de descargas, estilo, elija la extensión que busca, ejemplo: iso, pdf, .exe…

    Si no te importa darme unas nociones básicas para realizar este módulo te lo agradecería muchísimo. (Es que estoy realizando un proyecto fin de módulo y lo necesito).

    Un saludo

  2. 4
    David
    12 de marzo del 2008 a las 10:29 am

    Hola Alonso, no entiendo que es lo que quieres hacer exactamente…si me preguntas algo concreto podría resolverte alguna duda, un saludo y gracias!

  3. 5
    Cristopher Castillo
    13 de marzo del 2008 a las 1:42 pm

    Hola, me parece que está muy bien explicado el tutorial, ahora bien, estuve intentando hacer este mismo ejemplo pero cuando intento instalarlo desde joomla me aparece el siguiente error:

    Error! Could not find a Joomla! XML setup file in the package.

    No sé qué puede ser, si me pueden dar una mano se los agradezco

  4. 6
    David
    13 de marzo del 2008 a las 1:50 pm

    Hola Cristopher, has creado el fichero XML ??

    Para que el módulo se pueda instalar hay que crear el fichero XML y empaquetar todo el contenido del módulo en un zip con el XML dentro.

    Ese zip es el que hay que subir al instalador de Joomla!

    Por cierto, si el XML no valida, Joomla tampoco podrá instalarlo.

    Un saludo!

  5. 7
    Cristopher Castillo
    13 de marzo del 2008 a las 2:20 pm

    Gracias David, el problema era efectivamente que el xml tenía unos errores y en consecuencia no podía ser parseado, como el encoding utilizado es UTF-8 el XML no permite ni acentos ni ñ.

    Podrías explicar en un futuro tutorial la lógica completa para hacer consultas a la BD?

    Gracias David excelente trabajo!!!

  6. 9
    Otro David
    12 de abril del 2008 a las 6:38 am

    Saludos, yo copie el codigo, hice las correcciones necesarias y se pudo instalar bien y toda la cosa, solo q no corre el modulo, marca error en esta linea

    foreach ($articulos as $articulo) {

    del archivo default.php.

    Alguien lo pudo componer??

  7. 10
    david
    13 de abril del 2008 a las 3:55 pm

    Hola Otro David, jeje, el error que te da es por que no devuelve ningún registro el resultado de la consulta, por que seguramente no haya ningún articulo públicado hace 365 dias, por eso da un error el for each al recorrer el array, por que el array esta vacío.
    Habría que poner una comprobación antes de recorrer el array para ver si esta vacío y en ese caso mostrar un mensaje del tipo : “No hay articulos”.

    Un saludo!

    Pd: últimamente estoy ocupadisimo y no tengo tiempo para publicar nada, pero pronto estaré de vuelta.

  8. 11
    El Beto
    16 de abril del 2008 a las 1:22 pm

    Saludos, Felicidades por tu sitio y por el hecho de compartir parte del conocimiento que tienes.

  9. 12
    Daniel M
    20 de abril del 2008 a las 10:12 am

    Hola David.
    Estuve en el Joomla Day España y asistí a tu taller para crear módulos, plugins, etc…
    Quisiera preguntarte… ¿Utilizas alguna aplicación para debugear con Joomla?
    Gracias y felicidades por tu taller.
    Saludos Cordiales.
    Daniel M

  10. 13
    David
    20 de abril del 2008 a las 12:07 pm

    Hola Daniel, gracias a tí.

    Pues yo no utilizo ningúna herramienta para debugear en php, pero existe un ide basado en eclipse (no se si es un plugin o un ide entero) que puede ayudarte, yo me lo instale una vez pero no llegue a hacer nada con el:

    http://joomlacode.org/gf/project/jcode

  11. 14
    Maykel
    21 de mayo del 2008 a las 8:37 am

    veo que ustedes están bien duros con el joomla 1.5 me haria falta el code para hacer lo siguiente:
    como un marquee de html para mostrar titulares de noticias, o sea que determinadas noticias vayan de derecha a izquierda
    saludos
    ESPERO ME AYUDEN ESTOY MOLIO TRATADO DE HACER ESO

  12. 15
    carlos robayo
    1 de junio del 2008 a las 5:45 pm

    Hola gracias a david por el tutorial me inicio en esto fijense baje un modulo para mostrar la fecha pero hay que usarlo con legancy activado ya que esta hecho para joomla 1.0 claro el funciona bien (“no se que problemas pueda traer activado el legancy”);en vista del manual de david me di a la tarea de llevarlo a joomla 1.5 y segui las instrucciones pero no funciona cuando instalo el zip dice ¡Error! No puedo encontrar un archivo de configuración XML para Joomla! en el paquete.

    les dejo el codigo original y el nuevo que cree ojala puedan ayudar gracias.

    original tiene 2 archivos

    xml:

    GJ Fecha
    29.10.2007
    merolhack
    This module is released under the GNU/GPL License
    guiasjoomla@gmail.com
    http://www.guiasjoomla.com
    1.0.0

    mod_gjfecha.php

    Si
    No

    Servidor
    Cliente

    Si
    No

    Servidor
    Cliente

    el segundo archivo:
    get( ‘class_sfx’, ” );
    $fecha = $params->get( ‘fecha’, ” );
    $tipo_fecha = $params->get( ‘tipo_fecha’, ” );
    $hora = $params->get( ‘hora’, ” );
    $tipo_hora = $params->get( ‘tipo_hora’, ” );

    function gj_fecha_servidor() {
    // Agregamos los nombres de los meses
    $mes[0]=”-”;
    $mes[1]=”Enero”;
    $mes[2]=”Febrero”;
    $mes[3]=”Marzo”;
    $mes[4]=”Abril”;
    $mes[5]=”Mayo”;
    $mes[6]=”Junio”;
    $mes[7]=”Julio”;
    $mes[8]=”Augosto”;
    $mes[9]=”Septiembre”;
    $mes[10]=”Octubre”;
    $mes[11]=”Noviembre”;
    $mes[12]=”Diciembre”;

    // Agregamos los nombres de los dias
    $dia[0]=”Domingo”;
    $dia[1]=”Lunes”;
    $dia[2]=”Martes”;
    $dia[3]=”Miércoles”;
    $dia[4]=”Jueves”;
    $dia[5]=”Viernes”;
    $dia[6]=”Sábado”;

    $num_dia=(int)date(“w”);
    $num_mes=(int)date(“m”);
    $fecha_d = ($dia[$num_dia].” “.date(“d”).” de “.$mes[$num_mes].” del “.date(“Y”));

    // Mostramos el nombre del dia, el dia con numero, el nombre del mes y el año
    echo $fecha_d;
    }
    function gj_fecha_cliente() {
    echo ”
    var mydate=new Date()
    var year=mydate.getYear()
    if (year < 1000)
    year+=1900
    var day=mydate.getDay()
    var month=mydate.getMonth()
    var daym=mydate.getDate()
    if (daym<10)
    daym=\”0\”+daym
    var dayarray=new Array(\”Domingo\”,\”Lunes\”,\”Martes\”,\”Miercoles\”,\”Jueves\”,\”Viernes\”,\”Sabado\”)
    var montharray=new Array(\”Enero\”,\”Febrero\”,\”Marzo\”,\”Abril\”,\”Mayo\”,\”Junio\”,\”Julio\”,\”Agosto\”,\”Septiembre\”,\”Octubre\”,\”Noviembre\”,\”Diciembre\”)
    document.write(\”\”+dayarray[day]+\” \”+daym+\” de \”+montharray[month]+\” del \”+year+\”\”)
    “;
    }
    function gj_hora_servidor() {
    echo ‘  Hora: ‘ . date(“g:i a”);
    }
    function gj_hora_cliente() {
    echo ”
    Stamp = new Date();

    var Hours;
    var Mins;
    var Time;
    Hours = Stamp.getHours();
    if (Hours >= 12) {
    Time = \” P.M.\”;
    } else {
    Time = \” A.M.\”;
    }
    if (Hours > 12) {
    Hours -= 12;
    }
    if (Hours == 0) {
    Hours = 12;
    }
    Mins = Stamp.getMinutes();
    if (Mins < 10) {
    Mins = \”0\” + Mins;
    }
    document.write(‘  Hora: ‘ + Hours + \”:\” + Mins + Time);
    “;
    }

    echo ”;
    if ( $fecha == 0 ) {
    if ( $tipo_fecha == 0 ) {
    echo gj_fecha_servidor();
    } else {
    echo gj_fecha_cliente();
    }
    }
    if ( $hora == 0 ) {
    if ( $tipo_hora == 0 ) {
    echo gj_hora_servidor();
    } else {
    echo gj_hora_cliente();
    }
    }
    echo ”;
    ?>

  13. 16
    carlos robayo
    1 de junio del 2008 a las 5:53 pm

    el archivo lo separe de acuerdo a lo del manual y gere los archivos pero no encuentro la forma de que joomla lea el xml

  14. 17
    carlos robayo
    1 de junio del 2008 a las 5:55 pm

    asi quedo el xml

    Hoy hace un ano
    David Noguera
    1.5.3
    01.06.2008
    Modulo que carga la fecha y hora
    publicidad@vipcard.com.ve
    mod_fecha.php
    helper.php
    mod_fecha.xml
    tmpl/default.php
    tmpl/index.html

    Si
    No

    Servidor
    Cliente

    Si
    No

    Servidor
    Cliente

    gracias por la ayuda

  15. 18
    David
    2 de junio del 2008 a las 5:26 am

    El módulo funciona perfectamente en joomla 1.5 sin necesidad de activar el plugin de compatibilidad.

    Tiene que ser una equivocación, pero muchas gracias pro compartirlo.

    Un saludo!

  16. 19
    Juanux
    2 de junio del 2008 a las 8:09 am

    Hola
    No soy muy experto en el tema
    y necesito hacer un modulo que permita a los los usuarios ingresar sus datos personales y cierta información adicional necesaria para el negocio y ejecutar cierta lógica especifica.

    Los ejemplos que he visto son para mostrar información. como hago un modulo que capture información del usuario y le retorne mensajes y cosas asi.

  17. 20
    gabriel
    4 de junio del 2008 a las 12:55 pm

    Hola, la linea :

    ó

    es la única manera de incluir un módulo?

    Pruebo con cualquier módulo y no se visualiza nada del default.php de ellos en el template,aún con los q vienen por defecto.

    Muchas gracias.

  18. 21
    gabriel
    4 de junio del 2008 a las 12:57 pm

    Hola, la linea :

    ó

    es la única manera de incluir un módulo?

    Pruebo con cualquier módulo y no se visualiza nada del default.php de ellos en el template,aún con los q vienen por defecto.

    Muchas gracias.

  19. 22
    gabriel
    5 de junio del 2008 a las 10:49 am

    Perdón por los dos mensajes de ayer (no se ven las líneas de los include de Joomla).

    El problema que tenía fue que no había incluído como filename el mismo archivo xml.
    Luego de ver el ejemplo lo agregué y anduvo.

    Muchas gracias.

  20. 23
    Manuel
    18 de junio del 2008 a las 9:21 am

    buenos dias, podrian ayudarme con algun link que me lleve a entender un poco la elaboracion de menus que mustren una lista de articulos de una seccion y se muestre a si mismo en la pagina de inicio?
    realmente no entiendo
    Gracias de antemado!!!!!

  21. 24
    pablo gadino
    1 de agosto del 2008 a las 9:51 am

    Un par de dudas sobre la prolijidad de la seguridad:
    ¿no sería mejor incluir
    defined( ‘_JEXEC’ ) or die( ” );
    en todos los archivos, por ej. en el helper, además de en el de entrada?
    No pusiste index.html en la raíz del módulo sino solamente en la carpeta /tmpl. ¿es un olvido o es por algo?

  22. 25
    Masterweb
    27 de agosto del 2008 a las 4:38 pm

    Hola, estoy buscando la forma de crear un modulo que me permita ingresar un codigo html para utilizarlo como acceso al correo del dominio, en la version de joomla 1.0.x era facil creando un nuevo modulo y desactivando el editor de texto, pero en la version 1.5.x los modulos se cean a partir de un modulo ya existente, lo que no permite insertarle codigo.

    si alguien sabe como hacerlos o un modulo que ya este diseñado para ello agradezco lo comparta por aquí.

  23. 26
    Alejandro
    26 de septiembre del 2008 a las 11:53 am

    Hola hice el ejemplo del módulo con unas modificaciones en el default.php y funciona perfecto en localhost, pero cuando subo el modulo en el sitio .com, al cargar el sitio aparece en blanco. ¿Qué podría pasar?

    Saludos,

  24. 27
    helard
    30 de septiembre del 2008 a las 4:49 pm

    muchas gracias por el aporte, lo pondre en practica e ire apoyando en lo que se pueda

  25. 28
    Jonathan
    2 de octubre del 2008 a las 1:50 pm

    Saludos, en primer lugar, mis felicitaciones por este gran aporte que me ha sido de mucha utilidad.

    Queria preguntaros algo que me ha llamado la atención…

    Estoy intentando modificar el modulo mod_login para modificar los vinculos de registro, perdida de contraseña etc… el caso es que edito el default.php y lo mismo le da, incluso renombro la carpeta tmpl del modulo mod_login y lo mismito da, he buscado dentro de componentes y hay una que tiene un php semejante, pero aun así… editando este no hay manera…
    No tengo cache habilitada

    ¿A alguien se le ocurre donde puedo modificar esto…?

    Un saludo y gracias.

  26. 29
    Erubey
    1 de diciembre del 2008 a las 3:53 pm

    hola,veo su desiteresada cooperación, y los felicito, soy nuevo en esto y quiero saber cómo insertar una nueva foto en en un modulo sin que se modifique el modulo original

  27. 30
    miguel
    17 de diciembre del 2008 a las 6:28 am

    hola muchas gracias por tu sitio , estoy aprendiendo esto de programar en joomla y me servira de mucho tu trabajo..

    saludos,

  28. 31
    solorene
    19 de diciembre del 2008 a las 10:27 pm

    Hola tengo problemas con la instalacion de un modulo y componente, ambos pertenecen al reproductor mp3.

    Soy nueva en el asunto, pero me gustaria saber como instalo anualmente un modulo ocomponente, ya que por alguna razon no me deja subiirlo e instalarlos con el instalador de joomla 1.5

    Espero sus respuestas
    Gracias.

  29. 32
    sorachan
    27 de marzo del 2009 a las 12:13 am

    Hola! Encontré tu página a través de un foro y me ha sorprendido lo constante que eres, la verdad es que me has descubierto un mundo nuevo en joomla.

    Quiero intentar personalizar algún módulo pero no tengo mucha idea de hacer llamadas a la base de datos. ¿Podrías decirme cuales son los métodos básicos? Realmente lo que me interesa es abrir y cerrar la conexión a la base de datos, la parte de obtener consultas la encuentro más intuitiva.

    Muchísimas gracias por adelantado.

  30. 33
    JavierGiordano
    20 de abril del 2009 a las 1:53 pm

    Necesito ayuda para poder hacer un modulo que tenga un menu con tres solapas digamos Regionales/Nacionales/ElMundo y que al hacer clik en cada una de ellas me parezcan los primeros 5 titulos de cada categoria

  31. 35
    juankysmith
    30 de abril del 2009 a las 4:50 am

    Hola joomler@s!!!

    He creado mi propio componente con su paquete de instalación. Este paquete contiene:
    - Fichero xml de instalación
    - Ficheros install.mi_componente.php y uninstall.mi_componente.php
    - Folder administrator/components/mi_componente con todo su contenido
    - Folder components/mi_componente con todo su contenido

    Cuando intento instalarlo por joomla me dice que:
    “¡Error! No puedo encontrar un archivo de configuración XML para Joomla! en el paquete”

    Alguien ve el error??? porque el fichero xml está ahí…

  32. 37
    Peter
    8 de junio del 2009 a las 6:31 am

    Hola amigos:

    Tengo mucha inquietud en como puedo desarrollar un modulo para la vista del usuario en el web site pero que a la misma vez sus contenido sea dinamico. Ahora el problema es que quiero integrar ese modulo administrable con la Extjs (Joomla! – Extjs-2.2).

    Si alguien ya ha intentado por favor:
    Se le devolbera el favor.
    petermarin84@yahoo.es

  33. 38
    David
    8 de junio del 2009 a las 7:27 am

    No he entendido muy bien lo que quieres, podrías ser un poco más específico??
    Con los módulos no puedes crear lógica del lado del servidor, solo son para mostrar datos, pero puedes hacer muchas cosas con Javascript, acceder a feeds, usar APIs de redes sociales, etc…
    Pero si quieres acceder a tu base de datos para ir cogiendo información según los eventos del usuario, tendrás que crear un componente que trabaje en conjunto con ese módulo, es lo más potente y lo que te aconsejo.

    Saludos!!

  34. 39
    lidia
    16 de junio del 2009 a las 2:22 am

    Hola, estoy utilizando una plantilla de joomla para la creación de un periódico online y tuve que migrarlo de un seervidor a otro. Al hacerlo hubo un módulo que usa Javascript que ha dejado de funcionar
    ¿Alguien tiene idea de porqué puede ser? ¿Hay algo que configurar en los servidores para que funcionen?

  35. 41
    Santiago
    2 de julio del 2009 a las 8:34 am

    Muy bueno tus tutoriales…la verdad q hacen falta cosas asi. Muchas gracias por tu información!

  36. 44
    Manuel
    24 de agosto del 2009 a las 10:21 am

    Hola, muy bueno el tutorial, soy bastante novato en Joomla, de hecho todavia no tengo termindado mi sitio.
    Quiero hacer un listado (con community Builders) filtrado por solo Usuarios online pero la pantalla no me da la opcion.
    Si hago un modulo para esto ¿cual es la variable que muestra el estado del usuario?
    Saludos

  37. 47
    Jorge Mario
    8 de septiembre del 2009 a las 11:56 pm

    Hola david, te felicito por el articulo, de verdad que esta muy bien explicado y es bastante bueno. No he encontrado tanto acerca de lo técnico de joomla. Muchas gracias por compartir tu conocimiento.

  38. 49
    Phaseolus
    7 de octubre del 2009 a las 2:33 am

    Hola David.
    No sé si has trabajado con la galería de imágenes MorpheoShow. Bueno el asunto es que la tengo instalada en mi sitio y es muy buena, lo que necesito es poder listar en la columna bajo el menú (como otro módulo), los thumbnails de cada galería y acceder desde ahí ya que para poder ver las galerias actualmente es necesario usar los menús y navegar hasta ellas, y por lo que me he dado cuenta más del 60% de los usuarios que he consultado no tenían ni idea que habia fotografias por estar muy escondidas.
    La idea que tengo es listar los thumbs de esas librerias tal como lo hace flick.
    Agradezco cualquier ayuda o idea.
    Saludos.

  39. 50
    Phaseolus
    7 de octubre del 2009 a las 3:12 am

    upsss!!!
    no sé se se entendió algo de lo que dije, jaja.
    lo que busco es algo así como la lista de 5 columnas y varias filas de fotos miniaturas de “Google Friend Connect” que hay en este blog http://borghal.leniar.cl/blog/?p=1194555895
    Si no hay un módulo que me permita que cada miniatura enlace a una galería, pues ni modo, habrá que hacer uno.

    Saludos

  40. 51
    Jacinto
    11 de octubre del 2009 a las 12:52 pm

    La verdad es que te lo has currado tío…pero de poco me va a servir a mí todas estas cosas en adelante.
    Llevo programando más de 15 años desde que aprobé la carrera y he decidido dejar este sector por lo mal que se está poniendo y lo mal que están pagando a las personas que están actualmente contratando en la empresa donde trabajo.
    Os recomiendo, porque esto va seguir a peor en España, que teniendo una buena base os vayáis a vivir a otros países de Europa que pagan tres veces más y existen menos desarrolladores, en estos momentos es una buena oportunidad.

    Suerte para todos, saludos.

  41. 52
    Mario
    16 de octubre del 2009 a las 6:11 pm

    Buen articulo presenta un poco de confion en el archivo template en donde se incluyen las etiquetas html
    te genera errore.

    .$articulo-’>’

    se trabaja mucho en esta linea y el motivo de esto creo yo es que sea facil para los que no estamos relacionados con esto

  42. 53
    Israel
    16 de octubre del 2009 a las 7:39 pm

    Buen trabajo, porque aprendi los archivos que forman un modulo…
    Sabes tengo un problema al instalar el componente, ya lopuse en .zip, corregio la cuestion de los acentos, y la “ñ” pero me sigue apareciendo un error.
    es el siguiente:
    Error! Could not find a Joomla! XML setup file in the package.
    Ayuda por fv….

  43. 54
    Dalton Martinez
    31 de octubre del 2009 a las 6:24 pm

    Linux es sensible a las mayusculas y minusculas…
    Resulta que el nombre del modulo es mod_anyo y en la linea 10 del archivo mod_anyo.php dice ‘mod_Anyo’, por lo cual no me funcionaba el modulo. Corregido ese detalle funciona impecable.
    La linea original es
    require( JModuleHelper::getLayoutPath( ‘mod_Anyo’,'default’) );
    y la corregida
    require( JModuleHelper::getLayoutPath( ‘mod_anyo’,'default’) );

    Vayan mis felicitaciones por este excelente tutorial y por dedicar parte de tu tiempo a la comunidad.

  44. 55
    David
    31 de octubre del 2009 a las 6:59 pm

    Gracias por la aclaración, la verdad es que el ejemplo lo hice en Windows y no lo probé en Linux…

  45. 56
    Leonel
    1 de noviembre del 2009 a las 2:01 am

    Hola gente, bueno estube viendo el tuto pero no logro saldar mi duda. Instale el modulo qcategories pero el problema es que me muestra una lista de categorias en una sola columna, y yo tengo un monton de categorias, como puedo hacer para dividir el modulo en dos o tres columnas porque no tiene la opcion. Yo he provado mirando otros modulos que si la tienen y he editado el php pero no me funciona. Gracias

  46. 58
    Jose david
    5 de diciembre del 2009 a las 8:41 pm

    Buenas tardes david !! estuve observando lo que hizo y me preguntaba si trabaja con java es que tengo que hacer un proyecto de la univ se me ocurre hacer un blog o un periodico online si no es mucha molestia me gustaria saber su opinion si es fatible o no de ante mano gracias…

  47. 59
    David
    6 de diciembre del 2009 a las 1:02 pm

    Hola Jose David… si que he programado con java y claro que es factible. Puedes usar Algún CMS hecho con Java, como OpenCMS, que está bastante bien, o programartelo tu mismo desde cero. Ahora, si quieres hacerlo en un periodo de tiempo rápido y con menos complicaciones… te recomiendo que uses algun CMS basado en PHP. Para hacer un periodico online te recomiendo WordPress, o Joomla. Drupal también es una buena opción, todo es cuestión de gustos.

  48. 60
    Carmencita
    13 de diciembre del 2009 a las 12:40 pm

    Hola, estoy empezando con esto de joomla y quiero crear un sitio web de la facultad, necesito ayuda. Quiero crear busquedas, colgar documentos,wikis, etc.

  49. 61
    David
    14 de enero del 2010 a las 2:12 pm

    Se puede encontrar una lista con los parámetros a usar en el fichero XML en MundoGeek

Trackbacks

  1. Tutorial: creando plugins con Joomla! 1.5 | nosoloCodigo
  2. Crear el XML del componente de Joomla y generar instalable | nosoloCodigo
  3. Joomla « Lizzie
  4. Tutorial: Componente para Joomla 1.5 III | nosoloCodigo
  5. Tutorial: Componente para Joomla 1.5 IV | nosoloCodigo
  6. Tutorial: Cómo crear un componentes para Joomla! 1.5 II | nosoloCodigo
  7. ¿ Qué es Joomla ? | Nosolocodigo | Desarrollo web con Joomla, Wordpress y demás herramientas de software libre
  8. ¿Como instalo extensión Joomla que no esté en zip? « en vida y tecnología …misterioaqo…
  9. Comparando lo incomparable: Joomla vs Wordpress round 2 | Nosolocodigo
  10. » Comparando lo incomparable: Joomla vs Wordpress round 2
  11. Tutorial: Como crear componentes en Joomla – Patrón MVC | Nosolocodigo
  12. Tutorial extensiones en Joomla: Desarrollo de componente I « Blog dzamo