Comment récupérer l'ID d'un niveau d'accès et l'iD de la langue

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

  • [RÉGLÉ] Comment récupérer l'ID d'un niveau d'accès et l'iD de la langue

    bonjour,

    J'aimerai dans un module personnalisé insérer du code php afin d'afficher une phrase différente en fonction du niveau d'accès et de la langue de l'utilisateur.

    Par exemple

    if((id=='1') and (id=='fr')) {echo 'bonjour invité' }
    if(id=='2'){echo 'bonjour cher membre'}
    ainsi de suite

    Malheureusement, je ne parviens à trouver la bonne syntaxe avec le bon champ pour me sortir cet ID.

    si pour les utilisateurs, il me semble que c'est quelque chose comme cela

    $user = &JFactory::getuser();
    echo $user->username;

    Cela est même étonnant car, dans la base, je vois la table users et non user , mais cela fonctionne.

    Quelqu'un a-t-il une petite idée ?

    Merci beaucoup.

    Ps je suis sous joomla 3.4.1, avec un extension installée pour insérer du code dans un module .
    Dernière édition par carabao à 09/04/2015, 19h18 Raison: correction question
    Cordialement,
    carabao

    Site dédié à la caravane & au camping: www.caravane-camping.be

  • #2
    Re : Comment récupérer l'ID d'un niveau d'accès et l'iD de la langue

    Bonjour carabao,

    Voilà un petit exemple de module de type contenu personnalisé qui te donneras une idée de la syntaxe à utiliser en fonction de ce que tu souhaites faire.

    Une petite remarque préalable : les utilisateurs peuvent faire partie de différents groupes et à chaque niveau d'accès peuvent être assignés différents groupes. Donc cela serait un peut compliqué de partir sur les niveau d'accès. Dans mon exemple je me suis limité aux groupes ce qui devrait te suffire.

    Contexte : Joomla! 3.4.1 Fr (avec exemples) + Protostar + Sourcerer + Module personnalisé en position-7
    Code PHP:
    {source}
    <?php
    echo '<h4>Utilisateur</h4>';
    $user JFactory::getUser();
    echo 
    'Nom : ' $user->name '<br /> ' ;
    echo 
    'Identifiant : ' $user->username '<br /> ';
    echo 
    'E-mail : ' $user->email '<br /> ';
    echo 
    'N° groupe(s) : ';
    foreach (
    $user->groups as $group) :
         echo 
    $group '  ';
    endforeach;echo 
    '<br />';
    echo 
    '<h4>Groupes (database)</h4>';
    $db JFactory::getDBO();$query $db->getQuery(true)
        ->
    select('title')
        ->
    from('#__usergroups')
        ->
    where('id in (' implode(','$user->groups) . ')')
        ->
    where('id <> 1');
    $db->setQuery($query);
    $groups $db->loadObjectList();
    if (
    $groups) :
        foreach (
    $groups as $group) :
            echo 
    'Groupe : ' $group->title '<br />';
        endforeach;
    endif;
    echo 
    '<h4>Paramètres JSON</h4>';
    $params = new JRegistry;
    $params->loadString($user->params);
    echo 
    'Langue user admin : ' .  $params->get('admin_language','') . '<br />';
    echo 
    'Langue user site : ' .  $params->get('language','') . '<br />';
    echo 
    '<h4>Document</h4>';
    $doc JFactory::getDocument();
    echo 
    'Langue document : ' $doc->language '<br />';
    echo 
    'Direction document : ' $doc->direction '<br />';
    ?>
    {/source}
    Notes :
    • Utilisateur : des infos que l'on peut avoir directement de JFactory::getUser()
    • Groupes (database) : si l'on veut les noms des groupes, il faut aller les chercher dans la base de données
    • Paramètres JSON : la langue de l'utilisateur configurée dans Gestion des utilisateurs fait partie des paramètres de l'utilisateur qui sont enregistrés sous forme JSON et qu'il faut "décoder" au préalable
    • Document : paramètres de langue venant du document, je les ai ajoutés car ils existent même si l'utilisateur n'est pas connecté (groupe = "Invité").

    Résultats pour un utilisateur connecté et pour un utilisateur non connecté :
    Cliquez sur l'image pour l'afficher en taille normale

Nom : bienvenue_connecté.png 
Affichages : 1 
Taille : 21,0 Ko 
ID : 1804179 Cliquez sur l'image pour l'afficher en taille normale

Nom : bienvenue_non_connecté.png 
Affichages : 1 
Taille : 16,3 Ko 
ID : 1804180

    Amicalement,
    Rajoz

    Commentaire


    • #3
      Re : Comment récupérer l'ID d'un niveau d'accès et l'iD de la langue

      Bonjour,


      Un très très grand merci pour ta réponse plus que complète. Nettement plus complète que ma question au départ.

      Encore un très grand merci pour ton aide.
      ZerooCool aime ceci.
      Cordialement,
      carabao

      Site dédié à la caravane & au camping: www.caravane-camping.be

      Commentaire


      • #4
        Très intéressant, mais, quand je test ce code, les langues user admin et user site ne sont pas affichées.
        Sinon, c'est parfait. Une petite mise à jour, pour les langues ?
        Est-ce moi qui ai oublié de les renseigner dans mon interface ?

        Commentaire


        • #5
          ZerooCool
          le post date de plus de 2 ans ! Il y a surement eu quelques changements depuis le temps ... tu ne crois pas ?
          Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer
          Cette année, le JoomlaDay FR a lieu à Bruxelles, les 20 et 21 mai 2022, plus d'infos et inscriptions : www.joomladay.fr

          Commentaire


          • #6
            C'est pour ça que je fais un UP, avec ma question, et, pour notifier au rédacteur, si il a le temps et l'envie, de mettre à jour son commentaire.
            Le message est encore ouvert et on le trouve dans les recherches Google, ça peut être intéressant d'y trouver des informations fonctionnelles, même si elles peuvent se trouver ailleurs.

            Commentaire


            • #7
              ok, je comprends maintenant ta démarche mais dans ce cas, envoie lui un MP pour ta suggestion

              Moi je répondais juste a ton interrogation
              "Est-ce moi qui ai oublié de les renseigner dans mon interface ?"
              Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer
              Cette année, le JoomlaDay FR a lieu à Bruxelles, les 20 et 21 mai 2022, plus d'infos et inscriptions : www.joomladay.fr

              Commentaire


              • #8
                Pour récupérer la langue active utilise ce code la => JFactory::getLanguage()->getTag()
                Plus c'est simple pour l'utilisateur, et plus c'est complexe pour le développeur, et vice versa

                Commentaire

                Annonce

                Réduire
                Aucune annonce pour le moment.

                Partenaire de l'association

                Réduire

                Hébergeur Web PlanetHoster
                Travaille ...
                X