Alors, pourquoi j'ai nommé nom blog, "la tribu des mini pouces" ?
Tout commence lorsque ma femme m'a parlé d'une tribu mystérieuse en Corée, la "Tribu des mini pouces" ... J'ai alors pensé d'une tribu autochtone, qui avait la particularité d'avoir des petit pouces, afin de mieux visé à l'arc ...
Mais il n'en était rien ... en fait, ce sont les personnes championnes d'écriture de Texto sur portable ! (ce qui n'est certainement pas mon cas ... )

Apparament, il n'est pas rare de rencontrer des jeunes coréens taper des texto à la vitesse de la lumière ! Voici donc un petit hommage,a tous les Geeks et Geekettes, et surtout aux développeurs dont certains se reconnaitront dans cette tribu ... ^^

mercredi 13 octobre 2010

Le dernière touche , vue sur Codeigniter


La vue sous codeIgniter , qu'est ce donc ?
C'est simplement l'une des trois composantes du modèle MVC (Modèle MVC étant un design pattern reconnu dans la communauté des développeurs ...)
Pour rappel, le Controleur est le chef d'orchestre, et c'est lui qui appellera les classes, méthodes, librairie et tout autre outils afin de pouvoir réponse à la requète. Il appellera notamment le Modèle (afin de récupérer les valeurs des variables) et la Vue afin de les mettre en formes.
Remarquons simplement que le Modèle, la Vue et le Controleur forme le MVC, comme Modèle MVC ... mm intéressant, non ? :)

Je vais donner dans cette présente article, une vue réutilisable (pour chaque controleur) et très simplement configurable, qui permet de finaliser la présentation du controleur.


I. Se mettre dans le contexte...
Le controleur après avoir récupérer les données, avec le modèle puis mise en page avec une vue particulière, il lui faut faire un bel encadrement pour mettre en valeur tout le code html qu'il a généré. Cet encadrement prend la forme d'une ou plusieurs balises div imbriquées les unes sur les autres(si l'on souhaite ou pas faire des coins arrondis).

Il y a deux écoles: les webdesigner auront tendances à mettre le code pour l'encadrement dans la vue de chaque controlleur, et les développeurs créront une autre vue pour l'encadrement qu'il appliqueront pour tous les controlleurs concernés. Les deux approches se valent, mais avec cependant avec un petit avantage pour les développeurs. En effet, si un jour, l'on souhaite intégré un nouveau type d'encadrement avec un structure différentes, alors le webdesigner devra modifier alors toutes les vues de tous les controleurs alors que le developpeur modifira uniquement la vue de cet encadrement...


II.Un peu de pratique, présentation de notre vue !
Sur CodeIgniter, la vue se situe dans le répertoire

Racine/system/application/view
Pour créer une vue, il vous suffit de créer un fichier dont l'extension est '.php', par exemple 'maVue.php'. Vous ouvrez le fichier, puis vous tapé:

<<?php
if(isset($type))echo $type;else echo 'div';
if(isset($id)) echo " id=\"$id\"";
if(isset($class)&& sizeof($class)>0)
echo ' class="'.implode(' ',$class).'"';
if(isset($autre)&& !empty($autre))
foreach($autre as $k=>$v)
echo " $k=\"$v\"";?>>
<?php echo $content;?>
</<?php if(isset($type))echo $type;else echo 'div';?>>

Ce code vous permettra de généré la plupart du code html, et pour être plus précis, il pourra généré toutes les balises ouvrantes, avec toutes les options que vous souhaitez ... !


III.Alors comment l'utiliser ?
Dans une méthode du controleur, il vous faut créer un tableau associé dans lequel vous devez renseigner au moins la valeur qui a pour clé 'content', afin de renseigner le contenu de la balise (a part les balises <a>, si l on souhaite faire une ancre...)
Sinon, pour le reste, c'est optionnel. Voici un exemple dans lequel on reseigne tous les champ utiles :

$t{'type'} = 'a';
$t{'autre'} = array('href'=>'www.yahoo.fr');
$t{'id'} = 'id_de_a';
$t{'class'} = array('class_1','class_2');
$t{'content'} = 'mon contenu de id_de_a';
$this->load->view('maVue',$t);

On peut remarquer que $t{'autre'} a pour type de valeur un tableau associé. En effet, pour rajouter des option à part l'identifiant et la classe, on a besoin d'une paire clé/valeur (Bases de xhtml).
De plus $t{'class'} est un tableau, cela vient du fait que l'on peut ajouter plusieur class dans une balise.
Je pense qu'il est aisément compréhensible que :
- $t{'type'} est le type de balise,
- $t{'autre'} est l'ajout de champ optionnel dans la balise
- $t{'id'} est l'identifiant de la balise
- $t{'class'} est les classes de la balise
- $t{'content'} est le contenu situé à l'intérieur de la balise


IV.Conclusion
Vous pouvez modifier cet objet à votre convenance et l'adapter a vos besoin ... cependant, je vous conseille fortement de replir $t{'autre'} au strict minimum, c'est à dire lorsque c'est nécessaire. Qu'est ce qui n'est pas nécessaire ? mm par exemple les styles ....Pourquoi? parce que lorsque vous appelerez d'autres controlleurs pour générer des petit bout de html, vous multiplierez inutilement le calcul de votre serveur ...
Ce bout de code est a utiliser (pour optimiser son efficacité) à la fin de chaque méthode du controleur, qui permettra de faire un belle mise en page avec le css.(donc ne pas appeler cette vue 50 fois dans une même méthode du controleur !)

Aucun commentaire:

Enregistrer un commentaire