Petite question sur le résultat d'une recherche faite à plusieurs endroits.
J'ai créé plusieurs boutons qui utilisent le même model pour résultat de recherche.
avec un getQuery
Jusque là ça fonctionne. Et lorsque j'utilise les filtre, cela fonctionne aussi.
Mon problème est le suivant :
J'ai aussi créer un module de recherche qui lorsqu'il est utilisé sur l'ItemId de l'un de mes bouton(de recherche) ne conserve pas la recherche trouvée.
Je m'explique, la recherche se passe comme il faut, mais dés lors que je clique sur un filtre ou page suivante je perd ma recherche et récupére la recherche précédente.
Comme si le UserState n'était pas mis à jour (uniquement par le module).
Quelqu'un aurait-il une idée ?
Et si par la même occasion un reset des filtres pouvait être effectué au moment de la première recherche ce serait le top :-)
Merci pour votre aide
J'ai créé plusieurs boutons qui utilisent le même model pour résultat de recherche.
Code HTML:
protected function populateState($ordering = null, $direction = null) { $app = Factory::getApplication(); $input = $app->input; $context = $this->context; if($app->input->get('typeSearch') == 'button') { // Reset model and user state ($app->input->get('_resetState') == 0)?$search = $this->getUserStateFromRequest($this->context . '.search', 'search'):$search='NULL'; $this->setState('search', $search); ($app->input->get('_resetState') == 0)?$advancedsearch = $this->getUserStateFromRequest($this->context . '.multifilter', 'multifilter'):$advancedsearch = 'NULL'; $this->setState('multifilter', $advancedsearch); }else{ $search = $this->getUserStateFromRequest($this->context . '.search', 'search'); $this->setState('search', $search); $advancedsearch = $this->getUserStateFromRequest($this->context . '.multifilter', 'multifilter'); $this->setState('multifilter', $advancedsearch); } $filtersearch = $this->getUserStateFromRequest($this->context . '.filter.search', 'filter_search'); $this->setState('filter.search', $filtersearch);
Code HTML:
protected function getListQuery() { //recup search attribut $menu_params = $this->state->get('parameters.menu'); $input = Factory::getApplication()->input; $searchs = $this->getState('search'); $search_adv = $input->getState('multifilter'); //Create Listing Model if($input->get('_resetState') == '1' && $input->get('typeSearch') == 'button'){ //Reset Model $search_adv = array(); $SearchList = $menu_params->get('SearchList'); //Create multifilter foreach($SearchList as $key => $List){ ($List)? $search_adv[$key] = [$List]:''; } // $search_adv = $this->setState('multifilter',$multifilter = array($key => array($List))); $this->setState('multifilter',$search_adv); } // Create a new query object. $db = $this->getDbo(); $query = $db->getQuery(true);
Mon problème est le suivant :
J'ai aussi créer un module de recherche qui lorsqu'il est utilisé sur l'ItemId de l'un de mes bouton(de recherche) ne conserve pas la recherche trouvée.
Je m'explique, la recherche se passe comme il faut, mais dés lors que je clique sur un filtre ou page suivante je perd ma recherche et récupére la recherche précédente.
Comme si le UserState n'était pas mis à jour (uniquement par le module).
Quelqu'un aurait-il une idée ?
Et si par la même occasion un reset des filtres pouvait être effectué au moment de la première recherche ce serait le top :-)
Merci pour votre aide
Commentaire