Question sur getUserStateFromRequest

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Question sur getUserStateFromRequest

    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.
    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);
    avec un getQuery

    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);
    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
    Dernière édition par Slushgood à 05/04/2022, 15h57

  • #2
    Ca n'a pas l'air d'inspirer beaucoup de monde

    Commentaire


    • #3
      Bon, bien j’ai trouvé une solution. J’enlève l’Itemid dans le lien et cela fonctionne.(>

      Commentaire


      • #4
        Si le probleme est réglé merci de l'indiquer :

        Lorsque l'on se cogne la tête contre un pot et que cela sonne creux, ça n'est pas forcément le pot qui est vide.
        Confucius

        Commentaire


        • #5
          Hello.

          Je suis en déplacement, et je n'ai pas trop le temps d'approfondir ta demande.

          Toutefois j'avais fait un article sur le sujet il y a quelques temps : https://ordi-genie.com/joomla/develo...atefromrequest
          Si cela peut t'aider.

          Bon dev.
          A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
          Rejoignez le Joomla Users Groupe Alsace...
          roland_d_alsace va-t-il devenir roland_du_grand_est ?

          Commentaire


          • #6
            Bonjour Roland, j'ai pu voir ton site en effet, j'avais même essayé ta proposition mais sans résultat. J'ai pensé que peut être cela pouvais venir de la version 4 que j'utilise. Mais, du coup le faite de ne pas mettre d'ItemId dans le résultat de ma recherche effectué par ce module ne devrait pas poser de problème, Si ?
            J'ai de toute façon fait en sorte de pouvoir paramétrer l'Itemid dans le module, sur l'un des bouton de menu si cela devait être nécessaire.

            Commentaire

            Annonce

            Réduire
            Aucune annonce pour le moment.

            Partenaire de l'association

            Réduire

            Hébergeur Web PlanetHoster
            Travaille ...
            X