liste de toutes les catégories: plusieurs colonnes

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • liste de toutes les catégories: plusieurs colonnes

    Bonjour,
    alors voilà, j'ai eu ce souci et je suis venu sur ce forum pour trouver une solution toute faite et n'ayant pas trouvé, j'ai un peu bidouillé dans le code Joomla et je suis arrivé à un résultat acceptable
    Je voulais donc en faire profiter tout le monde :-)

    Pour rappel, le problème était (en résumé) "comment faire pour afficher une "Liste de toutes les catégories" en plusieurs colonnes ou en tout cas, autrement que en 1 colonne qui peut parfois être kilométrique"

    Voici le code avec lequel vous pouvez remplacer entièrement le code (en tout cas pour un joomla 1.7.3) du fichier components/com_content/views/categories/tmpl/default_items.php

    <?php
    /**
    * @version $Id: default_items.php 22338 2011-11-04 17:24:53Z github_bot $
    * @package Joomla.Site
    * @subpackage com_content
    * @copyright Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
    * @license GNU General Public License version 2 or later; see LICENSE.txt
    */
    // no direct access
    defined('_JEXEC') or die;
    $class = ' class="first"';
    $compteur = 0;
    if (count($this->items[$this->parent->id]) > 0 && $this->maxLevelcat != 0) :
    ?>
    <table>
    <tr>

    <?php foreach($this->items[$this->parent->id] as $id => $item) : ?>
    <?php
    if ($this->params->get('show_empty_categories_cat') || $item->numitems || count($item->getChildren())) :
    if (!isset($this->items[$this->parent->id][$id + 1]))
    {
    $class = ' class="last"';
    }
    $compteur++;
    ?>

    <!-- <li<?php echo $class; ?>> -->
    <td width="150">
    <?php $class = ''; ?>
    <span class="item-title"><a href="<?php echo JRoute::_(ContentHelperRoute::getCategoryRoute($it em->id));?>">
    <?php echo $this->escape($item->title); ?></a>
    </span>
    <?php if ($this->params->get('show_subcat_desc_cat') == 1) :?>
    <?php if ($item->description) : ?>
    <div class="category-desc">
    <?php echo "<br/>".JHtml::_('content.prepare', $item->description); ?>
    </div>
    <?php endif; ?>
    <?php endif; ?>
    <?php if ($this->params->get('show_cat_num_articles_cat') == 1) :?>
    <!-- <dl><dt> -->
    <?php echo "<br/>".JText::_('COM_CONTENT_NUM_ITEMS'); ?><!--</dt>
    <dd> --><?php echo $item->numitems; ?><!--</dd>
    </dl> -->
    <?php endif; ?>
    <?php if (count($item->getChildren()) > 0) :
    $this->items[$item->id] = $item->getChildren();
    $this->parent = $item;
    $this->maxLevelcat--;
    echo $this->loadTemplate('items');
    $this->parent = $item->getParent();
    $this->maxLevelcat++;
    endif; ?>
    </td>
    <?php if($compteur%3 == 0) echo " </tr><tr>"; ?>
    <?php endif; ?>
    <?php endforeach; ?>
    </tr>
    </table>
    <?php endif; ?>
    Remarques:
    - inutile de vous rappeler la précaution d'usage, à savoir faire un backup du fichier original...
    - l'exemple ci-dessus, est valable avec 3 colonnes, si vous voulez un autre nombre de colonnes, changez le 3 dans la ligne ci-dessous par le nombre de votre choix:
    <?php if($compteur%3 == 0) echo " </tr><tr>"; ?>
    - j'ai aussi bidouillé mes css perso pour ajuster la largeur des cellules de mes tableaux à 150px, à vous de faire vos propres réglages
    - attention! si vos catégories contiennent elles-mêmes des sous-catégories, ce ne sera pas beau (dans la cellule de la catégorie, la boucle va créer un nouveau tableau: beurk; il faut donc bien régler le niveau des sous-catégories à 1 dans le lien de menu concerné

    Voilà, j'espère que ça aidera ;-)

Annonce

Réduire
Aucune annonce pour le moment.

Partenaire de l'association

Réduire

Hébergeur Web PlanetHoster
Travaille ...
X