Trier une liste

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

  • Trier une liste

    Bonjour,
    Je créé un composant dans lequel des listes sont affichées.
    Voici un point que je souhaiterai résoudre.

    Je souhaite filtrer une liste selon le USERGROUP et n'afficher que ce qui concerne le USER.

    Dans un site Joomla.
    J'ai une table :
    Cette table me sert à afficher une liste accessible par un lien de menu.

    ID TA CDP ...
    1 Dupont Martin ...
    2 Smith Martin ...
    3 Dupont Paul ...

    Dans le site, il existe deux groupes d’accès à Joomla
    • Le groupe TA
    • Le groupe CDP

    Je souhaiterai mettre en place un filtre sur la liste qui :
    • Quand c’est un TA qui affiche cette liste (en front) que ne soit affiché dans cette liste que les lignes ou ce TA apparaît dans la colonne TA. (Par exemple que Dupont ne voit que les lignes où il est TA)
    • Quand c’est un CDP qui affiche cette liste (en front) que ne soit affiché dans cette liste que les lignes ou ce CDP apparaît dans la colonne CDP. (Par exemple que Martin ne voit que les lignes où il est CDP)
    Comment puis-je faire cela ?

    Je peux fournir le PHP de la liste ainsi que le model de cette liste.

    Cordialement.

    Eric

  • #2
    Re : Trier une liste

    tu récupère le user_name et l'id de son usergroup et en fonction de cet id tu ajoutes un where à ta requête mysql

    $query->select('*')
    ->from($db->quoteName('#__ta_table'))
    if(group==10)
    $query->where('TA=' . quote(user_name));
    if(group==11)
    $query->where('CDP=' . quote(user_name));

    où 10 et 11 sont tes groupes respectifs TA et CDP
    Christophe
    http://www.webcrea.fr

    Commentaire


    • #3
      Re : Trier une liste

      Bonsoir webcrea,
      Merci beaucoup pour ta réponse.
      Je n'ai pas eu le temps de me re-pencher sur mon souci ni de revenir ici depuis que j'avais posé cette question.

      Il s'agit d'un composant dont j'ai développé la base avec Component Creator
      La table concernée s'appelle: y8a0u_crmform_projets

      Je ne sais pas à quel endroit je met ce morceau de code ?
      Dans quel fichier, car j'ai 3 fichiers PHP:
      defaut.php dans:
      • projetform/tmpl: qui est le formulaire de création des éléments de la liste en question.
      • projets/tmpl : Qui est l'affichage de la liste créée par le formulaire defaut.php qui est dans projetform/tmpl
      • projet/tmpl



      J'ai aussi un fichier defaut_filter.php dans projets/tmpl

      Pourrais-tu m'aider ?

      Cordialement.

      Eric
      Dernière édition par Agrepe à 26/06/2016, 23h21

      Commentaire


      • #4
        Re : Trier une liste

        C'est plus au niveau du model qu'il faudrait ajouter ce type de code, dans la fonction qui construit la requête mysql pour récupérer tes lignes.

        /models/projets.php par exemple
        Christophe
        http://www.webcrea.fr

        Commentaire


        • #5
          Re : Trier une liste

          merci beaucoup Webcrea

          Commentaire


          • #6
            Re : Trier une liste

            Je suis dans mon fichier projets.php qui est dans les models.
            Je ne vois pas trop où et comment insérer cela?

            Le nom de la table s'insère comme cela ? (avec deux underscore ?)

            Code:
            $query->select('*')
            ->from($db->quoteName('#__ y8a0u_crmform_projets))
            if(group==11) 
            $query->where('TA=' . quote(user_name));
            if(group==10) 
            $query->where('CDP=' . quote(user_name));
            Dernière édition par Agrepe à 27/06/2016, 13h15

            Commentaire


            • #7
              Re : Trier une liste

              Bonjour Webcrea,
              Je ne trouve pas où insérer ce code.
              Puis-je te demander à quel endroit dans mon PHP je dépose ce code ?
              (si je te fournit le fichier)
              Cordialement.
              Eric

              Commentaire


              • #8
                Re : Trier une liste

                #__ y8a0u_crmform_projets

                #__crmform_projets

                Le principe est #__ sera remplacé par le préfixe y8a0u_ lors de l'exécution de la requête
                Christophe
                http://www.webcrea.fr

                Commentaire


                • #9
                  Re : Trier une liste

                  Bonjour Webcrea,
                  Merci beaucoup,
                  C'est ce que j'ai constaté en en observant différent fichiers, des composants.

                  J'ai aussi vu que je pouvais utiliser $user = JFactory::getUser(); pour récupérer l'ID de l'utilisateur.
                  (https://docs.joomla.org/Accessing_th...nt_user_object)

                  Merci pour tout, je persévère.

                  Cordialement.

                  Eric

                  Commentaire

                  Annonce

                  Réduire
                  Aucune annonce pour le moment.

                  Partenaire de l'association

                  Réduire

                  Hébergeur Web PlanetHoster
                  Travaille ...
                  X