Afin d'éviter des actions redondantes, j'intègre dans ce projet de CMS la possibilité de créer des tableaux de données rapidement, en quelques lignes de programmation.

Sélection des données

La première chose à faire, est d'aller sélectionner les données de la base de données ou de créer un tableau sous la forme clé/valeur. La classe Manager_Grib_Table prend un paramètre qui est soit un adaptateur de la base de donné, soit un tableau de valeurs. Notre exemple, nécessitera l'adaptateur prévu par Zend pour accéder à une base de données (que nous aurons au préalable mis dans Zend_Registry).

<?php
        $db = Zend_Registry::get('db');
        $grib = new Manager_Grib_Table($db);
?>

Ensuite, il vous suffit d'utiliser la méthode from pour chercher la table dont vous avez besoin :

<?php
        $grib->from('modules');
?>

Vos valeurs sont désormais sélectionnées de la façon la plus simple possible. Vous pouvez aussi utiliser les méthodes order et where pour affiner vos sélections. L'autre solution consiste à sélectionner les données "manuellement" puis de les mettre sous la forme d'un tableau avec la méthode toArray() prévus par Zend

Créer des colonnes à votre tableau

Les colonnes sont simples à mettre en place et les habitués de Zend_Form ne vont pas être totalement dépaysés. Voici comment procéder avec la classe Manager_Grib_Table_Column :

<?php
        $id = new Manager_Grib_Table_Column('id');
        $label = new Manager_Grib_Table_Column('label');
?>

Nous avons créé deux colonnes, id et label. Plus tard, il sera donc facile d'ajouter des attribues, éléments et évènements JavaScript aux colonnes, choisir sous quel forme les valeurs devront être affichées... Que nous verrons plus tard, afin de ne pas surcharger cet article. Pour ce qui est du paramètre fournit à la classe, il comprendre, dans notre exemple, le nom de la colonne. Qui correspond au même nom de la colonne de la base de données.

C'est ainsi que j'ai mis en forme la base de données pour diminuer les lignes de codes lors de la programmation.

Mais il est possible de modifier le nom de la colonne et de la clé des valeurs de la façon suivante:

<?php
    		$id->setTitle('Le titre de la colonne ID');
    		$id->setKey('La clé correspondant à une colonne de la base de données');
?>

Mais par défaut, le paramètre renseigné dans la classe Manager_Grib_Table_Column remplira les deux méthodes précédentes.

Ajouter les colonnes au tableau

Pour finir il faut ajouter ces nouvelles colonnes à notre tableau, une méthode reprise à Zend_Form qui consiste simplement à informer dans une méthode les colonnes à afficher. Voici comment procéder :

<?php
        $grib->addColumns(array($id, $label));
?>

Il ne vous reste plus qu'à mettre le tableau dans une variable pour la rendre dans la vue.

Vous pouvez voir comment il est facile de créer des tableaux de données avec Manager_Grib_Table en quelques lignes seulement (6 lignes minimum pour deux colonnes).

Le prochain article vous explique comment ajouter des éléments pour l'affichage des valeurs d'un tableau afin de créer des champs formulaires, des url...