Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] [Résolu]Modification de la valeur de champ avant envoie vers tpl

Posted by muirgen on 02/24/2011 18:29

bonjour,

Cette fois ci je reviens avec, je pense, une vrai question !

Je zieute le manuel de jelix en quête de réponse, je sens qu'il y a un élément de réponse, mais je n'arrive pas à mettre le doigt dessus, d'où mon passage sur le forum.

Explication : Dans une zone, je fais une requête pour récupérer un nombre d'enregistrement.

$cnx = jDb::getConnection();
$query = $cnx->query('SELECT CHAMPA,CHAMPB,CHAMPC FROM matable ORDER BY ID DESC');

Là aucun problème pour récupérer le résultat ! Mais dans ce même résultat avant d'envoyer en tpl et de boucler dessus, j'aimerai apporter une modification significative. Le CHAMPA ne contient que des données int, qui en fait font référence, chacune à une chaine précise :

  • 1 -> belette
  • 2 -> chat
  • 3 -> furet

Le problème c'est que dans le tpl comme dans le fichier de zone, à part faire des if et tester à chaque fois la valeur

{if $query->CHAMPA == '1'}
belette
{/if}
ect ...

J'entrevois pas trop de possibilités là de suite, sauf boucler en while dans la zone, faire une fonction ou des if voir des switch pour filtrer la valeur du CHAMPA et la modifier en fonction du numéro de chaque "section", puis de stocker le tout dans une variable et d'envoyer le paquet au tpl sans cérémonie ! Du coup je me suis penchée (pas trop hein !), sur les fichiers xml des DAO justement que j'ai déjà eu l'occasion de tripatouiller sur une autre appli, et je me demandais si mon cas de figure ne pouvais pas être mis en place dedans en réattribuant la valeur d'un champ via une méthode lorsqu'elle est appelé sur une requête.

Mais je m’égare peut être, d'où le fait que je sois venue poster ici, au cas où quelqu'un se serait déjà posée la question où alors aurait fait la même chose en tergiversant moins que moi ^^

A noter que je demande pas une solution toute faite, mais des pistes à explorer, avec des explications pour mettre en oeuvre.

Merci d'avance !

  [Opened] Modification de la valeur de champ avant envoie vers tpl

Reply #1 Posted by foxmask on 02/24/2011 21:56

dans la zone je ferai un tableau tout bête (jeu de mots:) que je passe ensuite au template que je pourrai parcourir dans mon foreach

$zoo = array(1=>'belete',2=>'chat',3=>'furet');
$this->_tpl->assign('recs',$recs);
$this->_tpl->assign('zoo',$zoo);

dans le template

{foreach $recs as $idx => $rec}
{$zoo[[$idx]]}
{/foreach}

code non testé mais l'idée est là.


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] Modification de la valeur de champ avant envoie vers tpl

Reply #2 Posted by muirgen on 02/25/2011 08:54

Bonjour !

Merci à toi Foxmask pour cette suggestion.

Effectivement l'idée est toute bête (faisons nous plais' :P), je ne l'avais même pas entrevue, j'étais déjà partie super loin dans mes réflexions.

Je test ça de suite et reviens mettre un message !

Encore merci !

  [Opened] Modification de la valeur de champ avant envoie vers tpl

Reply #3 Posted by muirgen on 02/25/2011 10:03

Ben c'était vraiment tout bête ! (je persiste et signe ^^)

Ta proposition fonctionne impeccable Foxmask.

Merci beaucoup à toi.

J'édite le sujet pour un magueu ni fiqueeeuu "résolu".

  [Opened] [Résolu]Modification de la valeur de champ avant envoie vers tpl

Reply #4 Posted by foxmask on 02/25/2011 21:38

il vous en prie :)


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

 
Page
  1. Modification de la valeur de champ avant envoie vers tpl