[phpBB 3.0.x] Afficher/Masquer des champs de profil personnalisés

Toutes les documentations phpBB seront ici.
Verrouillé
Avatar du membre
Dakin Quelia
Webmaster
Webmaster
Messages : 563
Enregistré le : ven. 27 nov. 2009 05:47
Localisation : Belgique
Contact :

[phpBB 3.0.x] Afficher/Masquer des champs de profil personnalisés

Message par Dakin Quelia »

» Afficher/Masquer des champs de profil personnalisés
Auteur: Dakin Quelia

Nous allons vous expliquer les étapes qui consistent à permettre à vos utilisateurs d'afficher/masquer les champs de profil personnalisés. Ceci peut être utile, par exemple, si on veut cacher la publicité Google.
  1. Création du champ de profil
  2. Chercher le champ (phpMyAdmin)
  3. Modifications de fichiers
  4. Exemple concret
Remerciements spéciaux à PPCW2 qui a donné la mini-astuce sur phpBB.com.

Avatar du membre
Dakin Quelia
Webmaster
Webmaster
Messages : 563
Enregistré le : ven. 27 nov. 2009 05:47
Localisation : Belgique
Contact :

Création du champ de profil

Message par Dakin Quelia »

» Création du champ de profil

Tout d'abord, rendez-vous dans le panneau d'administration dans l'onglet « Utilisateurs et groupes ». Une fois sur la page, dans le menu à votre gauche, cliquez sur « Champs de profil personnalisés ».

Maintenant que nous avons notre page devant nous, il faut ajouter un champ de profil de n'importe quel type (champ texte, zone texte, liste, etc...). Pour ce faire, cliquez sur le bouton « Créer un nouveau champ ». Désormais, vous voici sur l'écran où l'on va créer le champ de profil.
Image
Cliquez sur la miniature
Il faut choisir le type « Booléen (oui/non) ».

Il est important que le nom du champ « Identification du champ » ne contienne pas de caractères accentués ni d'espaces blancs. A cela, on peut ajouter qu'il faut que le nom soit clair. Exemple: phpbb.

Il faut que vous cochiez « Oui » à « Afficher dans le panneau de l’utilisateur ». Ceci est une étape importante puisqu'il faut permettre à l'utilisateur de choisir.

Vous pouvez décrire ou non le champ que vous êtes en train de créer. Ce n'est pas obligatoirement pour notre documentation mais vivement conseillé afin que l'utilisateur sache à quoi sert le champ.

Enfin, définissez vos entrées. Par exemple: [Activer/Désactiver], [Oui/Non] etc...

Une fois cette étape finie, il ne reste plus qu'à valider notre nouveau champ et passer à l'étape suivante.

Avatar du membre
Dakin Quelia
Webmaster
Webmaster
Messages : 563
Enregistré le : ven. 27 nov. 2009 05:47
Localisation : Belgique
Contact :

Chercher le champ (phpMyAdmin)

Message par Dakin Quelia »

» Chercher le champ (phpMyAdmin)

Ici, il faut que nous puissions connaître le nom exact du champ dans la base de données. Pour cela, nous allons procéder comme suit.

Tout d'abord, il faut se connecter à phpMyAdmin.

Ensuite, nous allons nous rendre dans la table adéquate, à savoir: « phpbb_profile_fields_data ». Veuillez noter que le préfixe peut être différent si vous l'aviez renommé en installant votre forum phpBB.
Image
Cliquez sur la miniature

Important

Notez qu'il n'y a que peu de champs et peu d'utilisateur puisque c'est un test sur un forum local. Vous pouvez remarquer que les champs commencent par « pf_ » qui est le préfixe pour « Profile Field ».

Maintenant que nous savons le(s) nom(s) exacte(s) de nos champs, nous allons modifier les fichiers php et templates.

Avatar du membre
Dakin Quelia
Webmaster
Webmaster
Messages : 563
Enregistré le : ven. 27 nov. 2009 05:47
Localisation : Belgique
Contact :

Modifications de fichiers

Message par Dakin Quelia »

» Modifications de fichiers

Nous allons devoir dans cette étape modifier des fichiers afin de pouvoir afficher/masquer le champ de profil selon le souhait de l'utilisateur.

Ouvrez le fichier « viewtopic.php ».

Cherchez:

Code : Tout sélectionner

// Send vars to template      
Avant, ajoutez:

Code : Tout sélectionner

$sql = 'SELECT *
        FROM ' . PROFILE_FIELDS_DATA_TABLE . '
        WHERE user_id = ' . (int) $user->data['user_id'];
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);            
Cherchez:

Code : Tout sélectionner

// Send vars to template
$template->assign_vars(array(      
Après, ajoutez:

Code : Tout sélectionner

'S_NOMDUCHAMP'     => ($row['pf_nomduchamp'] ==1) ? true : false,         
Côté template, vous devez avoir ceci:

Code : Tout sélectionner

<!-- IF S_NOMDUCHAMP -->
    Code du champ...
<!-- ENDIF -->

Avatar du membre
Dakin Quelia
Webmaster
Webmaster
Messages : 563
Enregistré le : ven. 27 nov. 2009 05:47
Localisation : Belgique
Contact :

Exemple concret

Message par Dakin Quelia »

» Exemple concret

1. Créer le champ de profil « google ».
2. Modifier le fichier « viewtopic.php » et « viewtopic_body.html ».

Ouvrez le fichier « index.php ».

Cherchez:

Code : Tout sélectionner

// Assign index specific vars       
Avant, ajoutez:

Code : Tout sélectionner

$sql = 'SELECT *
        FROM ' . PROFILE_FIELDS_DATA_TABLE . '
        WHERE user_id = ' . (int) $user->data['user_id'];
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);                
Cherchez:

Code : Tout sélectionner

// Assign index specific vars
$template->assign_vars(array(          
Après, ajoutez:

Code : Tout sélectionner

'S_GOOGLE'     => ($row['pf_google'] ==1) ? true : false,             
Ouvrez le fichier « styles/{VOTRE_THEME}/template/index_body.html ».

Ajoutez ce code où vous souhaitez.

Code : Tout sélectionner

<!-- IF S_GOOGLE -->
    Le code Google Adsens ou AdWords
<!-- ENDIF -->
Ainsi, vos membres peuvent afficher ou non vos publicités, par exemple. Cela peut être utile dans le cadre d'un groupe « VIP » mais pour cela, il faudrait coupler l'utilisation du champ « google » au mod Custom Profile Groups. Au final, seuls les membres dudit groupe « VIP » pourront activer/désactiver les publicités Google.

Verrouillé

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité