[Evolution] Ajout de l'email dans le profil

flipflipflipflip Member
septembre 2010 modifié dans Discussions générales
Bonjour,

Maintenant que PluXml est multi-utilisateur et multi-niveau je pense qu'il manque une information dans la gestion des profils : l'e-mail. Comment un administrateur ou un rédacteur fait pour contacter les autres membres du site ? Je parle dans le cas d'un site communautaire.

Dans le fichier core/admin/parametre_users.php après ligne 43
<th class="tc4">Mot de passe</th>
Ajouter
<th class="tc4">E-mail</th>
Après ligne 62
plxUtils::printInput($userid.'_password', '', 'password', '11-255');
echo '</td><td>';
Ajouter
plxUtils::printInput($userid.'_email', plxUtils::strCheck($user['email']), 'text', '11-255');
echo '</td><td>';
Remplacer ligne 77
echo '<tr style="display:none" id="tr_'.$userid.'"><td style="width:100%" colspan="8">';
Par
echo '<tr style="display:none" id="tr_'.$userid.'"><td style="width:100%" colspan="9">';
Après ligne 104
plxUtils::printInput($new_userid.'_password', '', 'password', '11-255');
echo '</td><td>'
Ajouter
plxUtils::printInput($new_userid.'_email', '', 'text', '11-255');
echo '</td><td>';
Remplacer ligne 115
<td colspan="8">
Par
<td colspan="9">
Remplacer ligne 121
<td colspan="8" style="text-align:center">
Par
<td colspan="9" style="text-align:center">
Dans core/lib/class.plx.admin.php Après ligne 189
return plxMsg::Error('Mauvaise confirmation ou mot de passe vide');
Ajouter
if(!plxUtils::checkMail($content['email']))
    return plxMsg::Error('Merci de renseigner une adresse e-mail valide');
Après ligne 195[/b]
$this->aUsers[$_SESSION['user']]['infos'] = trim($content['infos']);
Ajouter
$this->aUsers[$_SESSION['user']]['email'] = trim($content['email']);
après ligne 206[/b]
$xml .= "\t\t".'<password><![CDATA['.$user['password'].']]></password>'."\n";
Ajouter
$xml .= "\t\t".'<email><![CDATA['.$user['email'].']]></email>'."\n";
Après ligne 260
'infos' => trim($content[$user_id.'_infos']),
Ajouter
'email' => trim($content[$user_id.'_email']),
Après ligne 270
$xml .= "\t\t".'<password><![CDATA['.$user['password'].']]></password>'."\n";
Ajouter
$xml .= "\t\t".'<email><![CDATA['.$user['email'].']]></email>'."\n";
Dans core/lib/class.plx.motor.php remplacer ligne 450
$number = $values[$iTags['user'][$i*6] ]['attributes']['number'];
$array[$number]['active'] = $values[ $iTags['user'][$i*6] ]['attributes']['active'];
$array[$number]['delete'] = $values[ $iTags['user'][$i*6] ]['attributes']['delete'];
$array[$number]['profil'] = $values[ $iTags['user'][$i*6] ]['attributes']['profil'];
Par
$number = $values[$iTags['user'][$i*7] ]['attributes']['number'];
$array[$number]['active'] = $values[ $iTags['user'][$i*7] ]['attributes']['active'];
$array[$number]['delete'] = $values[ $iTags['user'][$i*7] ]['attributes']['delete'];
$array[$number]['profil'] = $values[ $iTags['user'][$i*7] ]['attributes']['profil'];
Après ligne 457
$array[$number]['infos'] = isset($values[ $iTags['infos'][$i] ])?$values[ $iTags['infos'][$i] ]['value']:'';
Ajouter
$array[$number]['email'] = isset($values[ $iTags['email'][$i] ])?$values[ $iTags['email'][$i] ]['value']:'';
Dans code/admin/profile.php après ligne 32
<?php plxUtils::printInput('name', plxUtils::strCheck($profil['name']), 'text', '20-255') ?>
Ajouter
<p class="field"><label>E-mail :</label></p>
<?php plxUtils::printInput('email', plxUtils::strCheck($profil['email']), 'text', '20-255') ?>

J'ai un string de l'array

Réponses

  • ouf :p va falloir tout tester xD
  • fightsoulfightsoul Member
    septembre 2010 modifié
    Bonjour,
    sans avoir tester tes modifications, je pense que le problème vient du fait que tu n'as pas fait la modification nécessaire à la classe plxMotor sur la méthode getUsers pour récuperer l'email des utilisateurs. Je pense qu'il faut donc rajouter la ligne à la méthode :
    $array[$number]['email'] = isset($values[ $iTags['email'][$i] ])?$values[ $iTags['email'][$i] ]['value']:'';
    
    Voilà, donne moi des nouvelles sur cette modification car je ne l'ai pas testé !
  • flipflipflipflip Member
    septembre 2010 modifié
    Je confirme j'ai pas touché à getUsers... j'étais justement en train de chercher comment elles étaient récupéré les informations utilisateurs.

    Ca récupère bien les informations pour parametre_users.php et profil.php mais j'ai encore deux problèmes :
    - Lorsque je charge la page seul les deux premiers user sont affiché mais il me manque les informations user_id, active, profil, delete et le troisième user ne s'affiche pas dans la liste :
    <?xml version="1.0" encoding="UTF-8"?>
    <document>
            <user number="001" active="1" profil="0" delete="0">
                    <login><![CDATA[admin]]></login>
                    <name><![CDATA[admin]]></name>
                    <infos><![CDATA[]]></infos>
                    <password><![CDATA[f0cf010d0d7ccb139e02572c965cf484]]></password>
                    <email><![CDATA[aaaa]]></email>
            </user>
            <user number="002" active="0" profil="1" delete="0">
                    <login><![CDATA[ae]]></login>
                    <name><![CDATA[ae]]></name>
                    <infos><![CDATA[]]></infos>
                    <password><![CDATA[b6bb43df4525b928a105fb5741bddbea]]></password>
                    <email><![CDATA[azaza]]></email>
            </user>
            <user number="003" active="0" profil="1" delete="0">
                    <login><![CDATA[ae]]></login>
                    <name><![CDATA[ae]]></name>
                    <infos><![CDATA[]]></infos>
                    <password><![CDATA[b6bb43df4525b928a105fb5741bddbea]]></password>
                    <email><![CDATA[azaza]]></email>
            </user>
    </document>
    
    userav.th.png

    L'autre problème est quand j'enregistre mes modifications le user_id, active, profil, delete ne sont plus dans le fichier users.xml et le troisième user disparait :
    <?xml version="1.0" encoding="UTF-8"?>
    <document>
            <user number="001" active="1" profil="0" delete="0">
                    <login><![CDATA[admin]]></login>
                    <name><![CDATA[admin]]></name>
                    <infos><![CDATA[]]></infos>
                    <password><![CDATA[f0cf010d0d7ccb139e02572c965cf484]]></password>
                    <email><![CDATA[aaaa]]></email>
            </user>
            <user number="" active="0" profil="0" delete="0">
                    <login><![CDATA[ae]]></login>
                    <name><![CDATA[ae]]></name>
                    <infos><![CDATA[]]></infos>
                    <password><![CDATA[b6bb43df4525b928a105fb5741bddbea]]></password>
                    <email><![CDATA[azaza]]></email>
            </user>
    </document>
    

    J'ai un string de l'array

  • StéphaneStéphane Member, Former PluXml Project Manager
    Je suis pas sur de mon coup sur ce que je vais te dire, mais dans la fonction getUsers, essaye en remplaçant [$i*6] par [$i*7]

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • flipflipflipflip Member
    septembre 2010 modifié
    Je viens de faire un test avec ta proposition Stéphane et c'est parfait comme ça.
    Je mets à jours mon premier post pour la procédure et je l'ajoute dans le Wiki

    J'ai un string de l'array

  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour flipflip

    Je pense que ta modification va être intégrée en natif dans PluXml car effectivement les arguments que tu avances sur l'utilité de l'adresse email avec le mode multi utilisateur est tout à fait justifiée.

    J'ai regardé ton code (sans le tester), j'aurais pas fait mieux. C'est la bonne façon de faire.

    On rajoutera dans plxShow une fonction artAuthorEmail pour avoir accès à l'adresse email de l'auteur de l'article si on veut l'afficher dans son thème.

    Merci pour ton travail

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • StéphaneStéphane Member, Former PluXml Project Manager
    a verifier peut etre dans parametre_users.php, vu que tu rajoutes une colonne, il faut changer
    <td style="width:100%" colspan="8">
    
    en
    <td style="width:100%" colspan="9">
    
    et aussi
    <td colspan="8"
    
    en
    <td colspan="9"
    

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • StéphaneStéphane Member, Former PluXml Project Manager
    en revanche ça commence a faire beaucoup de colonne et l'affichage un peu brouillon.
    ça serait peut etre mieux d'afficher la partie email dans les options, là où on peut saisir les informations sur l'utilisateur.

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Je plussois l'idée de l'email utilisateur en Natif, et l'idée de l'édition dans les options de profil :)
    Reste a pouvoir modifier tout ceci ainsi que les infos de l'auteur sur les commentaires.
  • on va en arriver à utiliser pluxml comme un CMS avec une section membre, car il ne restera plus grand chose à mettre en place là xD

    mais l'idée me botte bien, d'ailleurs il y a ti_pierre qui doit (je crois) proposer un tuto pour linker fluxBB 1.4 avec pluxml.
  • flipflipflipflip Member
    septembre 2010 modifié
    Stéphane : merci, et merci pour l'aide aussi :) J'ai modifier le post et le wiki pour la colspan. Je pense que mettre l'email avec la partie info n'est pas une bonne idée. A tout les coups les administrateurs peu curieux, presser passerons à côté. Peut être passer sur deux lignes ?
    Reste a pouvoir modifier tout ceci ainsi que les infos de l'auteur sur les commentaires.
    Je n'y avais pas pensé et je vois vraiment pas comment faire puisque dans les fichiers xml des commentaires l'id user n'est pas stocké donc même en faisant une recherche par rapport à l'email on est pas certain de modifier le bon et je vous laisse imaginer la lourdeur de l'opération
    J'ai regardé ton code (sans le tester), j'aurais pas fait mieux. C'est la bonne façon de faire.
    Pour paufiner on peut même ajouter un contrôle sur la validité du format de l'adresse mail dans parametres_users et profil.php

    J'ai un string de l'array

  • StéphaneStéphane Member, Former PluXml Project Manager
    flipflip a écrit:
    Stéphane : merci, et merci pour l'aide aussi :) J'ai modifier le post et le wiki pour la colspan. Je pense que mettre l'email avec la partie info n'est pas une bonne idée. A tout les coups les administrateurs peu curieux, presser passerons à côté. Peut être passer sur deux lignes ?
    Un bon administrateur n'est pas pressé :) C'est son job.
    En plus, il est censé connaitre le fonctionnement de l'outil qu'il utilise. donc il saura où regarder et/ou modifier l'adresse email. (sinon faut vraiment changer d'admin)

    Pour moi ce n'est pas une information vitale au fonctionnement de pluxml, comme le mot de passe, l'activation du compte, qui dans un écran d'administration doivent etres facilement accessible.
    C'est pour cela que je mettrai l'adresse email dans les options. En plus c'est info n'est pas obligatoire (raison de plus pour la mettre dans les options). Je parle pour le fichier parametres_users.php

    Apres pour l'aspect visuel, faut faire des consessions. Je sais qu'on aimerais bien avoir tout sur l'écran en une fois, mais il faut faire des choix pour pas que cela soit trop fouilli.

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • StéphaneStéphane Member, Former PluXml Project Manager
    bon ça sera dispo dans la prochaine version. c'est en place.

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Sur la page profil.php j'ai ajouté un contrôle sur la validité du format de l'adresse mail. Comme sur cette page l'admin n'a pas la main mise sur ce qui est entré par les autres membres je pense que c'est plus sûr.

    J'ai un string de l'array

  • StéphaneStéphane Member, Former PluXml Project Manager
    oui. j'ai mis aussi ce controle

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Bonjour/bonsoir ,

    Pour la verif mail , utilisez vous ,
    - la fonction php 5.2 : filter_var($email, FILTER_VALIDATE_EMAIL) ,
    - une regex ,
    ou un mixe des deux ?

    ( -> filter_var($email, FILTER_VALIDATE_EMAIL) ne teste pas les extension de domaine et dispo depuis php 5.2.0 . Me semble t-il. )

    L'histoire de l'adresse mail est intéressante dans la gestion des utilisateurs , je pense en faire usage et ajouter la possibilité d'envoyer une notification par mail (justement :) ) au(x) nouveaux collaborateur(s) lors de leur inscription par l'administrateur .

    J'imagine un checkbox supplémentaire (mode administrateur uniquement) a coté de "Modifier la liste des utilisateurs" pour notifier par mail ou non(par défaut) la venue d'un nouvel utilisateur ,a l'ensemble des rédacteur , excepté l'admin connecté .

    Pour le tableau qui dépasse ,
    je réduis sa largeur en modifiant : Numero d'utilisateur , par N° utilisateur .
    On peut encore réduire a N° et n'afficher que 001 ,
    voir , totalement éliminer/cacher cette colonne qui n'est pas éditable.

    <hs>pluxml est devenu un vrai petit bijou , j'adore :) </hs>


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • StéphaneStéphane Member, Former PluXml Project Manager
    Pour la verif de l'email c'est un regex qui est utilisé (voir dans plxUtils)

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • La vérification du domaine est une bonne idée mais attention au temps de réponse. Je ne sais pas trop quel mécanisme est utilisé par PHP mais si c'est un contrôle dns ça risque de ralentir pas mal pluxml.

    J'ai un string de l'array

  • flipflip a écrit:
    La vérification du domaine est une bonne idée mais attention au temps de réponse. Je ne sais pas trop quel mécanisme est utilisé par PHP mais si c'est un contrôle dns ça risque de ralentir pas mal pluxml.
    Bonjour/bonsoir

    oui c'est lourd , mais en l'occurance je ne pensais qu'au de la fonction native de php (qui accepte par exemple : admin@localhost) et y adjoindre qu'une regex testant si le ndd avait un point et 2 ou 3 lettre derriere .

    merci


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • Bonjour,
    J'ai testé la modification du profil utilisateur tel que proposée dans le Wiki et... cela a produit une catastrophe majeure : écrasement du fichier utilisateur !! Pas trop grave car rapidement restaurée à partir d'une sauvegarde mais il y a quand même un gros problème sur cette modification.
    PS : j'ai suivi scrupuleusement la modification des quatre fichiers proposés.
    Cordialement.
Connectez-vous ou Inscrivez-vous pour répondre.