Archives FluxBB.fr

Les archives de FluxBB.fr

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

#1 24-09-2006 17:54:54

justme
Membre

Ajoutés champs dans Users

Bonjour tout le monde !

J'étais jusqu'à présent utilisateur de Phpbb mais j'ai envie de recommencer à 0 et donc utiliser Punbb !

Le problème :

Mon site est un "fansite" et je voudrai donc y ajouter une Fanliste (exemple ici) mais j'aimerai que l'utilisateur ai juste à remplir son profile Punbb pour uploader une photo ainsi que répondre à la question : "Quelle est ta chanson préférée' et choisir si il veut figurer dans cette fanliste. J'ai vu le fichier profil.php et il a l'air assez compliqué (enfin surtout assez gros).

Pensez vous que ce que je dis est possible ? (je pense que oui mais j'aimerai une confirmation de codeurs plus qualifiés)

Merci d'avance et merci pour votre site, il est très interessant.


Julien.

Hors ligne

#2 24-09-2006 18:43:53

Lyconide
Membre

Re : Ajoutés champs dans Users

Oui oui, c'est tout à fait possible. La mod Age permet d'ajouter dans le profil un champ pour indiquer la date de naissance.

Il suffit de t'en inspirer un peu pour faire ce que tu veux.

Hors ligne

#3 24-09-2006 18:49:35

justme
Membre

Re : Ajoutés champs dans Users

Merci beaucoup, je vais en effet prendre exemple sur celui là.
Sinon est-il possible de mettre tous les champs comme signature ect dès la première inscription ? Ca insite plus à remplir que de modifier le profile je trouve.

Si mon script marche j'essaierai de faire un mini-tuto, peut être que ça pourra être utilise pas 1 ou 2 personnes.

Hors ligne

#4 24-09-2006 21:45:50

justme
Membre

Re : Ajoutés champs dans Users

Ca s'annonce super chaud, il est vraiment trop gros ce profile.php ...

Hors ligne

#5 24-09-2006 22:04:25

Lyconide
Membre

Re : Ajoutés champs dans Users

justme a écrit :

Ca s'annonce super chaud, il est vraiment trop gros ce profile.php ...

Si tu analyses bien le fichier, tu pourras identifier assez facilement certaines parties.
Et y'a aussi certains commentaires qui peuvent t'aider.

Genre ligne 906 : "// View or edit?" qui indique ce qui suit
(le premier if, l'affichage... le else qui va avec sert à l'édition du profile par un membre/admin)

Et juste avant ca, ligne 636, tu as : "else if (isset($_POST['form_sent']))"
Tout ce qui se trouve dans ce if servira à sauvegarder les options indiqués par le membre...

Avec la mod Age, si tu l'analyses bien, tu dois pouvoir retrouver ca aussi je pense tongue
Explication vite fait, donc j'sais pas si ca va bien t'aider roll

Hors ligne

#6 24-09-2006 22:22:28

justme
Membre

Re : Ajoutés champs dans Users

Mouais happy.

Je pense que ça va surtout prendre pas mal plus de temps que prévu, je pensais que ça serait vraiment la première partie du codage mais là punbb ils assurent pas tongue (ne me bannissez pas svp car je l'utilise tout de même (a)).

Car je n'ai pas envie de faire comme sur mes précédents site et proposé au visiteur de créer un autre formulaire ou il aura un autre identifiant et un autre mot de passe, je préfère vraiment tout faire avec punbb...

Hors ligne

#7 25-09-2006 00:47:03

Lyconide
Membre

Re : Ajoutés champs dans Users

Je viens de faire un truc en gros, à toi de modifier en fonction de ce que tu veux... j'ai essayé de mettre des explications, ca pourra peut être aider. Mais la, c'est presque que du copier/coller de ce qui est déjà dans le fichier profile.php

Il faut déjà modifier la base de donnée, en ajoutant ce que tu veux... bon, je me suis pas pris la tête, j'ai mis des chaines de caractères de 255 pour la chanson, et pour la photo (pour ce dernier, ca implique des liens externes pour les photos... ce qui n'est pas forcément le top, mais à toi de voir tongue)

#
#---------[ 1. EXECUTEZ ]---------------------------------------------------
#
alter table punbb_users add(photo varchar(255), song varchar(255), appear_list tinyint(1));

Dans profile.php

Cette partie concerne la sauvegarde dans la base de donnée, il suffit d'indiquer la section dans laquelle on se trouve (case 'fanlist': ), et d'indiquer ce que l'on veut faire avec les informations récupéré dans le formulaire.
Dans notre cas, y'a pas grand chose à faire, sinon récupérer toutes les infos du formulaire. Le nom photo indique qu'on va mettre à jour le champ photo de la table... donc, il est important de ne pas mettre n'importe quoi (idem pour song, et appear_list)

#
#---------[ 2. TROUVEZ ]---------------------------------------------------
#
        case 'messaging':

Ajouter :

#
#---------[ 3. AVANT, AJOUTEZ ]---------------------------------------------------
#
        case 'fanlist':
        {
            $form = extract_elements(array('photo', 'song', 'appear_list'));
            break;
        }

Cette partie permet la récupération, et l'affichage des données dans le formulaire du profile

#
#---------[ 4. TROUVEZ ]---------------------------------------------------
#
u.registration_ip, u.admin_note,
#
#---------[ 5. APRES, AJOUTEZ ]---------------------------------------------------
#
u.photo, u.song, u.appear_list,

Affichage du formulaire, pour la section fanlist.
On affiche les infos de la bdd ($user[champs_bd]) dans le formulaire, sinon c'est un formulaire classique
Il ne faut pas oublier que le nom que l'on donne aux parties du formulaire , c'est en fait les champs de la bdd que l'on veut mettre à jour (ex : name="form[song]" va mettre à jour le champ song)

#
#---------[ 6. TROUVEZ ]---------------------------------------------------
#
else if ($section == 'personal')
#
#---------[ 7. AVANT, AJOUTEZ ]---------------------------------------------------
#
else if ($section == 'fanlist')
    {

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

        generate_profile_menu('fanlist');

?>
    <div class="blockform">
        <h2><span><?php echo pun_htmlspecialchars($user['username']).' - fanlist'; ?></span></h2>
        <div class="box">
            <form id="profile2" method="post" action="profile.php?section=fanlist&id=<?php echo $id ?>">
                <div class="inform">
                    <fieldset>
                        <legend>Informations fanlist</legend>
                        <div class="infldset">
                            <input type="hidden" name="form_sent" value="1" />
                            <label>Photo<br /><input type="text" name="form[photo]" value="<?php echo pun_htmlspecialchars($user['photo']) ?>" size="50"     maxlength="80" /><br /></label>
                            <label>Chanson préfèrée<br /><input type="text" name="form[song]" value="<?php echo pun_htmlspecialchars($user['song']) ?>" size="50" maxlength="80" /><br /></label>
                            <label><input type="checkbox" name="form[appear_list]" value="1"<?php if ($user['appear_list'] == '1') echo ' checked="checked"' ?> />Apparître dans la liste<br /></label>
                        </div>
                    </fieldset>
                </div>
                <p><input type="submit" name="update" value="<?php echo $lang_common['Submit'] ?>" /><?php echo $lang_profile['Instructions'] ?></p>
            </form>
        </div>
    </div>
<?php

    }

Dans functions.php :
Cette partie permet d'ajouter le lien fanlist dans le menu du profile wink

#
#---------[ 8. TROUVEZ ]---------------------------------------------------
#
                    <li<?php if ($page == 'privacy') echo ' class="isactive"'; ?>><a href="profile.php?section=privacy&id=<?php echo $id ?>"><?php echo $lang_profile['Section privacy'] ?></a></li>
#
#---------[ 9. APRES, AJOUTEZ ]---------------------------------------------------
#
                    <li<?php if ($page == 'fanlist') echo ' class="isactive"'; ?>><a href="profile.php?section=fanlist&id=<?php echo $id ?>">fanlist</a></li>

Pour la photo, si tu veux que tes membres les upload, le mieux c'est peut être de reprendre ce qui a déjà été fait avec l'avatar. C'est encore beaucoup de copier/coller appriori.
De plus, j'ai pas pris le temps d'utiliser les tableaux de langues (pas difficile non plus), j'ai mis tout tel quel dans les modifications
J'aurais peut être pu expliquer mieux que ca, bref si y'a des soucis, ne pas hésitez à me le dire... mais normalement ca devrait fonctionner

Punbb est pas compliqué, ce qui peut dérouté par rapport à un phpbb, c'est que le code et l'affichage ne sont pas mis dans des fichiers différents (par l'intermédiaire d'un système de template), donc ca peut "paraitre fouilli" tongue

Hors ligne

#8 25-09-2006 03:56:09

Keulig
Membre

Re : Ajoutés champs dans Users

Je l'ai fait sur mon fansite mais essaie de te pencher sérieusement dans le code et tu verras que ce n'est pas si compliqué.

Hors ligne

#9 25-09-2006 12:47:33

justme
Membre

Re : Ajoutés champs dans Users

Alors là le code parraît tout simplement parfait. Je n'ai pas accès à tout ce dont j'ai besoin ici mais dès que je rentre ce soir je mets ça en oeuvre. Vraiment merci pour les explications et tout car là j'ai vraiment tout compris et je pense que je peux faire quelque chose de génial avec !

Merci !

(Sinon je trouve ça assez sympas que 3 fansites de groupes de styles assez éloignés puissent s'aider mutuellement, Placebo : Rock, Billy Talent : Punk et Helene Segara : Chanson française)

Hors ligne

#10 26-09-2006 17:50:30

justme
Membre

Re : Ajoutés champs dans Users

Il y a un problème au niveau des cases à cocher, lorsque je les décoche et que je fais donc envoyer et bien cela ne change rien.

J'ai pourtant rajouté en plus cette ligne de code :

case 'fanlist':
        {
            $form = extract_elements(array('appear_list', 'appear_email'));

            if (!isset($form['appear_list']) || $form['appear_list'] != '1') $form['appear_list'] = '0';
            if (!isset($form['appear_email']) || $form['appear_email'] != '1') $form['appear_email'] = '0';
            
                        break;
        }

(environs l.818)

Tout marche mis à part cette partie...

Si vous avez une idée merci d'avance.

Hors ligne

#11 27-09-2006 14:20:22

justme
Membre

Re : Ajoutés champs dans Users

C'est plus un problème de code que quelque chose de directement lié à Punbb mais vous êtes les seuls codeurs php/mysql sur je connaisse..

Désolé de vous déranger.

Hors ligne

#12 28-09-2006 17:10:19

Lyconide
Membre

Re : Ajoutés champs dans Users

justme a écrit :

C'est plus un problème de code que quelque chose de directement lié à Punbb mais vous êtes les seuls codeurs php/mysql sur je connaisse..

Désolé de vous déranger.

Bizarre que ca fonctionne pas, je viens d'essayer. J'ai  ajouter ca :

if (!isset($form['appear_list']) || $form['appear_list'] != '1') $form['appear_list'] = '0';

dans le case 'fanlist': (en plus de tout ce que j'avais donné avant)
Et pas de soucis, ca fonctionne

Dernière modification par Lyconide (28-09-2006 17:10:32)

Hors ligne

#13 28-09-2006 18:09:04

justme
Membre

Re : Ajoutés champs dans Users

En effet ça marche lorsqu'on le met dans Case.

Merci smile.

Hors ligne

#14 20-11-2006 23:26:42

justme
Membre

Re : Ajoutés champs dans Users

J'essai de bosser sur la création de miniatures pour ce script, si des personnes sont motivés pour bosser dessus, elles sont les bienvenues smile.

Hors ligne

#15 21-11-2006 23:09:33

justme
Membre

Re : Ajoutés champs dans Users

Petite question, est-ce que à partir du moment où, toujours dans profile.php, lorsque l'un utilise

<form id="fanlist" method="post" action="profile.php?action=fanlist&id=<?php echo $id ?>" id="fanlist" onsubmit="return process_form(this)">

Seulement ce que je mets dans

if ($action == 'fanlist')
{ mon code avec des posts etc

est effectué ? Où il y a ça en plus de ce qu'il aurait fait normalement (ajout avec les "u.photo, u.song, u.appear_list,") ?

Merci, c'est toujours pour la création de miniatures pour bien inclure ma fonction.

Hors ligne

#16 16-03-2008 16:12:56

cypher
Membre

Re : Ajoutés champs dans Users

Bonjour

Juste, ce code est valable pour un champs avec des nombre, non?

J'aimerais ajouter un champs textuel obligatoire.

Comment faire?

Merci d'avance smile

Hors ligne

Pied de page des forums