Connexion S'inscrire

Connectez-vous

Login *
Mot de passe *
Se souvenir de moi

Créer un compte

Les champs marqués d'un astérisque (*) sont requis.
Nom *
Login *
Mot de passe *
Vérification mot de passe *
Email *
Vérification email *
Captcha *

Création d'un composant Joomla (partie 15) La pagination


Dans cette partie,  nous allons, ajouter la pagination dans la vue liste des guitaristes en administration. Tout se passera au côté administrateur donc dans le dossier administrator. Si vous êtes arrivés directement sur cette page, peut-être que vous aimeriez commencer par le début: Partie 1 | Partie 2 | Partie 3 | Partie 4 | Partie 5 | Partie 6 | Partie 7 | Partie 8 | Partie 9 | Partie 10 | Partie 11 | Partie 12 | Partie 13 | Partie 14

1 - La vue (view.html.php)

Dans la méthode display de la vue guitaristes (le fichier view.html.php), nous allons instancier la pagination. Le partie en couleur montre ce qu'il faut rajouter dans ce fichier. Ce fichier se trouve dans views/guitaristes/


public function display($tpl = null)
  {
    $items = $this->get('Items');
    $this->items = &$items;
    
    $pagination = $this->get('Pagination');
    $this->pagination = $pagination;
    
    DJGuitaristeHelper::addSubmenu('guitaristes');
    $this->sidebar = JHtmlSidebar::render();
    
    //Appel de la fonction pour créer la barre d'outil
    $this->addToolbar();
    
    parent::display($tpl);
    
  }

 Le contenu du fichier devrait maintenant ressembler à ceci :


<?php
defined('_JEXEC') or die;

class DJGuitaristeViewGuitaristes extends JViewLegacy
{
  public function display($tpl = null)
  {
    $items = $this->get('Items');
    $this->items = &$items;
    
    $pagination = $this->get('Pagination');
    $this->pagination = $pagination;
    
    DJGuitaristeHelper::addSubmenu('guitaristes');
    $this->sidebar = JHtmlSidebar::render();
    
    //Appel de la fonction pour créer la barre d'outil
    $this->addToolbar();
    
    parent::display($tpl);
    
  }
  
  protected function addToolbar(){
    JToolbarHelper::title(JText::_('COM_DJGUITARISTE_MANAGE_GUITARISTES'));
    JToolbarHelper::addNew('guitariste.add');
    JToolbarHelper::editList('guitariste.edit');
    JToolbarHelper::publish('guitaristes.publish');
    JToolbarHelper::unpublish('guitaristes.unpublish');
    JToolbarHelper::deleteList('', 'guitaristes.delete');
    
    JToolbarHelper::divider();
    
    //plus tard nous verons comment mettre un lien pour aller sur une page d'aide externe
    JToolbarHelper::help('JHELP_COMPONENTS_DJGUITARISTE_GUITARISTES_EDIT');
  }
  
}

2 - Le calque de vue (layout)

Dans notre calque de vue default.php, nous allons rajouter une balise tfoot dans le tableau pour y afficher la pagination. Nous allons aussi ajouter un champ caché dans le formulaire pour sauvegarder le nom de la vue. Les modifications sont en couleur dans le code suivant qui représente le contenu actuel du fichier default.php (views/guitaristes/tmpl/default.php) :


<?php
defined('_JEXEC') or die;
?>

<form action="<?php echo JRoute::_('index.php?option=com_djguitariste&view=djguitariste.guitariste'); ?>" method="post" name="adminForm" id="adminForm">

  <?php if(!empty($this->sidebar)): ?>
    <div id="j-sidebar-container" class="span2">
      <?php echo $this->sidebar; ?>
    </div>
    <div id="j-admin-container" class="span10 j-toggle-main" style="float:right;">
  <?php else: ?>
    <div id="j-admin-container">
  <?php endif; ?>
  
    <table class="table table-striped" id="guitaristes">
      <thead>
        <tr>
          <th width="1%">
            <input type="checkbox" name="checkall-toggle" value="" title="<?php echo JText::_('JGLOBAL_CHECK_ALL'); ?>" onclick="Joomla.checkAll(this)" />
          </th>
          <th width="1%" style="min-width:55px;" class="nowrap center">
            <?php echo JText::_('JSTATUS'); ?>
          </th>
          <th class="title">
            <?php echo JText::_('COM_DJGUITARISTE_NAME'); ?>
          </th>
          <!--th width="10%" class="nowrap hidden-phone">
            <?php //echo JText::_('COM_DJGUITARISTE_STYLE'); ?>
          </th-->
          <th width="1%" class="nowrap center">
            <?php echo JText::_('JGRID_HEADING_ID'); ?>
          </th>
        </tr>
      </thead>
      <tfoot>
        <tr>
          <td colspan="4">
            <?php echo $this->pagination->getListFooter(); ?>
          </td>
        </tr>
      </tfoot>
      <tbody>
      <?php foreach($this->items as $i => $item){ ?>
        <tr class="row<?php echo $i % 2; ?>">
          <td class="center">
            <?php echo JHtml::_('grid.id', $i, $item->id); ?>
          </td>
          <td class="center">
            <?php echo JHtml::_('jgrid.published', $item->state, $i, 'guitaristes.', true, 'cb', $item->publish_up, $item->publish_down); ?>
          </td>
          <td class="nowrap">
            <a href="/<?php echo JRoute::_('index.php?option=com_djguitariste&view=guitariste&layout=edit&id='.(int)$item->id); ?>">
              <?php echo $item->name; ?>
            </a>
            <p class="small">
              <?php echo $this->escape($item->category); ?>
            </p>
          </td>
          <td class="center">
            <?php echo $item->id; ?>
          </td>
        </tr>
      <?php } ?>
      </tbody>
    </table>
    <input type="hidden" name="task" value="" />
    <input type="hidden" name="boxchecked" value="0" />
    <input type="hidden" name="view" value="guitaristes" />
    <?php echo JHtml::_('form.token'); ?>
  </div>
</form> 

Maintenant en bas de la liste des guitaristes, vous devez voir apparaître ceci:

Pagination Joomla

NB: Vous devez avoir plus de 20 éléments dans la base de données pour voir la pagination alors, ajoutez des guitaristes :).

Lire la suite...

 


  • Dernière modification le jeudi, 28 septembre 2017 15:19
  • 366
Docteur Joomla

Après plus de 10 ans d'expérience en Joomla, je lance ce Blog pour partager mes connaissances avec les autres développeurs Joomla.