- 1
[Opened] Dans un crud changer l'odre de tri
Posted by djanke on 02/11/2008 17:25
Dans le template de liste d'un crud générique est il possible de modifier dynamiquement l'ordre de tri ???
[Opened] Re: Dans un crud changer l'odre de tri
Posted by bballizlife on 02/11/2008 17:41
Oui. En regardant la documentation de référence de jControllerDaoCrud tu aurais vu la propriété $propertiesForRecordsOrder : list of properties which serve to order the record list.
N'importe comment c'est dans la doc
[Opened] Re: Dans un crud changer l'odre de tri
Posted by bballizlife on 02/11/2008 18:12
Cela fait parti des concepts de programmation orientée objet. Il faut quand même un minimum de connaissances pour vouloir faire ce qu'on veut...
N'importe comment c'est dans la doc
[Opened] Re: Dans un crud changer l'odre de tri
Posted by laurentj on 02/11/2008 18:14
@danke je pense que faire un petit tour vers un manuel de programmation objet avec PHP5 te serait bénéfique ;-)
bballizlife te dit qu'il faut que tu redéfinisse la méthode index(). Que tu la réécrive quoi (ou que tu y fasse des choses et qu'ensuite tu appelle la méthode index originale).
Mais bon désolé, je n'ai pas le temps d'expliquer plus sur les bases de la programmation en PHP.
[Opened] Re: Dans un crud changer l'odre de tri
Posted by djanke on 02/12/2008 16:19
Je pense avoir trouvé, dans mon controleur je rajoute la methode index comme suit
function _index($resp, $tpl) { $resp->title = 'Test-tri'; $offset = $this->intParam($this->offsetParameterName,0,true); $form = $tpl->get('form'); $conditions = jDao::createConditions(); //$conditions->addCondition('name', '=','Toto'); //$this->champ = 'name'; $this->champ = $this->param('champ'); $this->sens = $this->param('sens'); $conditions->addItemOrder($this->champ, $this->sens); $dao = jDao::get($this->dao, $this->dbProfil); //$results = $dao->findBy($conditions); $results = $dao->findBy($conditions,$offset,$this->listPageSize); $tpl->assign('list',$results); }
Elle à l'air de bien fonctionner si je rajoute dans l'url
&champ=name&sens=asc
Ma table est bien trié sur le champ name pourriez vous tout de même me répondre si je n'ai pas fait d'erreurs merci d'avance. Je pense que cette méthode doit pouvoir également servir pour effectuer une recherche en rajoutant des addCondition (question posée sur d'autres threads).
[Opened] Re: Dans un crud changer l'odre de tri
Posted by djanke on 02/13/2008 13:59
Merci beaucoup pour cette relecture de code ça marche sauf
if (isset($this->propertiesForRecordsOrder [$champ]))
Remplacé par
if ($champ != '')
J'ai besoin de récupérer la valeur de $champ et $sens dans le template j'ai essayé en vain de l'assigner dans la fonction je le rajoute donc dans la methode.
function _index($resp, $tpl) { $champ = $this->param('champ'); $sens = $this->param('sens'); $tpl->assign('champ',$champ); $tpl->assign('sens',$sens); }
De toute façon j'aurais certainement besoin de faire appel à la methode plus tard pour ajouter des conditions pour la recherche.
[Opened] Re: Dans un crud changer l'odre de tri
Posted by djanke on 02/13/2008 16:15
Oui j'ai bien compris pour modifier dans index() $propertiesForRecordsOrder
$this->propertiesForRecordsOrder [$champ] = $sens;
Mais je veux aussi modifier les conditions du findBy pour effectuer une recherche c'est bien dans la méthode?
- 1