Home Tutoriales Plantillas Agregar datos adicionales al módulo de contenido más leido

Agregar datos adicionales al módulo de contenido más leido

icoDetalles Tutorial - Nivel : Avanzado, Versión Joomla : 1.5.x, Formato : texto y video.
En este tutorial veremos cómo agregar campos adicionales, como fecha de creación y texto de introducción, al módulo de más leídos o mod_mostread, para esto será necesario modificar el core de Joomla, así como también utilizar la técnica de template overrides.

En el siguiente video se muestra cómo modificar el archivo helper.php del core de joomla y también cómo aplicar la técnica de template overrides para el módulo mod_mostread.

Suscríbete a monitojoomla en youtube para que puedas ver todos los videos publicados

 

Resultado Final

Resultado Final

 

1- Modificando el Core, helper.php de mod_mostread

Para obtener los datos de fecha y texto de introducción, necesitamos modificar el core de joomla, en el archivo /modules/mod_mostread/helper.php. Agregamos las siguientes líneas de código:

Primero, para la recuperación de la fecha con formato, modificamos la consulta SQL y recuperamos un nuevo campo llamado fechaformato. Modificamos la línea 53

$query = 'SELECT a.*, DATE_FORMAT(a.created,"%d/%m/%Y") as fechaformato,' .

Segundo, agregamos a la lista los campos de fechaformato y de introtext (el campo introtext ya esta recuperado dentro de la consulta). En la línea 83 aproximadamente agregamos el siguiente código

$lists[$i]->intro = $row->introtext;
$lists[$i]->fecha = $row->fechaformato;

 

2- Template override de mod_mostread

Copiamos la carpeta /modules/mod_mostread/tmpl hacia el template de nuestro sitio y lo renombreamos con el nombre del módulo, /templates/mitemplate/html/mod_mostread, editamos el archivo default.php, dentro de la etiqueta li, reemplazamos lo siguiente:

<span class="fecha"><?php echo $item->fecha; ?></span>
 
 <a href="/<?php echo $item->link; ?>" class="mostread<?php echo $params->get('moduleclass_sfx'); ?>">
 <?php echo $item->text; ?></a>
 
 <div class="inferior">
 <?php 
 preg_match_all('|<img.+</span>|',$item->intro,$salida); 
 echo $salida[0][0];
 ?>
 <div class="clear"></div>
 </div>

Tener en cuenta que la función de expresión regular preg_match, esta trabajando de acuerdo al html devuelto del template de monitojoomla.

 

3- Aplicando Estilos

Igualmente los estilos se aplican de acuerdo al ejemplo del template de monitojoomla

.clear{
 clear:both;
}

.fecha{
 font-size: 15px;
 font-weight: bold;
}

.mostread_popular img{
 width: 50px;
 height: 50px;
}

.mostread_popular .inferior{
 margin-top: 5px;
 padding-bottom: 8px;
 border-bottom: 1px solid gray;
}

 

Conclusión

En algunas ocasiones es necesario llegar a modificar el core de joomla para obtener funcionalidad adicional, en este caso se modificó el módulo mod_mostread pero esta mismo procedimiento es aplicable para otros módulos como por ejemplo el módulo de noticias recientes o mod_lastestnews.

 

 

Comparte este postDel.icio.us! Google! Live! Facebook! Twitter! Joomla Free PHP
Comentarios (10)
  • Eduardo Cifres
    avatar
    Saludo exlente tu trabajo me hasido de mucha utilidad ... Amigo una consulta estoy buscando una forma en joomla para poder eliminar el boton de resoltado del home ... para colocarlo en usuarios registrado para obligar a los visitante que se registre para ver los resultado ... es posible de hacer esa operaracion. apene me estoy iniciando con el sistema cms le dejo el lin de la pagina esta plantilla esta echa desde cero

    www.korimar.com.ve

    gracias de ante manos
  • Jhon Marreros
    avatar
    Hola Eduardo
    Puedes contactarme por la zona de contactos, tal vez te pueda ayudar.
    Saludos.
  • maritza
    avatar
    Buen material, pero no comprendi con respecto a esta funcion "preg_match_all", no he logrado obtener el resultado de la presentacion, donde deberia indicar esta funcion.

    Gracias
  • Jhon Marreros
    avatar
    Hola Maritza

    La función lo colocas tal como dice el punto 2 de este tutorial, se trata de una función que toma como parámetros:
    preg_match_all('||',$item->intro,$salida);

    1- Una expresión regular, esta expresión debes construirla particularmente para los datos que te interesan y es dependiente del html de tu artículo, en mi caso utilcé '||' que indica recuperar todo lo contenido entre la etiqueta de img hasta que encuentre una etiqueta span cerrada.
    2-Texto de entrada, todo el texto del artículo se encuentra en $item->intro.
    3- Array de Salida, el valor retornado de acuerdo a la expresión regular se encontrará en $salida[0][0];

    Saludos.
  • Maritza
    avatar
    Gracias por tu pronta respuesta ya lo pude solucionar he adaptado a mi plantilla.

    Muchas Gracias
  • carlos
    avatar
    Exelente aporte a la comunidad de joomla, estoy probando de modificar la consulta del k2, me puedes ayudar en algo??
  • Jhon Marreros
    avatar
    Hola carlos

    No he revisado mucho de k2, pero espero publicar algo pronto, permanece atento tal vez te sea de utilidad.

    Saludos.
  • abdiel
    avatar
    Jhon, primeramente super felicidades, nos descomplicas la vida a muchos, jeje
    segundo, trata de que este sitio se mantenga, la verdad encontrar ayuda en español tan sencilla de comprensión es dificilicimo, por eso mas gracias.
    tercero y para terminar, he estado buscando entre los archivos el bendito css que pueda controlar las funciones que has adaptado, pero no encuentro tal, será y perdon porque la verdad no se mucho de nada, pero existirá algun doc en css que controle parametros de los modulos? o tu has ido creando un css para todos os cambios que has ido arreglando?
    y si es el ultimo, como lo hago, porque ya me hice uno pero no lo adjudique a nada en esepcifico, como se hace cuando uno hace una plantilla que al html le suma el css para que se puedan lograr los comportamientos, ntoncs a que se lo adjudico
    pd
    gracias de antemano
    salu2
  • Gustavo
    avatar
    Excelente tus explicaciones :) Estoy comenzando en Joomla y una de las cosas que me preocupaba era como poder personalizar las cosas para que el sitio no quedara igual a las plantillas que todos conocemos :)

    Estoy mirando todos tus videos y aprendiendo mucho, gracias Monito! :)

  • Mike
    avatar
    Hola estoy modificando el core de joomla 1.7 y no lo veo igual a lo que esta explicado en este tutorial, ademas de que el modulo mostread ya no se llama asi ahora es articles popular, como se puede modifiace este modulo ahora???

    saludos
Escribir comentario
Gravatar enabled