NAPC Demo  

Essayez gratuitement NAPContent sur notre site demo !

Devenez membre

 et bénéficiez de toutes nos solutions!

Devenez membre

Découvrez les sites

qui utilisent NAPContent !

Voir
plus

Template affichage List/Module/Adminlist

Structure du fichier XML

La structure est basée sur le modèle de base défini sur cette page.

Il est également possible pour les vues adminlist et list de rajouter une position technique permettant d'ajouter des filtres ou de pré filtrer les affichages.

Il suffit d'ajouter la position avec le nom réservé "filters"

<field name="filters" type="napctplpos" label="Filters" multiple="true"/>

Pour la vue liste uniquement il y a également une position qui permet d'utiliser l'affichage de certains champ qui ne sont pas rattaché à un item mais à une liste d'item. Un affichage global pour l'ensemble des items. Il faut rajouter une position avec un préfixe réservé "fieldlist"

<field name="fieldlist-global" type="napctplpos" label="Globlal" multiple="true"/>

Fichier du template

Template de la vue list.php 

<?php
defined('_JEXEC') or die;
/** @var NapcList $this */
$items = $this->getItems();?>
<h2><?= $this->getCatTitle() ?></h2>
<p><?= $this->getCatDesc() ?></p>
<?php if (count($this->filters)): ?>
    <form action="<?= JUri::getInstance()->toString(); ?>" method="post" name="adminForm" id="adminForm">
        <?php foreach ($this->filters as &$filter) : ?>
            <?= $this->renderFilter($filter, $filter->layout); ?>
        <?php endforeach; ?>
        <button type="submit" class="btn" id="napc-filter-submit"><?= JText::_('COM_NAPC_FILTER'); ?></button>
        <button type="reset" class="btn" id="napc-filter-reset"><?= JText::_('COM_NAPC_CLEAR'); ?></button>
    </form>
<?php endif;
if (@$this->tpllist['fieldlist-global'] && count($this->tpllist['fieldlist-global'])): ?>
    <?php foreach ($this->tpllist['fieldlist-global'] as $field) : ?>
        <?= $this->renderFieldList($field, $field->layout); ?>
    <?php endforeach; ?>
<?php endif;
if (count($items)):
    if (@$this->tpl['columns'] && count($this->tpl['columns'])): ?>
        <table class="table table-striped" id="articleList">
            <thead>
            <tr>
                <?php foreach ($this->tpl['columns'] as $field) : ?>
                    <th>
                        <?= JText::_($field->label); ?>
                    </th>
                <?php endforeach; ?>
            </tr>
            </thead>
            <tbody>
            <?php
            foreach ($items as $i => $item): ?>
                <tr class="row<?= $i % 2; ?>">
                    <?php foreach ($this->tpl['columns'] as $field) : ?>
                        <td <?= @$this->filters[$field->name]->value ? 'class="active-filter"' : '' ?>>
                            <?= $this->renderField($item, $field, $field->layout); ?>
                        </td>
                    <?php endforeach; ?>
                </tr>
            <?php endforeach; ?>
            </tbody>
            <?php if ($this->getPagination()->pagesTotal > 1):?>
            <tfoot>
            <tr>
                <td colspan="99" style="text-align: center">
                    <?php
                    $pagination = $this->getPagination()->getData();
                    echo '<nav class="text-center"><ul class="pagination pagination-lg">';
                    if ($pagination->start->link) {
                        echo '<li><a href="' . $pagination->start->link . '" title="' . $pagination->start->text . '">' . $pagination->start->text . '</i></a></li>';
                    } else {
                        echo '<li class="disabled"><span title="' . $pagination->start->text . '">' . $pagination->start->text . '</span></li>';
                    }
                    if ($pagination->previous->link) {
                        echo '<li><a href="' . $pagination->previous->link . '" title="' . $pagination->previous->text . '">' . $pagination->previous->text . '</a></li>';
                    } else {
                        echo '<li class="disabled"><span title="' . $pagination->previous->text . '">' . $pagination->previous->text . '</span></li>';
                    }
                    foreach ($pagination->pages as $page) {
                        echo '<li class="' . ($page->active ? 'active' : '') . '">';
                        if ($page->active) {
                            echo '<span>' . $page->text . '</span>';
                        } else {
                            echo '<a href="' . $page->link . '"><span>' . $page->text . '</span></a>';
                        }
                        echo '</li>';
                    }
                    if ($pagination->next->link) {
                        echo '<li><a href="' . $pagination->next->link . '" title="' . $pagination->next->text . '">' . $pagination->next->text . '</a></li>';
                    } else {
                        echo '<li class="disabled"><span title="' . $pagination->next->text . '">' . $pagination->next->text . '</span></li>';
                    }
                    if ($pagination->end->link) {
                        echo '<li><a href="' . $pagination->end->link . '" title="' . $pagination->end->text . '">' . $pagination->end->text . '</a></li>';
                    } else {
                        echo '<li class="disabled"><span title="' . $pagination->end->text . '">' . $pagination->end->text . '</span></li>';
                    }
                    echo '</ul></nav>';
                    ?>
                </td>
            </tr>
            </tfoot>
            <?php endif; ?>
        </table>
    <?php endif; ?>
<?php else: ?>
    <div class="alert alert-warning">
        <h4 class="alert-heading"><?= JText::_('COM_NAPC_NOITEMS'); ?></h4>
    </div>
<?php endif;

 Pour afficher les informations de la catégorie en version traduite, vous pouvez utiliser le code suivant :

<h2><?= $this->getCatTitle() ?></h2>
<p><?= $this->getCatDesc() ?></p>

Pour afficher les filtres utiliser le code suivant :

<?php if (count($this->filters)): ?>
    <form action="<?= JUri::getInstance()->toString(); ?>" method="post" name="adminForm" id="adminForm">
        <?php foreach ($this->filters as &$filter) : ?>
            <?= $this->renderFilter($filter, $filter->layout); ?>
        <?php endforeach; ?>
        <button type="submit" class="btn" id="napc-filter-submit"><?= JText::_('COM_NAPC_FILTER'); ?></button>
        <button type="reset" class="btn" id="napc-filter-reset"><?= JText::_('COM_NAPC_CLEAR'); ?></button>
    </form>
<?php endif;

Pour afficher un champ d'une position globale, utiliser le code suivant :

if (@$this->tpllist['fieldlist-global'] && count($this->tpllist['fieldlist-global'])): ?>
    <?php foreach ($this->tpllist['fieldlist-global'] as $field) : ?>
        <?= $this->renderFieldList($field, $field->layout); ?>
    <?php endforeach; ?>
<?php endif;

Pour récupérer les items de la liste et les parcourir :

$items = $this->getItems();
if (count($items)):
    <?php foreach ($items as $i => $item): ?>
     // affichage des champs des items
    <?php endforeach; ?>
<?php else: ?>
    <?= JText::_('COM_NAPC_NOITEMS'); ?>
<?php endif;

Pour afficher les champs des positions de chaque item

<?php if (@$this->tpl['position_name']): ?>
    <?php foreach ($this->tpl['position_name'] as $field) : ?>
        <?= $this->renderField($item, $field, $field->layout); ?>
    <?php endforeach; ?>
<?php endif; ?>

 Gestion de la pagination :

<?= $this->pagination->getListFooter(); ?>
×
Ce site utilise des cookies pour vous offrir le meilleur service. En continuant, vous acceptez de recevoir les cookies sur ce site.