Archives FluxBB.fr

Les archives de FluxBB.fr

Recherche rapide

Vous n'êtes pas identifié(e).

Version 1.4.13 : [.tar.gz][.zip] (maj 20/10/2014)
Pack langue française pour 1.4.x : [.zip] (maj 06/01/2012)

Branche 1.5.x : fluxbb.org

Version 1.2.24 fr (entièrement en français) : [.zip] (maj 26/08/2011)
Pack langue française pour 1.2.x : [.zip] [.rar] (maj 15/10/2006)

Vous avez un problème ?
Avant de poser votre question sur les forums d'entraide nous vous invitons à consulter :

#1 05-10-2009 19:42:52

Sudemax
Membre

Ajout de 2 champs

Bonsoir,

J'ai effectué une recherche, j'ai trouvé des sujets traitant de cela mais j'y ai franchement rien compris.

Pour faire simple je veux ajouter les champs Gamertag et IdPsn sur mon forum. Cela servira pour un classement.

Si vous pouviez me dire la marche à suivre ce sera super smile

D'avance merci.

Hors ligne

#2 05-10-2009 19:52:05

fanf73
Wik-wiki

Re : Ajout de 2 champs

La marche à suivre est assez simple :
- Créer le(s) champ(s) dans la table "users" qui contiendra l'information
- Modifier l'une des pages du profil pour que les membres puissent renseigner l'information (profile.php)
- Modification du traitement de ce formulaire pour enregistrer l'information (profile.ph)
- Voir après si tu affiches l'information dans les topics et dans le profil du membre (viewtopic.php et profile.php)
- Modification du fichier registrer.php si tu veux que l'on puisse renseigner l'information dès l'inscription.

Le plus simple est de regarder comment une mod fonctionne et s'en inspirer / la modifier (par exemple celle-ci http://www.punbb.fr/forums/viewtopic.php?id=9599 )


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#3 05-10-2009 20:02:13

Sudemax
Membre

Re : Ajout de 2 champs

Merci pour la réponse rapide, donc déjà premier point, premier problème ...
Comment je fais pour créer les champs dans la table ? Je suppose que c'est en passant par Phpmyadmin mais après ? ...

Hors ligne

#4 05-10-2009 20:12:58

fanf73
Wik-wiki

Re : Ajout de 2 champs

Tu cliques à gauche sur le nom de ta table (users), puis sur l'onglet "Structure". A la fin du tableau avec la structure se trouve un formulaire sur lequel tu spécifies "2" champs, puis exécuter.

Tu rentres le nom du champ dans la colonne champ, le type de champ dans type (varchar pour des caractères, int pour des chiffres), la longueur (nombre de caractère maximum pour varchar, 11 pour des chiffres), et la valeur par défaut dans défaut, puis sauvegarder.

Ou alors tu te créer un fichier "install_mod.php" qui le fait "tout seul" en t'inspirant d'un existant, par exemple cité dans mon précédent message.


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#5 05-10-2009 20:17:36

oldie-2
Habitué très actif

Re : Ajout de 2 champs

Tu peux essayer cette mod : Easy Profile fields

Hors ligne

#6 05-10-2009 20:18:57

Sudemax
Membre

Re : Ajout de 2 champs

Oui j'ai fait comme ça (2e solution) par contre je ne savais pas c'était quoi le chiffre après varchar donc j'ai laisser (10) mais bon je vois que j'aurais pas du je dois pouvoir modifié ça dans le phpmyadmin ...

Edit: Voila modifié, première étape franchise, merci à toi wink
Edit 2: Merci oldie-2 mais la j'avance pas mal happy ce sera en dernier recours je pense ...

Dernière modification par Sudemax (05-10-2009 20:21:37)

Hors ligne

#7 05-10-2009 20:26:33

oldie-2
Habitué très actif

Re : Ajout de 2 champs

Pourtant tu n'es qu'à la première étape alors que cette mod fera tout pour toi ... mais si tu préfères réinventer la brouette, libre à toi wink

Hors ligne

#8 05-10-2009 20:58:16

Sudemax
Membre

Re : Ajout de 2 champs

Ouai je vais testé car j'ai rien réussi du tout xo

Hors ligne

#9 05-10-2009 23:45:29

teopath
Habitué actif

Re : Ajout de 2 champs

J'ai rajouté des champ dans mon forum, là je vais rejoindre ma couette, mais demain je t'expliquerai

Hors ligne

#10 06-10-2009 12:52:28

teopath
Habitué actif

Re : Ajout de 2 champs

Pour les champs, avec PhpMyAdmin, pour le chiffre derrière varchar, tu mets la longueur que tu souhaite pour le champ.

A moins que tu ne mettes un chiffre et alors tu mets INT avec le nombre de chiffres souhaités ou tinyint pour mettre un flag.

Si tu veux que un champ text soit par défaut vide, tu sélection "NULL" pour rester dans l'esprit de punbb et sinon tu mets la valeur par defaut dans Défaut.

Quant tu as fait çà, on passe au code PHP

Hors ligne

#11 06-10-2009 13:02:25

fanf73
Wik-wiki

Re : Ajout de 2 champs

C'est pas comme si je n'avais pas détaillé juste au-dessus, Sudemax, je me demande pourquoi je prends la peine de le faire roll


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#12 06-10-2009 13:15:28

teopath
Habitué actif

Re : Ajout de 2 champs

Ensuite dans profile.php, (çà peut être fait dans d'autre page), mais puisque là c'est personalisé pour chaque membre, pourquoi se géner.

Il y a 3 phases :

Récupération des données du formulaire

Sauvegarde des données sur la base

Affichage du formulaire.

Pour ma part, j'ai ajouté les champs SIREN et ADELI, j'espère que tu sauras adapter à tes besoins.

Vers la ligne 750

derrière :

        case 'personal':
        {

ajouter dans la ligne les champs rajoutés :

            $form = extract_elements(array('realname', 'url', 'location', 'siren', 'adeli'));

vers la ligne 960

tu modifie $result en y ajoutant tes champs précédés de "u." (point de concaténation), çà donne :

$result = $db->query('SELECT u.username, u.email, u.title, u.realname, u.siren, u.adeli, u.url, u.jabber, u.icq, u.msn, u.aim, u.yahoo, u.location, u.use_avatar, u.signature, u.disp_topics, u.disp_posts, u.email_setting, u.save_pass, u.notify_with_post, u.show_smilies, u.show_img, u.show_img_sig, u.show_avatars, u.show_sig, u.timezone, u.language, u.style, u.num_posts, u.last_post, u.registered, u.registration_ip, u.admin_note, g.g_id, g.g_user_title FROM '.$db->prefix.'users AS u LEFT JOIN '.$db->prefix.'groups AS g ON g.g_id=u.group_id WHERE u.id='.$id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());

Entre ces 2 lignes, si tu as un traitement des données saisie, tu peux le rajouter en php.

Hors ligne

#13 06-10-2009 13:30:26

teopath
Habitué actif

Re : Ajout de 2 champs

Reste le formulaire, c'est je pense la partie la plus hardue, car si faire un formulaire c'est tout simple, dans le cas présent il faut savoir à qui ces informations sont visibles.

Au membre, aux modérateurs, à l'admin, à tous ?

Pour ma part je l'ai rendu visible au membre uniquement

Je l'ai mis dans la section personal, je te donne tous le code, à toi de modifier

    else if ($section == 'personal')
    {
        if ($pun_user['g_set_title'] == '1')
            $title_field = '<label>'.$lang_common['Title'].'  (<em>'.$lang_profile['Leave blank'].'</em>)<br /><input type="text" name="title" value="'.pun_htmlspecialchars($user['title']).'" size="30" maxlength="50" /><br /></label>'."\n";

        $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$lang_common['Profile'];
        require PUN_ROOT.'header.php';

        generate_profile_menu('personal');

?>
    <div class="blockform">
        <h2><span><?php echo pun_htmlspecialchars($user['username']).' - '.$lang_profile['Section personal'] ?></span></h2>
        <div class="box">
            <form id="profile2" method="post" action="profile.php?section=personal&id=<?php echo $id ?>">
                <div class="inform">
                    <fieldset>
                        <legend><?php echo $lang_profile['Personal details legend'] ?></legend>
                        <div class="infldset">
                            <input type="hidden" name="form_sent" value="1" />
                            <label><?php echo $lang_profile['Realname'] ?><br /><input type="text" name="form[realname]" value="<?php echo pun_htmlspecialchars($user['realname']) ?>" size="40" maxlength="40" /><br /></label>
<?php if (isset($title_field)): ?>                    <?php echo $title_field ?>
<?php endif; ?>                            <label><?php echo $lang_profile['Location'] ?><br /><input type="text" name="form[location]" value="<?php echo pun_htmlspecialchars($user['location']) ?>" size="30" maxlength="30" /><br /></label>
                            <label><?php echo $lang_profile['Website'] ?><br /><input type="text" name="form[url]" value="<?php echo pun_htmlspecialchars($user['url']) ?>" size="50" maxlength="80" /><br /></label>
                        </div>
                    </fieldset>
                </div>

<?php // ---------------- Début saisie SIREN et ADELI ------------ ?>

<?php if (($pun_user['id'] == $id) && (strlen($user['siren']) == '0') && (strlen($user['adeli']) == '0')): ?>
                <div class="inform">
                    <fieldset>
                        <legend>Si vous êtes un ostéopathe en activité, veuillez saisir votre SIREN (9 chiffres) ainsi que votre numéro ADELI (9 chiffres).</legend>
                        <div class="infldset">
                            <p>En aucune façon, vos SIREN et ADELI n'apparaitront en ligne, la saisie de ceux ci ne servant qu'à écarter les robots, une routine d'évaluation automatique rejetant les numéros fantaisistes.</p>
                            <label><strong>N° SIREN : </strong><input type="text" name="form[siren]" value="<?php echo pun_htmlspecialchars($user['siren']) ?>" size="9" maxlength="9" /></label>
                            <label><strong>N° ADELI : </strong><input type="text" name="form[adeli]" value="<?php echo pun_htmlspecialchars($user['adeli']) ?>" size="9" maxlength="9" /></label>
                        </div>
                    </fieldset>
                </div>
<?php endif; ?>

<?php // ---------------- Fin saisie SIREN et ADELI -------------- ?>

                <p><input type="submit" name="update" value="<?php echo $lang_common['Submit'] ?>" /><?php echo $lang_profile['Instructions'] ?></p>
            </form>
        </div>
    </div>
<?php

    }

Hors ligne

#14 06-10-2009 14:52:40

Sudemax
Membre

Re : Ajout de 2 champs

fanf73 je comprends pas pourquoi tu dis ça c'est pas sur ce que tu m'a détailler que je bloquais et je t'en remercie pour cela.

teopath merci de t'être donné autant de mal pour m'expliquer en détail mais j'ai utilisé la méthode d'oldie-2 (je l'avais signalé plus haut) mais je pense que ça aidera quand même wink

J'ai donc installé le mod d'oldie-2 et la petit souci, les champs s'affiche sur le forum même si on les remplis pas ...

Exemple : Je remplis le champ Gamertag mais pas celui IdPsn be sur le forum ça donne :

Gamertag : Blabla
IdPsn :

C'est pas trop dérangeant mais bon si il y'avait un moyen de rectifié ça ce serais quand même plus propre.

La question est : Y a-t-il un moyen ?

Edit : Le forum en question pour que vous voyez par vous même : http://www.rockbandfan.fr/forum/

Dernière modification par Sudemax (06-10-2009 15:01:46)

Hors ligne

#15 06-10-2009 16:38:44

teopath
Habitué actif

Re : Ajout de 2 champs

C'est parceque tu n'as pas lu mon code, il faut tester la longueur des variables et tu n'affiche que si la longueur est supérieure à zéro

Hors ligne

#16 06-10-2009 19:28:29

oldie-2
Habitué très actif

Re : Ajout de 2 champs

Sudemax a écrit :

J'ai donc installé le mod d'oldie-2 et la petit souci, les champs s'affiche sur le forum même si on les remplis pas ...

Exemple : Je remplis le champ Gamertag mais pas celui IdPsn be sur le forum ça donne :

Gamertag : Blabla
IdPsn :

C'est pas trop dérangeant mais bon si il y'avait un moyen de rectifié ça ce serais quand même plus propre.

La question est : Y a-t-il un moyen ?

Tu vas dans viewtopic.php et tu recherches :

echo '<dd><strong>'.$ef_name.':</strong> '.$ef_row['value'].'</dd>';

et juste au dessus, tu rajoutes cette ligne :

if (isset($ef_row['value']) && strlen($ef_row['value']) >0)

Hors ligne

#17 06-10-2009 20:24:04

Sudemax
Membre

Re : Ajout de 2 champs

Parfait, merci à tous wink

Hors ligne

#18 27-01-2010 00:55:19

agony
Membre

Re : Ajout de 2 champs

Merci ! Je viens d'ajouter des champs également !
C'est parfait. Je n'ai pas compris par contre à quoi sert le champ de langue lorsque l'on créé un nouveau champ.

J'aurai aimé passer en gras les intitulés d'origines: pour les ajouts, nous avons par ex :
ville: Tagadaland
Date d'inscription: 54 avant JC
passion: la couture
couleurs des yeux: mauve

Je vois que ça se passe dans le viewtopic.php à cette ligne :
<?php if (count($user_info)) echo "\t\t\t\t\t".implode('</dd>'."\n\t\t\t\t\t", $user_info).'</dd>'."\n"; ?>

mais je ne sais pas l'interpréter.

Dernière modification par agony (27-01-2010 00:55:49)

Hors ligne

Pied de page des forums