6 de noviembre de 2012

Cómo ver en los propios artículos las impresiones de cuántas veces han sido visitados en Joomla 1.5

Problema

Trabajando con Joomla! 1.5.26 nos planteamos que sería conveniente que al final de cada artículo apareciera de forma automáticas las veces que ha sido leído, es decir, las impresiones o hits. Con Joomla! 2.5 (o con K2) lo tenemos fácil, bastaría con seleccionar la opción en la configuración de presentación de los artículos, sin embargo con Joomla! 1.5 no es tan sencillo... ¿Cómo hacerlo?

Solución

Buscando la solución encontramos dos posibles opciones totalmente válidas en otros contextos, pero que no servían a nuestro propósito inicial:

Plugin Article Hits. En este caso se trata de un plugin que se instala y cuando se activa, en cualquier lugar de un artículo donde coloquemos la etiqueta {hits}ID{/hits} (donde ID es el número identificador del artículo) mostrará las impresiones.

La verdad es que está muy bien, pero nuestra intención es que lo hiciera de forma automática, no que tengamos que estar escribiendo en todos los artículos unas etiquetas.

* Módulo Hits AnyWhere: En esta ocasión si se muestra de forma automática las impresiones en cada artículo, pero se trata de un módulo, por lo que eso de que encaje al final del artículo sin que quede extraño, es muy complicado.

Al final la solución la encontramos aquí, basada en realizar un par de sencillos cambios a dos archivos de nuestro Joomla!:

1. Nos dirigimos hacia el archivo .../components/com_content/models/article.php

Bucamos el siguiente código:

else
      {
         $user =& JFactory::getUser();
         $article =& JTable::getInstance('content');
         $article->state         = 1;
         $article->cat_pub      = null;
         $article->sec_pub      = null;
         $article->cat_access   = null;
         $article->sec_access   = null;
         $article->author      = null;
         $article->created_by   = $user->get('id');
         $article->parameters   = new JParameter( '' );
         $article->text         = '';


Y se escribe justo debajo:

$article->hits         = null;

2. Nos dirigimos hacia nuestra la carpeta de nuestra plantilla en: .../templates/plantilla/html/com_content/article/default.php. Si no tenemos plantilla propia o no existe este archivo en: .../components/com_content/views/article/tmpl/default.php

Buscamos algo aproximado a esto:

<td valign="top">
<?php if (isset ($this->article->toc)) : ?>
   <?php echo $this->article->toc; ?>
<?php endif; ?>
<?php echo $this->article->text; ?>


Y le añadimos abajo:

<?php echo "<p>" . "Veces leido:: ". $this->article->hits . "</p>"; ?>

En esta misma etiqueta podemos utilizar las funciones de estilo en HTML para darle formato.

De esta forma, logramos tener en la parte inferior de todos los artículos, una expresión de "Veces leído:" y justo al lado, el número de impresiones del artículo.

No hay comentarios:

Publicar un comentario