Gestion de Contenu, de Communauté et de groupes de travail collaboratif - Open Source, français, sécurisé, stable et performant

  • MODULES

    Pour étendre les nombreuses fonctionnalités disponibles de base - modules.npds.org est à votre disposition.

    Des modules complémentaires, une communauté de développeurs active, des forums pour vos questions ... NPDS  est aussi une plateforme de développement !
  • STYLES

    Vous cherchez des thèmes graphiques pour votre portail ou votre communauté : styles.npds.org est à votre disposition.

    Des thèmes du plus simple au plus sophistiqué. Des thèmes facilement modifiables et toujours en Open-Source - Laissez simplement parler votre imagination !
  • BIBLES

    La documentation indispensable pour personnaliser et exploiter toute la puissante de NPDS  est à votre disposition sur bible.npds.org.

    Vous pouvez participer à l'effort de documentation - rien de plus simple : contactez un membre de la Team de développement et nous vous ouvrirons un compte sur le Wiki !
Devenir membre    |    Identifiant : Mot de Passe : -
Au delà de la gestion de contenu 'classique', NPDS met en oeuvre un ensemble de fonctions spécifiquement dédiées à la gestion de Communauté et de groupes de travail collaboratif.
Il s'agit d'un Content & Community Management System (CCMS) robuste, sécurisé, complet, performant et parlant vraiment français.

Gérez votre Communauté d'utilisateurs, vos groupes de travail collaboratif, publiez, gérez et organisez votre contenu grâce aux puissants outils disponibles de base.
  • Multi langues (Français, Anglais, Allemand, Espagnol, Chinois)
  • Respect des standards : UTF8, XHTML, CSS, ...
  • Système de blocs avancés
  • Installation et administration complète et centralisée
  • Editeur HTML intégré
  • Gestionnaire de fichier en ligne
  • Gestion des groupes de membres
  • Ecriture collaborative de documents (PAD)
  • Forums évolués
  • Mini-sites (pour les membres et les groupes de travail)
  • Chat temp réel
  • Système de News et de rubriques complet (édition, révision, publication)
  • ...
Gratuit et libre (Open-Source), développé en PHP, NPDS est personnalisable grâce à de nombreux thèmes et modules et ne requiert que quelques compétences de base.
NPDS Workplace - groupe de travail collaboratif
 NPDS WorkSpace - tous l'univers du travail collaboratif.
Modéré par : developpeur jpb Jireck 
Index du Forum » » Le coin des codeurs » » Modification formulaire enregistrement utilisateur
2 pages [ 1 | 2 ]
AuteurModification formulaire enregistrement utilisateur
PhilGuen
986      

PhilGuen
  Posté : 16-03-2004 12:50

Bonjour à tous,

J'ai besoin de modifier le formulaire d'enregistrement d'un nouvel utilisateur de manière à ce qu'il soit dans l'obligation de choisir son appartenance à un groupe au moment de son inscription.

J'ai donc fait ceci :

dans formulaire. php - ligne 22 (juste avant //---AVATAR)

/**************************/
/* Ajout pour groupe */
/*************************/
$tmp=array(
"Cycliste"=>array('en'=> "Cycliste", 'checked'=>true),
"Marcheur"=>array('en'=>"Marcheur", 'checked'=>false),
"Cycliste & Marcheur"=>array('en'=>"Les deux", 'checked'=>false)
);
$m->add_radio('user_group', 'Votre catégorie *', $tmp,false);
/******************/
/* Fin de l'ajout */
/******************/

le choix s'affiche bien

dans aff_formulaire.php - ligne 22 (juste avant //---AVATAR)

/**************************/
/* Ajout pour groupe */
/*************************/
$m->add_field('user_group', 'Votre catégorie',"$tmp",'text',false,25,"","");
/********************/
/* Fin de l'ajout */
/*******************/

L'option choisie est bien affichée

dans user.php : function finishNew User (après la ligne 205 -
juste avant les instructions d'ajout dans users_status

/**************************/
/* Ajout pour groupe */
/*************************/
$user_group="10,20";
switch ($tmp) {
case "Cycliste" :
$user_group="10";
break;
case "Marcheur" :
$user_group="20";
break;
}
/***************/
/* Fin d'ajout */
/**************/

if (($AutoRegUser==1) or (!isset($AutoRegUser))) {
$result = mysql_query("insert into users_status values ('$usr_id','0','$attach','0','1','1','$user_group')");
} else {
$result = mysql_query("insert into users_status values ('$usr_id','0','$attach','0','1','0','$user_group')");
}

La ca va plus car ca enregistre toujours "10,20", donc j'ai perdu la valeur de $tmp

J'ai essayé en modifiant les fonctions et appels en ajoutant $tmp comme argument ... mais bernique.

Doit y avoir quelque chose que j'ai pas compris ou mal fait.

Merci de votre aide car j'ai vraiment besoin de cette modif.

Bon AM à tous.

Philippe

  Profil  E-mail  www  
Tribal-Dolphin
4374       
 

Tribal-Dolphin
  Posté : 16-03-2004 16:10

Faut aussi ajouter ta variable dans hidden_form.
si tu ne le fait pas, la variable se perds en chemin.

  Profil  
PhilGuen
986      

PhilGuen
  Posté : 16-03-2004 16:29

J'ai donc rajouté après la ligne 125



mais

c'est toujours pas bon

Merci de votre aide

  Profil  E-mail  www  
PhilGuen
986      

PhilGuen
  Posté : 17-03-2004 07:26

Dev Tito, GiamDoc, tout le monde

help me ...............

j'aurais beaucoup besoin de cette modif et je ne m'en sors pas. Je ne connais pas assez le fonctionnement de NPDS

merci d'avance

Amitiés

Philippe

  Profil  E-mail  www  
Tito
7758       
 

Tito
  Posté : 17-03-2004 13:21

Il ne faudrait pas plutot mettre des IF ???
Avec des IF [séléctionné] case [numéro] ?

Enfin, je ne suis pas un boss en PHP et je n'ai pas encore essayé le MySQL...

  Profil  E-mail  www  
developpeur
24581       
 

developpeur
  Posté : 18-03-2004 22:48

**************************/
/* Ajout pour groupe */
/*************************/
$user_group="10,20"; <<======= cette ligne de sert à quoi ?????
switch ($tmp) {
case "Cycliste" :
$user_group="10";
break;
case "Marcheur" :
$user_group="20";
break;
}
/***************/
/* Fin d'ajout */
/**************/

A suivre

  Profil  E-mail  www  
PhilGuen
986      

PhilGuen
  Posté : 19-03-2004 06:00

Merci DEV, j'ai grand besoin de ton aide.

3 choix possible :
cycliste = groupe 10
marcheur = groupe 20
les deux = groupe 10,20

donc :

$user_group="10,20" (valeur par défaut)

puis je change $user_group en fonction de $tmp

si $tmp="Cycliste" =>$user_group="10"
si $tmp="Marcheur" => $user_group="20"

donc $user_group reste "10,20" si on n'a choisi ni Cycliste ni Marcheur

En fait ca remplace un troisième case $tmp="Cycliste & Marcheur" =>$user_group="10,20" ou un else si j'employais une structure if ... elseif ... else

Bon, c'est pas très académique, mais ca permet de fonctionner en cas d'erreur dans ma modif. (ce qui est bien le cas en ce moment)

D'ailleur, pour être cohérant, il aurait fallu que dans formulaire.php je fasse plutôt

/**************************/
/* Ajout pour groupe */
/*************************/
$tmp=array(
"Cycliste"=>array('en'=>"Cycliste", 'checked'=>false),
"Marcheur"=>array('en'=>"Marcheur", 'checked'=>false),
"Cycliste & Marcheur"=>array('en'=>"Les deux", 'checked'=>true);
$m->add_radio('user_group', 'Votre catégorie *', $tmp,false);

/******************/
/* Fin de l'ajout */
/******************/


Je vais essayer de modifier pour une structure en "if elseif else", mais il n'y a pas de raison que ca fonctionne mieux.

Amicalement

Philippe

[ Message édité par : PhilGuen : 19-03-2004 06:02 ]

[ Message édité par : PhilGuen : 19-03-2004 06:05 ]

  Profil  E-mail  www  
Tribal-Dolphin
4374       
 

Tribal-Dolphin
  Posté : 19-03-2004 08:28

essaye comme ça :

remplace dans ton sfrom $tmp par $tmp_groupes. (car $tmp est souvent utiliser ailleurs et ça peut effacer ta valeur)

**************************/
/* Ajout pour groupe */
/*************************/

if ($tmp_groupes = "Cycliste") { $user_group="10"; }
elseif ($tmp_groupes = "Marcheur") { $user_group="20"; }
else { $user_group="10,20"; }

/***************/
/* Fin d'ajout */
/**************/

Il serait même judicieux de mettre la valeur direct dans le form

$tmp=array(
"Cycliste"=>array('en'=>'10', 'checked'=>true),
"Marcheur"=>array('en'=>'20', 'checked'=>false),
"Cycliste & Marcheur"=>array('en'=>'10,20', 'checked'=>false)
);

[ Message édité par : Tribal-Dolphin : 19-03-2004 08:42 ]

  Profil  
PhilGuen
986      

PhilGuen
  Posté : 19-03-2004 09:50

Je suis désolé Tribal, je ne comprends pas (boulet du jour?)

Je n'ai pas touché à sform.php

j'ai modifié formulaire.php, aff_formulaire.php et user.php

dans user.php,j'ai modifié le test avant l'enregistrement et j'ai remplacé

$user_group="10,20";
switch ($tmp_group) {
case "Cycliste" :
$user_group="10";
break;
case "Marcheur" :
$user_group="20";
break;
}

par

if ($tmp_group="Cycliste"){
$user_group='10';
}elseif ($tmp_group="Marcheur"){
$user_group='20';
}else{
$user_group='10,20'

Pour moi ca devrait être la même chose, mais dans le 1° cas $user_group enregistre toujours "10,20" et dans le 2° cas toujours "10".

je n'y comprends plus rien.


  Profil  E-mail  www  
Tribal-Dolphin
4374       
 

Tribal-Dolphin
  Posté : 19-03-2004 10:26

Quand je je parle de SFROM c'est pas le fichier sform.php mais le formulaire créer grace à SFORM, dans ton cas : formulaire.php, aff_formulaire.php

As tu fait la modif donné dans le formulaire ?
(
$tmp=array(
"Cycliste"=>array('en'=>'10', 'checked'=>true),
"Marcheur"=>array('en'=>'20', 'checked'=>false),
"Cycliste & Marcheur"=>array('en'=>'10,20', 'checked'=>false)
);
)

  Profil  
PhilGuen
986      

PhilGuen
  Posté : 19-03-2004 10:57

Oui et j'ai remplacé $tmp par $tmp_group.

Mais il y a qq chose de fondamental que je ne pige pas :

pour moi

$user_group="10,20";
switch ($tmp_group) {
case "Cycliste" :
$user_group="10";
break;
case "Marcheur" :
$user_group="20";
break;
}

ca doit faire pareil que

if ($tmp_group="Cycliste"){
$user_group='10';
}elseif ($tmp_group="Marcheur"){
$user_group='20';
}else{
$user_group='10,20'
}

et ben non

le 1) attribue toujours '10,20' à $user_group et le 2) toujours '10', quelque soit le choix qui a été fait dans le formulaire.

Je vais essayer de mettre la condition + haut (dans aff_formulaire).


  Profil  E-mail  www  
Tribal-Dolphin
4374       
 

Tribal-Dolphin
  Posté : 19-03-2004 11:08

remplace dans ton form :

$tmp=array(
"Cycliste"=>array('en'=>'10', 'checked'=>true),
"Marcheur"=>array('en'=>'20', 'checked'=>false),
"Cycliste & Marcheur"=>array('en'=>'10,20', 'checked'=>false)
);

Et dans user.php

$user_group = $tmp_group

Et voilà

  Profil  
PhilGuen
986      

PhilGuen
  Posté : 19-03-2004 11:19

Je vais essayer comme ca ... mais je n'aurais le tmps que demain

Je vous tiens au courant

Merci A tous de votre aide

Amitiés

Philippe

  Profil  E-mail  www  
PhilGuen
986      

PhilGuen
  Posté : 19-03-2004 21:00

Bon ... va ne marche pas !!!!

Comme dirait Guy Roux, on va reprendre les fondementaux !.

1°) dans formulaire.php on a, pour enregistrer une url, ligne 21

$m->add_field('url', translate("Your HomePage"),$url,'text',false,100,"","")

je rajoute une autre ligne sur le même modèle pour enregister une catégorie.

$m->add_field('user_group', 'Votre catégorie',$tmp_group,'text',true,10,"","");

A la saisie, je peux donc correctement saisir un nom de catégorie. C'est ok.

----------

2°) dans aff_formulaire.php, ligne 20, j'ai

$m->add_field('url', translate("Your HomePage"),"$url",'text',false,100,"","");

pour vérification des données "url".

Je rajoute pour vérifier les données "Catégorie"

$m->add_field('user_group', 'Votre catégorie',"$tmp_group",'text',true,10,"","");

L'affichage de l'écran de vérification des données m'affiche bien le nom entré
dans le champ "Votre catégorie".


MAIS !!!!!!!!!!!!!!


---------
3°) dans aff_formulaire, tout de suite après les lignes précédentes j'ai ajouté

echo "groupe : ".$tmp_group;
echo "
URL : ".$url;

pour tester les valeurs des variables.

et la, j'ai bien une valeur pour $url mais je n'ai plus rien pour $tmp_group

J'ai donc déjà perdu $tmp_group entre la saisie (formulaire.php) et l'affichage de confirmation (aff_formulaire.php).

Qu'est-ce que j'ai loupé? Un global $tmp_group quelque part?

Pour info, suivant les conseils de Tribal, j'ai ajouté dans hidden_form (en + d'un global $tmp_group)



Je pense que je ne suis pas le premier à avoir essayé de modifier le formuliare d'enregistrement.

Je suis donc preneur de tout conseil

Merci d'avance

Amitiés

Philippe


[ Message édité par : PhilGuen : 19-03-2004 21:02 ]

[ Message édité par : PhilGuen : 19-03-2004 21:03 ]

[ Message édité par : PhilGuen : 19-03-2004 21:04 ]

  Profil  E-mail  www  
PhilGuen
986      

PhilGuen
  Posté : 20-03-2004 08:33

Pour infos j'ai essayé de "passer" par $C8 ... et mm blème ... je perds le contenu de $C8 dès l'affichage de l'écran de vérification des données (aff_formulaire.php).

mdr j'y comprends plus rien !!!!!!!!!!!!!!!

  Profil  E-mail  www  
Aller à la page : [ 1 | 2 ]
Sauter à :

Temps : 0.0178 seconde(s)