Récupérer l'identifiant et l'id de l'utilisateur connecté

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

  • [RÉGLÉ] Récupérer l'identifiant et l'id de l'utilisateur connecté

    Bonjour,

    J'ai une application BDD intégrée dans une iframe de mon site Joomla!.

    Pour cette application, j'ai besoin de connaître l'utilisateur connecté. Est-ce que quelqu'un pourrait me dire où je peux le trouver (table, cookies?)
    Sites Internet de gestion de données en php et MySQL.

  • #2
    Re : Récupérer l'identifiant et l'id de l'utilisateur connecté

    En php :

    $user = JFactory::getUser();
    echo 'User name: ' . $user->username . '<br />';
    echo 'Real name: ' . $user->name . '<br />';
    echo 'User ID : ' . $user->id . '<br />';

    Commentaire


    • #3
      Re : Récupérer l'identifiant et l'id de l'utilisateur connecté

      C'est bien mais comment accéder à JFactory depuis mon application sans toucher aux fichiers Joomla.
      Sites Internet de gestion de données en php et MySQL.

      Commentaire


      • #4
        Re : Récupérer l'identifiant et l'id de l'utilisateur connecté

        Bonjour,

        Le plus simple dans ce cas est de passer l'ID et le username dans la chaîne d'appel à ton ammpli, dans le GET. A charge pour ton appli de récupérer les paramètres.
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire


        • #5
          Re : Récupérer l'identifiant et l'id de l'utilisateur connecté

          La récupération dans mon appli n'est pas un problème mais je ne vois pas très bien comment envoyer les données.

          Mon lien serait de la forme: /fic_client/index.php?id=NN&amp;name=xxxx mais où je récupère le NN et le xxxx sans toucher au php de Joomla.
          Dernière édition par jsuis à 31/10/2015, 18h48
          Sites Internet de gestion de données en php et MySQL.

          Commentaire


          • #6
            Re : Récupérer l'identifiant et l'id de l'utilisateur connecté

            Hello.

            Donc ton appli n'est pas sous Joomla.

            Il faut donc faire un plugin qui fait le bridge vers ton appli.

            Ce plugin appelé lors du login créerai par exemple un cookie à la 'sauce' de ton appli.
            Cela peut aussi être une variable de session utilisée dans ton appli.

            Bref il y a plusieurs formules, mais le + propre à mon avis est de te fabriquer un plugin user ou un plugin system de Joomla (selon les événements de Joomla que tu veux intercepter).

            Si tu as quelques euros à dépenser, achète le bouquin de Marc (voir ici...) et celui de Christophe (voir ici...).
            Dernière édition par roland_d_alsace à 31/10/2015, 18h54
            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


            • #7
              Re : Récupérer l'identifiant et l'id de l'utilisateur connecté

              Non, mon appli n'est pas une appli Joomla mais elle est intégrée dans un iframe d'une appli Joomla. Est-ce que tu me conseillerais un plugin plutôt qu'un autre?
              Sites Internet de gestion de données en php et MySQL.

              Commentaire


              • #8
                Re : Récupérer l'identifiant et l'id de l'utilisateur connecté

                C'est à toi de l’écrire ton plugin, mais tu peux t'inspirer de ceux de Joomla.
                Il faut avoir quelques notions de php bien sûr.

                En quelques ligne de php tu peux écrire ton cookie correspondant à ton appli.

                Par exemple un plugin de type system qui récupérerai l'user en cours (s'il est loggé) comme te l'indique terreco un peu plus haut.

                Si tu veux la faire systèmatiquement inspire toi de plugins existant déjà dans /plugins/system.

                Un truc du genre :
                Code PHP:
                class plgSystemNomDeTonAppli extends JPlugin
                {
                    function 
                onAfterInitialise()
                    {
                            
                $user JFactory::getUser();
                            if(!
                $user->guest){ // si l'utilisateur est loggé (pas un invité)
                               # ici l’écriture de ton cookie ou de tes variables de session pour ton appli
                               # (dans la mesure où elle est dans le même domaine)

                               # $user->id contient l'id de l'utilisateur courant

                               # ............

                            
                }
                        }

                Ce plugin de nom NomDeTonAppli.php serait dans /plugins/system/NomDeTonAppli bien sûr.

                Si tu veux le faire uniquement au login, ce serait un plugin de type user du style :
                Code PHP:
                class plgUserNomDeTonAppli extends JPlugin
                {
                    public function 
                onUserLogin($user$options = array())
                    {
                            
                $instance $this->_getUser($user$options);

                            
                # $instance->id contient l'id de l'user qui vient de se connecter.

                            # ici l’écriture de ton cookie ou de tes variables de session pour ton appli
                            # (dans la mesure où elle est dans le même domaine)

                            # ............

                        
                }

                Les 2 bouquins indiqué ci-dessus en #6... sont de très bonnes base de travail.
                Ce sont les seuls en français qui parlent du dev sous Joomla.
                Ils sont largement suffisant pour comprendre la logique de fonctionnement de Joomla et écrire des plugins.
                Après, pour approfondir il faut chercher dans les ouvrages en Anglais.
                Dernière édition par roland_d_alsace à 31/10/2015, 20h21
                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


                • #9
                  Re : Récupérer l'identifiant et l'id de l'utilisateur connecté

                  Merci pour ces infos. Elles me paraissent claires mais l'écriture de plugins est pour moi un travail de découverte, donc de longue haleine. Je traite donc ma première urgence et je reviendrai là-dessus juste après. Provisoirement l'utilisateur sera obligé de se logger 2 fois ce qui permettra de démarrer mais n'est vraiment pas élégant.
                  Sites Internet de gestion de données en php et MySQL.

                  Commentaire


                  • #10
                    Re : Récupérer l'identifiant et l'id de l'utilisateur connecté

                    Envoyé par jsuis Voir le message
                    ...mais l'écriture de plugins est pour moi un travail de découverte, donc de longue haleine...
                    Si tu as déjà des notions de PHP, l'achat du livre de Christophe te 'boostera' vraiment.
                    En 1 ou 2 soirée de lecture, tu auras l'envie de t'y mettre.

                    L'avantage est aussi que, à la lecture du livre, tu découvriras le fonctionnement de Joomla, ce qui est vraiment un + pour la gestion et l'utilisation de notre CMS préféré
                    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


                    • #11
                      Re : Récupérer l'identifiant et l'id de l'utilisateur connecté

                      Envoyé par jsuis Voir le message
                      ...Provisoirement l'utilisateur sera obligé de se logger 2 fois ce qui permettra de démarrer mais n'est vraiment pas élégant...
                      Ce n'est pas tout, tu as aussi le problème de l'inscription !

                      Avec un plugin de type users, dans des cas pareils (de mon côté je procède ainsi n'ayant pas fini la migration de 2 gros sites en 100% Joomla), en plus de gérer la connexion et la déconnection, le plugin me sert aussi à créer le user dans l'appli externe quand un nouveau membre s'inscrit sous Joomla, mais aussi pour synchroniser les profils lors de la mise à jour du profil dans Joomla.

                      Le plugin copie les information de Joomla dans les tables de l'appli externe.

                      C'est relativement simple à faire, il faut juste prévoir une table supplémentaire qui fasse le lien entre l'id du user dans Joomla et l'id du membre dans l'appli externe, où ajouter l'id de l'user Joomla dans la table membre de l'appli externe.
                      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


                      • #12
                        Re : Récupérer l'identifiant et l'id de l'utilisateur connecté

                        Oui, c'est assez logique. Merci.
                        La question que je me pose par rapport au livre indiqué est de savoir si il comporte une explication sur le XML que je ne connais pas du tout.
                        Dernière édition par jsuis à 01/11/2015, 19h31
                        Sites Internet de gestion de données en php et MySQL.

                        Commentaire


                        • #13
                          Re : Récupérer l'identifiant et l'id de l'utilisateur connecté

                          1-J'ai acheté le livre de Christophe Demko et je bloque déjà à la page 31.
                          2-Je voudrais utiliser le premier exemple de ton post #8 mais je n'arrive pas à le mettre en oeuvre.
                          • Faut-il mettre le "defined('_JEXEC') or die;"?
                          • Où et comment faire appel à cette nouvelle classe?
                          • Faut-il écrire un fichier xml et à quoi sert-il (Je ne connais pas le xml)?
                          • Dans le fichier xml, est-ce que la balise <langages> est indispensable, vu qu'aucun texte n'est prévu?
                          Dernière édition par jsuis à 17/11/2015, 10h09
                          Sites Internet de gestion de données en php et MySQL.

                          Commentaire


                          • #14
                            Re : Récupérer l'identifiant et l'id de l'utilisateur connecté

                            Je reviens sur mon message précédent. J'ai de grosses difficultés à comprendre les explications de ce livre.
                            J'ai créé un répertoire /plugins/system/myapplilogin contenant un fichier MyAppliLogin.xml et un fichier MyAppliLogin.php dont voici les codes:
                            Code HTML:
                            <?xml version="1.0" encoding="utf-8"?>
                            <extension version="3.4" type="plugin" group="system" method="upgrade">
                            	<name>plg_system_MyAppliLogin</name>
                            	<author>Author</author>
                            	<creationDate>November 2015</creationDate>
                            	<copyright>Copyright (C) 2015 Author. All rights reserved.</copyright>
                            	<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
                            	<authorEmail>toto@toto.fr</authorEmail>
                            	<authorUrl>www.toto.fr</authorUrl>
                            	<version>3.0.0</version>
                            	<description>PLG_MYAPPLILOGIN_XML_DESCRIPTION</description>
                            	<files>
                            		<filename plugin="MyAppliLogin">MyAppliLogin.php</filename>
                            	</files>
                            </extension>
                            Code PHP:
                            <?php

                            session_start
                            ();

                            defined('_JEXEC') or die;

                            class 
                            plgSystemMyAppliLogin extends JPlugin 

                                function 
                            onAfterInitialise() 
                                { 
                                    
                            $user JFactory::getUser(); 
                                    if(!
                            $user->guest){ // si l'utilisateur est loggé (pas un invité) 
                                        
                            $user JFactory::getUser();
                                        
                            $_SESSION['user']['UserName'] = $user->username;
                                        
                            $_SESSION['user']['RealName'] = $user->name;
                                        
                            $_SESSION['user']['UserId'] = $user->id;
                                        }
                                    }
                                 function 
                            onUserLogout($_SESSION['user']['UserId'])
                                 {
                                    unset(
                            $_SESSION['user']);
                                    
                            // Faire une redirection
                                    
                            }
                            }
                            Mes variables de sessions ne provoquent pas d'erreur mais ne s'affichent pas.
                            Dernière édition par jsuis à 23/11/2015, 09h23
                            Sites Internet de gestion de données en php et MySQL.

                            Commentaire


                            • #15
                              Re : Récupérer l'identifiant et l'id de l'utilisateur connecté

                              Hello.

                              Avant de rentrer dans la code, as-tu installé le plugin (ou fait 'découvrir'), puis l'as tu activé dans l'admin de Joomla ?
                              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

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X