[3.0.x] Utiliser les champs de profil personnalisés Intermédiaire

[3.0.x] Utiliser les champs de profil personnalisés


» Utiliser les champs de profil personnalisés

Ce tutoriel a pour but de vous guider afin de pouvoir afficher les champs de profil personnalisés sur votre forum. Ce tutoriel n'est valable QUE pour les styles basés sur PROSILVER et PROSILVER lui même.

1- Créer un champ de profil personnalisés.
    Commençons tout d'abord par créer un champ de test.
    Allez dans votre panneau d'administration, onglet "Utilisateurs et groupes" et puis sur le menu à gauche, cliquez sur "Champs de profil personnalisés".
    Vous aller avoir cette fenêtre:
Image
    Dans la zone de texte, mettez le nom du champ (nous l'appellerons "test" pour ce tutoriel)
    Puis dans le menu déroulant à coté, nous choisirons "Champ de texte simple".
    Enfin cliquez sur "Créer un nouveau champ"
    Nous arrivons sur la deuxième fenêtre.
Image
    Explication des champs:
    1- Ceci est le type de champ, défini lors de la création et non modifiable.
    2- Nom de votre champ dans la base de données. Ce n'est pas ce qui sera affiché, mais un nom qui défini ce champ de profil personnalisé (essayez d'éviter les accents et autres caractères "exotiques". Donnez lui un nom facile à retenir en rapport avec le champ. Ce nom sera utile plus tard pour afficher le champ dans la liste des membres.
    3- Permet d'afficher ou non, le champ là où il est autorisé.
    4 5 6 7 8- Les textes d'explications sont assez simples à comprendre, inutile de les répéter.
    9- Le titre du champ affiché à l'utilisateur (à la différence du nom du champ qui lui est une information interne pour identifier votre champ dans la base de données).
    10- La description du champ.
    11- La valeur par défaut qui sera affichée.

    Pour notre exemple,nous mettrons OUI pour le point 3 et nous cocherons la case du point 4.

    Puis cliquez sur "Options particulières du type de profil" en bas de page.
Image
    Cette fenêtre permet de définir la longueur du champ, le nombre minimum et maximum de caractères, et les caractères autorisés (tous, alphanumériques, chiffres,...).

    Cliquez maintenant sur "Options particulières de langue"
Image
    Ici nous pouvons définir un nom, une description et une valeur par défaut pour vos autres langues. Ici j'ai de l'anglais donc je peux mettre des valeurs différentes pour la langue anglaise.
    Enfin cliquez sur "Sauvegarder" pour sauvegarder votre champ de profil personnalisé.

    Il va aussi falloir gérer l'affichage de champ de profil.
    Pour cela, toujours dans le panneau d'administration, onglet "général", puis dans le menu gauche cliquez sur "Paramètres de charge".
    Tout en bas de la page, vous pouvez choisir ou sera affiché le ou les champs de profils personnalisés que vous avez créés.
    Le premier permet d'afficher le champ dans la liste des membres (nous y reviendrons plus tard), le deuxième dans le profil général (lorsque l'on clique sur le nom d'un membre) et le dernier dans les pages de sujets.
    Pour les besoins du tutoriel, mettez tout à OUI.
    Vous pourrez désactiver les affichages plus tard.

2- Afficher le champ dans les pages du sujets et dans le profil général.
    Pour cela rendez-vous dans votre panneau d'utilisateur.
    Puis choisissez l'onglet "profil". Vous devriez voir un nouveau champ appelé "test". Si vous avez mis une valeur par défaut, vous verrez aussi le texte en face du nom du champ.
    Mettez la valeur que vous désirez, puis cliquez sur "envoyer" en bas de la page.
    Puis rendez-vous sur un de vos sujets et, sous la date d'inscription, vous devriez voir votre nouveau champ "test" avec en face la valeur que vous venez de mettre.
    Voilà, vous avez un champ de profil personnalisé.
    Pour ne plus montrer ce champ, il suffit de mettre NON en face de "Autoriser les styles à afficher les champs personnalisés dans la liste des membres" depuis le panneau d'administration, onglet "Général", "Paramètres de charge".

    Si vous cliquez sur votre nom, vous allez arriver sur la page de votre profil.
    Là aussi vous devriez voir en haut de page, sous le "Groupes d’utilisateurs", votre nouveau champ personnalisé.
    Pour ne plus montrer ce champ, il suffit de mettre NON en face de "Afficher les champs personnalisés dans les profils d’utilisateur" depuis le panneau d'administration, onglet "Général", "Paramètres de charge".

    NB: Tant que vous n'aurez pas validé le profil dans votre panneau utilisateur, onglet profil, le champ n'apparaîtra pas dans les sujets et dans le profil des membres. Il faut obligatoirement valider votre profil pour le mettre à jour.

3- Afficher le champ dans la liste des membres.
    Cette partie là est un peu plus compliquée et demande de modifier le code.

    Tout d'abord nous allons rajouter la clé de langue pour votre champ personnalisé.
    Pour cela il faut:
    ouvrir /language/fr/memberlist.php
    chercher :
    Code: Tout sélectionner
       'SORT_POST_COUNT'   => 'Nombre de messages',

    aprés rajouter :
    Code: Tout sélectionner
       'TEST'	=> 'Mon champ test',


    Remarque : Dans le cas du tutoriel, la clé de langue est "test", donc je l'ai placé dans l'ordre alphabétique, mais dans l'absolu, vous pouvez placez la clé de langue où vous le souhaitez.

    Ensuite enregistrez le fichier en UTF8 SANS BOM.
    Pour ceci utilisez Notepad++ pour ouvrir le fichier, puis sous le menu "format", cliquez sur "convertir UTF8 (sans BOM)" puis sauvegardez.
    Pour information, TOUS les fichiers de langue doivent être encodés dans ce format, et de même pour les fichiers html.

    Ensuite, nous allons modifier l'affichage de la liste des membres (J'ai décidé de placer l'affichage après le nombre de message, mais après à vous de voir si vous voulez le placer ailleurs, il suffira de déplacer les lignes à insérer ci-dessous).
    Pour cela il faut :
    ouvrir /style/{votre_style}/template/memberlist_body.html
    chercher (Attention, il y a deux lignes, le faire sur les deux, vers lignes 60 et 92)
    Code: Tout sélectionner
    <th class="posts"><a href="{U_SORT_POSTS}#memberlist">{L_POSTS}</a></th>

    après ajouter :
    Code: Tout sélectionner
    <th>{L_TEST}</th>

    (Si votre clé de langue est différente et s'appelle toto par exemple, vous mettrez L_TOTO à la place ;) )

    chercher
    Code: Tout sélectionner
    <th class="posts">&nbsp;</th>

    après ajouter :
    Code: Tout sélectionner
    <th>&nbsp;</th>

    puis chercher :
    Code: Tout sélectionner
    <td class="posts"><!-- IF memberrow.POSTS and S_DISPLAY_SEARCH --><a href="{memberrow.U_SEARCH_USER}" title="{L_SEARCH_USER_POSTS}">{memberrow.POSTS}</a><!-- ELSE -->{memberrow.POSTS}<!-- ENDIF --></td>

    et après ajouter :
    Code: Tout sélectionner
    <td><!-- IF memberrow.PROFILE_TEST_VALUE -->{memberrow.PROFILE_TEST_VALUE}<!-- ELSE -->&nbsp;<!-- ENDIF --></td>


    Notez bien que les noms des champs personnalisés sont en MAJUSCULES et sont identiques au nom que vous avez donné au champ lors de sa création. (voir explication du point 2 à la deuxième image au dessus). Vous savez maintenant pourquoi il vaut mieux utiliser des identifications de champ simple ;)
    Si par exemple votre champ personnalisé s'appelle toto il faudra mettre :
    Code: Tout sélectionner
    <td class="posts"><!-- IF memberrow.PROFILE_TOTO_VALUE -->{memberrow.PROFILE_TOTO_VALUE}<!-- ELSE -->&nbsp;<!-- ENDIF --></td>


    Puis sous votre panneau d'administration, onglet "Général", cliquez sur "Exécuter maintenant" en face de "vider le cache".
    Puis il vous suffit de cliquer sur "Membres" en haut de votre forum pour voir la nouvelle colonne apparaitre avec les champs personnalisés.

4- Aller plus loin dans l'affichage des champs personnalisés
Maintenant que nous avons vu comment afficher tout cela, il peut y avoir quelques améliorations à faire suivant vos goûts.

    A- Centrer le champ personnalisé dans la liste des membres
    Pour cela nous allons créer une classe particulière que nous appellerons champ et que nous mettrons sur le champ personnalisé.
    Ouvrir /style/{votre_style}/theme/common.css
    chercher (environ ligne 399)
    Code: Tout sélectionner
    table.table1 .info		{ text-align: left; width: 30%; }

    aprés ajouter :
    Code: Tout sélectionner
    table.table1 .champ { text-align: center; }


    Puis ouvrir /style/{votre_style}/template/memberlist_body.html
    chercher :
    Code: Tout sélectionner
    <td><!-- IF memberrow.PROFILE_TEST_VALUE -->{memberrow.PROFILE_TEST_VALUE}<!-- ELSE -->&nbsp;<!-- ENDIF --></td>

    remplacer par :
    Code: Tout sélectionner
    <td class="champ"><!-- IF memberrow.PROFILE_TEST_VALUE -->{memberrow.PROFILE_TEST_VALUE}<!-- ELSE -->&nbsp;<!-- ENDIF --></td>


    Une fois cela fait, allez sous le panneau d'administration, onglet style, puis cliquez sur thème dans le menu de gauche, et "rafraîchir" en face du nom de votre style.
    Puis cliquez sur l'onglet "Général", et cliquez sur "Exécuter maintenant" en face de "Vider le cache".
    Voilà maintenant votre champ est centré dans votre liste de membre.

    B- Déplacer le champ personnalisé dans le profil général du membre
    Comme nous l'avons vu au point 2, le champ personnalisé apparait sous le groupe, en haut de la page de profil.
    C'est une bonne chose, mais il est possible que vous le préfériez sous le bloc (site internet, MP, ...).
    Cela se passe en deux temps:
    Premièrement on désactive l'affichage du champ personnalisé du haut du profil.
    Pour se faire, ouvrir /style/{votre_style}/template/memberlist_view.html
    chercher :
    Code: Tout sélectionner
    <!-- BEGIN custom_fields --><dt>{custom_fields.PROFILE_FIELD_NAME}:</dt> <dd>{custom_fields.PROFILE_FIELD_VALUE}</dd><!-- END custom_fields -->

    remplacer par :
    Code: Tout sélectionner
    <!-- BEGIN custom_fields --><!-- <dt>{custom_fields.PROFILE_FIELD_NAME}:</dt> <dd>{custom_fields.PROFILE_FIELD_VALUE}</dd> --><!-- END custom_fields -->

    Puis nous allons replacer le champ personnalisé dans le bloc de gauche :
    Toujours dans le même fichier, chercher :
    Code: Tout sélectionner
    <!-- IF U_JABBER and S_JABBER_ENABLED --><dt>{L_JABBER}:</dt> <dd><a href="{U_JABBER}" onclick="popup(this.href, 550, 320); return false;">{L_SEND_JABBER_MESSAGE}</a></dd><!-- ELSEIF USER_JABBER --><dt>{L_JABBER}:</dt> <dd>{USER_JABBER}</dd><!-- ENDIF -->
    

    Après ajouter :
    Code: Tout sélectionner
    <!-- BEGIN custom_fields -->
    			<!-- IF postrow.custom_fields.PROFILE_FIELD_NAME eq "test" --><dt>{postrow.custom_fields.PROFILE_FIELD_NAME}:</dt> <dd>{postrow.custom_fields.PROFILE_FIELD_VALUE}</dd><!-- ENDIF -->
            <!-- END custom_fields -->


    Et bien sûr il faut vider le cache du forum (comme pour toute manipulation sur un fichier html) pour voir apparaitre les modifications. Vous commencez à le savoir maintenant ;)
    Explication: On rajoute un bloc pour tous les champs de profils personnalisé. La structure est la même pour tous les champs que vous voudrez rajouter.
    Si vous avez un deuxième champ toto à rajouter, il faudra mettre juste avant le
    Code: Tout sélectionner
    <!-- END custom_fields -->
    le code suivant :
    Code: Tout sélectionner
    <!-- IF postrow.custom_fields.PROFILE_FIELD_NAME eq "toto" --><dt>{postrow.custom_fields.PROFILE_FIELD_NAME}:</dt> <dd>{postrow.custom_fields.PROFILE_FIELD_VALUE}</dd><!-- ENDIF -->


    NOTEZ BIEN QUE LES MAJUSCULES/MINUSCULES ONT LEUR IMPORTANCE !!!
    Si vous avez appelé votre champ test ne mettez pas TEST.

    Comme nous n'avons plus d'affichage global de vos champs personnalisé, il faudra rajouter ce code pour chacun de vos champ personnalisé, sinon, il n'apparaitront pas. :wink:

    C- Déplacer le champ personnalisé dans le sujet
    Là aussi il est possible de mettre un champ personnalisé ailleurs qu'à la fin de la liste de votre profil.
    Admettons que nous voulions mettre notre champ personnalisé entre "messages" et "inscriptions" dans la liste sous votre avatar. Là aussi cela se passe en deux temps.
    Premièrement on désactive l'affichage global.
    ouvrir /styles/{VOTRE_STYLE}/template/viewtopic_body.html
    chercher :
    Code: Tout sélectionner
    <!-- BEGIN custom_fields -->
    			<dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
    		<!-- END custom_fields -->

    remplacez par :
    Code: Tout sélectionner
    <!-- BEGIN custom_fields -->
    			<!-- <dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd> -->
    		<!-- END custom_fields -->

    puis chercher :
    Code: Tout sélectionner
    <!-- IF postrow.POSTER_POSTS != '' --><dd><strong>{L_POSTS}:</strong> {postrow.POSTER_POSTS}</dd><!-- ENDIF -->

    après rajouter :
    Code: Tout sélectionner
    <!-- IF postrow.S_PROFILE_TEST -->
    			<dd><strong>{postrow.PROFILE_TEST_NAME}:</strong> {postrow.PROFILE_TEST_VALUE}</dd>
    		<!-- ENDIF -->


    ATTENTION: Ici, contrairement au cas précédent, le nom du champ DOIT ÊTRE EN MAJUSCULES et ce même si vous avez donné un nom en minuscules lors de la création du champ.

    Puis videz le cache. Maintenant votre champ est entre "Messages" et "Inscriptions".
    Et là aussi ce bloc est à répéter autant de fois que vous avez de champ de profil personnalisé.

Avatar de l’utilisateur
lolovoisin
Rugbix ³
Rugbix ³
 
Rédigé le: 08 Jan 2009 à 15:58
Articles: 33
Contributeurs:
Noter cet article: 123456 Votants: 1
Mots-clés: Utiliser, les, champs, de, profil, personnalisés, 30x

Retourner vers Utilisation de phpBB


cron