Modification requête pour un layout

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

  • [RÉGLÉ] Modification requête pour un layout

    Bonjour à tous,

    Je cherche a ajouter un filtre sur la liste des articles d'une catégories, ce filtre est sensé permettre de filtrer sur un champ personnalisé.

    J'ai lu pas mal de trucs à ce sujet, sans vraiment trouver une solution qui reste du Joomla "core" (je suis sous Cassiopeia):

    J'ai créé un layout personnalisé avec le listbox qui va bien (le contenu du champ est fixe) et je peux récupérer la valeur de la listbox dans la $_REQUEST (oui je passerai sur le app->input() lors de la finalisation ), donc un partie de mon code est fonctionnel.

    Par contre ou je bloque, c'est comment ajouter modifier la requête, enfin surtout "où" et comment modifier cette requête, j'imagine qu'il faut surcharger le modèle ou quelque chose du genre, mais je n'arrive pas a trouver quelque chose de correct ....

    Une piste ?
    Dernière édition par wd_newbie à 15/04/2025, 07h21

  • #2
    Je ne réponds pas exactement à la question pcq je suggère une extension... mais JFilters (même la version gratuite) te donnerait directement la solution.

    J'ai rédigé une présentation détaillée ici : https://slides.woluweb.be/jfilters/
    Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

    Un message d’erreur sur votre site Joomla... ayez le reflexe de consulter la base de connaissance : https://kb.joomla.fr

    Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

    Commentaire


    • #3
      Merci pour ton retour, mais effectivement j'essaie toujours de me passer des extensions si j'arrive ...

      J'ai pu faire quelque chose en :
      1. entre le champ "Filtrer sur le titre " et le bouton filtre, de mettre un listbox qui reprend le contenu du champs personnalisé via un :

        Code:
          
        	$db = Factory::getDbo();
        	              $votreIdDeChampPersonnalise = 14;
        	
        	              $query = $db->getQuery(true);
        	              $query->select('DISTINCT '.$db->quoteName('value'))
        	                  ->from($db->quoteName('#__fields_values'))
        	                  ->where($db->quoteName('field_id') . ' = ' . $db->quote($votreIdDeChampPersonnalise))
        	                  ->order($db->quoteName('value') . ' ASC');
        	
        	              $db->setQuery($query);
        	              $results = $db->loadColumn();​
        ensuite charger cette listbox via un foreach() du $result.
      2. Plus bas dans le "foreach ($this->items as $i => $article) :" qui affiche la liste des articles, je compare la valeur de la sélection de la listbox avec la valeur du champ personnalisé.

        Si les deux concordes ou que la recherche est vide , j'affiche l'article, sinon je boucle sur le suivant
      C'est un peu bourrin, car a chaque fois je charge tous les articles pour en afficher qu'une sélection, mais dans ce cas, c'est une liste d'objet qui ne doit pas beaucoup évoluer, c'est instantané, mais sur une grosse catégorie avec des milliers d'articles ...ça passerait moins bien).

      Par contre je peux avoir la recherche sur le titre et sur des champs persos, ça c'est pas mal.

      Cliquez sur l'image pour l'afficher en taille normale  Nom : champ_perso.png  Affichages : 0  Taille : 17,8 Ko  ID : 2068873

      Mais si quelqu'un a une idée pour passer directement en paramètre sur la requête dans une espèce de surcharge du modèle, sans toucher au modèle de base, je suis preneur.


      Fichiers joints

      Commentaire


      • #4
        Bon, toujours une extension à suggérer... mais cette fois c'est directement sur github donc tu pourras voir comment c'est codé si tu veux pas l'utiliser
        Add custom filters to your Joomla categories. Contribute to nikosdion/plg_system_filtermagic development by creating an account on GitHub.
        Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

        Un message d’erreur sur votre site Joomla... ayez le reflexe de consulter la base de connaissance : https://kb.joomla.fr

        Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

        Commentaire


        • #5
          Merci pour le lien ... c'est vrai que pour Joomla je ne pense jamais d'aller voir sur Github , réflexe que j'ai pour beaucoup d'autre chose.

          En plsu c'est un repo de Nikos... donc au niveau qualité de code
          woluweb aime ceci.

          Commentaire

          Annonce

          Réduire
          Aucune annonce pour le moment.

          Partenaire de l'association

          Réduire

          Hébergeur Web PlanetHoster
          Travaille ...
          X