afficher un champs personnalisé d'un utilisteur dans le info_block d'un article

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

  • [RÉGLÉ] afficher un champs personnalisé d'un utilisteur dans le info_block d'un article

    Bonjour, je souhaite afficher dans les informations " info_block" un champs personnalisé de l'auteur d'un article. Pour cela j'ai créé une substitution de author.php. De la je récupère les informations classique auteur date....
    Pour chaque utilisateur j'ai renseigné 3 champs personnalisés Pseudo, Date de naissance, et adresse
    Je souhaite afficher ces champs personnalisés de l' auteur

    voici mon code :
    Code PHP:
    $user =& JFactory::getUser($authorId);
    $jcFields FieldsHelper::getFields('com_users.user'$usertrue); 
    j'ai fait un print_r
    Code PHP:
    print_r($jcFields); 
    ce qui m'affiche un tableau :
    Code PHP:
    Array ( [0] => stdClass Object ( [id] => 16 [title] => Pseudo [name] => pseudo [checked_out] => 746 [checked_out_time] => 2019-01-21 12:43:56 [note] => [state] => [access] => [created_time] => 2019-01-21 10:31:08 [created_user_id] => 746 [ordering] => [language] => * [fieldparams] => Joomla\Registry\Registry Object ( [datarotected] => stdClass Object ( [filter] => [maxlength] => 50 ) [initializedrotected] => [separator] => . ) [params] => Joomla\Registry\Registry Object ( [datarotected] => stdClass Object ( [hint] => [class] => [label_class] => [show_on] => [render_class] => [showlabel] => [label_render_class] => [display] => [layout] => [display_readonly] => ) [initializedrotected] => [separator] => . ) [type] => text [default_value] => [context] => com_users.user [group_id] => [label] => Pseudo [description] => [required] => [language_title] => [language_image] => [editor] => Laurent [access_level] => Accès public [author_name] => Laurent [group_title] =>Informations complémentaires [group_access] => [group_state] => [group_note] => [value] => Marcq2019-testttt [rawvalue] => Marcq2019-testttt )[1] => stdClass Object ( [id] => 11 [title] => Adresse [name] => adresse [checked_out] => [checked_out_time] => 0000-00-00 00:00:00 [note] => [state] => [access] => [created_time] => 2018-09-25 11:53:13 [created_user_id] => 746 [ordering] => [language] => * [fieldparams] => Joomla\Registry\Registry Object ( [datarotected] => stdClass Object ( [rows] => [cols] => 50 [maxlength] => [filter] => ) [initializedrotected] => [separator] => . ) [params] => Joomla\Registry\Registry Object ( [datarotected] => stdClass Object ( [hint] => [render_class] => [class] => [showlabel] => [show_on] => [display] => [display_readonly] => ) [initializedrotected] => [separator] => . ) [type] => textarea [default_value] => [context] => com_users.user [group_id] => [label] => Adresse [description] => [required] => [language_title] => [language_image] => [editor] => [access_level] => Accès public [author_name] => Laurent [group_title] => Informations complémentaires [group_access] => [group_state] => [group_note] => [value] => 62 rue d'angleterre [rawvalue] => 62 rue d'angleterre ) ) 
    Et dans ce tableau je souhaite récupérer le pseudo et l'adresse (champs personnalisés) (en gras)

    j'ai bien essayé avec : $jcFields['name']->adresse mais cela ne me renvoie rien :-(
    Je ne sais pas où je fais l'erreur...
    Merci
    Dernière édition par dubois59 à 22/01/2019, 09h22

  • #2
    En formattant le code de ton message il y a un truc qui saute aux yeux, c'est que l'apostrophe de "62 rue d'Angleterre" met la pagaille.
    Tu aurais mis 62 rue de grande-bretagne tu n'aurais pas eu ce problème.
    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


    • #3
      Envoyé par lesoutier Voir le message
      En formattant le code de ton message il y a un truc qui saute aux yeux, c'est que l'apostrophe de "62 rue d'Angleterre" met la pagaille.
      Tu aurais mis 62 rue de grande-bretagne tu n'aurais pas eu ce problème.
      Merci, mais non ce n'est pas du a cela j'ai changé et enlevé l ' ça ne me renvoie toujours rien...
      ce que je cherche c'est comment réccuperer la valeur des champs personnalisés d'un user ( d'ailleurs on doit pouvoir mettre des ' des les valeurs de champs...puisque c'est une zone de texte)

      Commentaire


      • #4
        Bonjour,

        FieldsHelper::getFields('com_users.user', $user, true); retourne une array.

        Donc, il faut essayer de récupérer les valeurs par un foreach.

        Cela donnera quelque chose comme :
        Code:
        $test = FieldsHelper::getFields('com_users.user', $user, true);
        foreach ($test as $field) {
          $name = $field->name;
          $address = $field->adresse;
        ....
        }
        Pascal
        If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

        Commentaire


        • #5
          Question d'un néophyte : ne peut-on pas récupérer directement la valeur par $jcFields[name] ou $jcFields[x] (où x est le n° de la colonne) ?
          "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
          MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

          Commentaire


          • #6
            Envoyé par RobertG Voir le message
            Question d'un néophyte : ne peut-on pas récupérer directement la valeur par $jcFields[name] ou $jcFields[x] (où x est le n° de la colonne) ?
            On doit effectivement pouvoir utiliser $jcFields[0]->name si on est sûr de n'avoir qu'un seul élément dans la table.

            Si tu regardes dans l'exemple donné, il y a 2 réponses dans l'array : id = 16 et id = 11

            Pascal
            Dernière édition par pmleconte à 21/01/2019, 17h40
            If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

            Commentaire


            • #7
              Effectivement, je n'avais pas vu qu'il y avait deux lignes, ce qui voudrait dire que la récupération des infos de l'utilisateur, auteur de l'article, est incorrecte puisqu'on n'a pas qu'une seule ligne lui correspondant.
              "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
              MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

              Commentaire


              • #8
                Envoyé par pmleconte Voir le message
                Bonjour,

                FieldsHelper::getFields('com_users.user', $user, true); retourne une array.

                Donc, il faut essayer de récupérer les valeurs par un foreach.

                Cela donnera quelque chose comme :
                Code:
                $test = FieldsHelper::getFields('com_users.user', $user, true);
                foreach ($test as $field) {
                $name = $field->name;
                $address = $field->adresse;
                ....
                }
                Pascal
                Merci Pascal, mais cela ne fonctionne pas avec le foreach, par contre j'arrive a récupérer la valeur avec la solution de RobertG
                voici ce que j'ai mis :
                $jcFields = FieldsHelper::getFields('com_users.user', $user, true);
                $nomtest=$jcFields[0]->value;
                et je récupère bien la valeur du champs que je souhaitais

                Merci à vous deux et bonne journée !
                Laurent

                Commentaire

                Annonce

                Réduire
                Aucune annonce pour le moment.

                Partenaire de l'association

                Réduire

                Hébergeur Web PlanetHoster
                Travaille ...
                X