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 5) Vue liste en administration


Dans cette partie,  nous allons commencer à travailler du côté administrateur (liste des données). 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.

1 Préparation du terrain

Pour nous faciliter la tâche, nous allons copier tous les éléments de la partie front-end dans le dossier du composant en back-end. Les élément à copiés sont :

  • le dossier models
  • le dossier views
  • le fichier controller.php
  • le fichier djguitariste.php

Donc en partant de la racine de notre site, les fichiers à copier se trouve dans "components/com_djguitariste/" et nous devons les copier dans "administrator/components/com_djguitariste". Le dossier du composant en administration devrait avoir en plus des mêmes fichier qu'en front-end, le dossier "sql" et le fichier "djguitariste.xml". Voici la structure actuelle du dossier:

 

 2 La vue liste

Pour l'instant notre composant en administration s'affiche presque de la même façon que sur le site et ce n'est pas très utile mais nous allons bientôt commencer à faire des modifications pour rendre les éléments administrables. Nous allons commencer par la vue liste donc "views/guitaristes/tmpl/default.php". Nous devons placez les élément dans un formulaire contenant un tableau pour pouvoir les manipuler comme dans une vue liste normale de Joomla. Dans ce tableau, nous allons afficher juste le nom et le id pour le moment mais nous reviendrons plus tard avec des modifications. Ouvrez le fichier "default.php" et remplacer le contenu par ceci :


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

<form action="<?php echo JRoute::_('index.php?option=com_djguitariste&view=djguitariste.guitariste'); ?>" method="post" name="adminForm" id="adminForm">
  <div id="j-admin-container">
    <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 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>
      <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="nowrap">
            <a href="/<?php echo JRoute::_('index.php?option=com_djguitariste&view=guitariste&layout=edit&id='.(int)$item->id); ?>">
              <?php echo $item->name; ?>
            </a>
          </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" />
    <?php echo JHtml::_('form.token'); ?>
  </div>
</form>

Notez que la ligne <?php echo JHtml::_('form.token'); ?> est là pour des raison de sécurité. Pour protéger contre des attaques CRSF (Cross Site Request Forgery ). Pour en savoir plus sur le CSRF, cliquez ici.

Puis nous allons ouvrir le fichier view.html.php qui se trouve dans views/guitaristes pour y apporter quelques modifications. Nous devons renommer le propriété guitaristes en items. Le contenu final du fichier devrait ressembler à ceci:


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

class DJGuitaristeViewGuitaristes extends JViewLegacy
{
  public function display($tpl = null)
  {
    //Nous récupérons les enregistrement en faisant appel au modèle
    $items = $this->get('Items');
    $this->items = &$items;
    
    parent::display($tpl);
    
  }
}

 

Nous reviendrons sur la vue liste très plus tard mais pour avancer efficacement, nous devons mettre en place la vue d'édition (formulaire de modification des données). La vue d'édition sera traitée dans la partie suivante. Merci de votre patience. Cliquez ici pour lire la partie 6


  • Dernière modification le jeudi, 28 septembre 2017 15:11
  • 704
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.