Por Agustín Baraza on Jueves, 01 Mayo 2014
Categoría: Mayo

Ver el número de artículos por categoría en un blog Joomla

Como mas de uno ya habrá descubierto, Joomla 3.x permite mostrar el numero de artículos existentes en cada categoría junto a su nombre, solo con marcar una casilla desde la configuración. Sin embargo, algunos todavía seguimos usando Joomla 2.5, y esta opción no esta disponible. Y no esta disponible dentro de la administración, pero si en el código de Joomla, es decir, Joomla 2.5 si que cuenta los artículos, tan solo hay que saber que modificar para que muestre ese dato.

En Joomla 3.x

En el caso de Joomla 3.x, si tenemos montado un blog (categoría blog), y usamos el modulo "Categorías de los artículos" para ver las categorías pertenecientes a este blog, simplemente tendremos que marcar la opción "mostrar la cantidad de artículos". 

Con lo que obtendríamos algo así:

Solución para Joomla 2.5

En Joomla 2.5 tendremos que modificar el modulo "Categorías de los artículos" como muestro a continuación: 

  1. Abrimos el archivo modules->mod_articles_categories->helper.php con un editor y añadimos los siguiente (marcado en rojo):
    ...
    abstract class modArticlesCategoriesHelper
    {
    public static function getList(&$params)
    {
        $options = array();
        $options['countItems'] = 1;
        $categories = JCategories::getInstance('Content', $options);
        $category = $categories->get($params->get('parent', 'root'));
        if ($category != null)
        {
            $items = $category->getChildren();
            if($params->get('count', 0) > 0 && count($items) > $params->get('count', 0))
            {
                $items = array_slice($items, 0, $params->get('count', 0));
            }
            return $items;
        }
    }
    ...
  2. Abrimos el archivo modules->mod_articles_categories->tmpl->default-items.php y añadimos esto en la línea 17 aproximadamente (lo marco en rojo):
    defined('_JEXEC') or die;
    foreach ($list as $item) :
    ?>
    <li <?php if ($_SERVER['PHP_SELF'] == JRoute::_(ContentHelperRoute::getCategoryRoute($item->id))) echo ' class="active"';?>> <?php $levelup=$item->level-$startLevel -1; ?>
      <h<?php echo $params->get('item_heading')+ $levelup; ?>>
    <a href="<?php echo JRoute::_(ContentHelperRoute::getCategoryRoute($item->id)); ?>">
    <?php echo $item->title;?> (<?php echo $item->numitems; ?>)</a>
       </h<?php echo $params->get('item_heading')+ $levelup; ?>>
    <?php
    if($params->get('show_description', 0))
    {
    ...
    

Con esto bastara para que el modulo "Categorías de los artículos" cuente los artículos en cada categoría del blog, de la misma forma que lo hace en Joomla 3.x. 

Conclusión

Joomla cada vez esta mas preparado para crear un blog, y ofrece funciones muy interesantes para ello, sin embargo, hay ocasiones en las que estas funciones no son accesibles desde el backend, o no están implementadas, por lo que nos tocara investigar un poco hasta dar con la solución. En cualquier caso, si el problema escapa a nuestro nivel, siempre tendremos la opción de recurrir a una extensión.

Dejar comentarios