Nouveau sujet Répondre Imprimer Syndication RSS 2.0

[Résolu] Problème de compréhension du code

l'ajout de champs dans le profil de fsb2 est délicat
Feu follet
Avatar de Tranber
  • Age : 22 ans
  • Messages : 180
  • Inscrit : 03 Juin 2007
Message édité 2 fois, dernière édition par Tranber, 23 Juin 2007, 15:02     Lien vers ce message 03 Juin 2007, 17:53
Bonjour. J'essaye de faire des petits changements dans la RC4 de fsb2 au niveau des profils. En gros je veux que le user puisse rentrer le nom de son perso principal, le level et où il est situé dans le jeu (guild wars). Une fois qu'il aura mis les infos pour son perso principal, il pourra ajouter d'autres perso avec les mêmes informations.

J'ai réussi à faire en sorte que ça s'affiche, mais le problème c'est qu'il ne veut pas enregistrer les données dans la BDD. J'ai un peu de mal à comprendre comment le fsb2 fonctionne en fait ^^
Donc j'aimerai un peu d'aide pour savoir comment m'y prendre car je sais déjà que le fait d'avoir mis une requète sql dans le fichier ci-dessous n'est pas propre mais je n'arrive pas à faire autrement. Je veux juste réussir à rentrer les informations recueillis par le formulaire dans la BDD, le reste je me débrouille ^^
Voici les codes modifiés :
main/user/user_personal.php
fichier template lié


Merci d'avance de votre aide !


http://bigtrash.free.fr/creation/Signature%20Tranber.jpg
 
Volcan
Avatar de Midori
  • Age : 32 ans
  • Messages : 1836
  • Inscrit : 28 Janvier 2005
  Lien vers ce message 03 Juin 2007, 18:03
Tu te complique la tâche pour rien: dans l'administration, il est possible de définir des champs persos et leur affichage ou non dans la partie profil de l'affichage des messages... cela ne suffit-il pas ?

Midori...


http://www.loutan.net/ub/encyclo.gif
http://www.loutan.net/ub/ludivers.gif
http://www.loutan.net/ub/yves.gif
 
Feu follet
Avatar de Tranber
  • Age : 22 ans
  • Messages : 180
  • Inscrit : 03 Juin 2007
  Lien vers ce message 03 Juin 2007, 18:24
Non car je veux pas mettre juste une information, mais plusieurs !
Je veux que le niveau et les lieux soient liées au perso, et que chaque perso soient liés au user.

J'avais essayé avec l'affichage personnalisé, mais je ne pouvais mettre que un seul champ à la fois. Le problème c'est que pour un perso il y a 11 champ, et on peut avoir plus de 8 persos. Ca ferait un peu désordre ...


http://bigtrash.free.fr/creation/Signature%20Tranber.jpg
 
Equipe des MODS
Avatar de Grummfy
  • Age : 23 ans
  • Messages : 5469
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 03 Juin 2007, 18:27
oki, cependant comme tu coupe énormément du code de la class c'est dur de situer où tu es dans le code ...


au passage, un conseil, lorsque tu doit mettre autant de code, pense à mettre un fichier en ligne et mettre un lien vers celui-ci, c'est plus simple pour tous et évite des page kilométrique


"La gravité est le bonheur des imbéciles" Charles de Montesquieu > "T'as raison, L'apesanteur c'est plus rigolo" Hébus de Phalompe (Troll de Troy)
http://www.grummfy.com/download/crea/smileys/fsb2.gif Mods fsb1 - Mods fsb2 - Mon forum - Grummfy's project
 
Feu follet
Avatar de Tranber
  • Age : 22 ans
  • Messages : 180
  • Inscrit : 03 Juin 2007
  Lien vers ce message 03 Juin 2007, 19:00
C'est mieux comme ça ? ^^


http://bigtrash.free.fr/creation/Signature%20Tranber.jpg
 
Etoile
Avatar de BlackJowy
  • Age : 22 ans
  • Messages : 3477
  • Inscrit : 01 Mars 2007
  Lien vers ce message 03 Juin 2007, 19:07
Faut utiliser la dbal de fsb2, donc pas de mysql_fetch_array mais plutôt $db->row($result) ou $db->rows($result) :)


"It's backup day today so I'm pissed off. Being the BOFH, however, does have it's advantages. I reassign null to be the tape device — it's so much more economical on my time as I don't have to keep getting up to change tapes every 5 minutes. And it speeds up backups too, so it can't be all bad can it? Of course not." S.Travaglia

 
Feu follet
Avatar de Tranber
  • Age : 22 ans
  • Messages : 180
  • Inscrit : 03 Juin 2007
  Lien vers ce message 03 Juin 2007, 19:13
Le problème c'est que j'ai dû créer une nouvelle table qui contient les infos suivantes : u_id, u_perso_p, u_perso, u_p_level, u_p_pro_n, u_p_pro_h, u_p_fac_n, u_p_fac_h, u_p_nig_n, u_p_nig_h, u_p_pro_e, u_p_fac_e, u_p_nig_e. La table s'appelle fsb2_users_persos.

J'ai été obligé de créer une nouvelle table du fait qu'un user peut avoir plusieurs persos. Pour le moment je ne m'occupe que du personnage principal, car ce qui est fait pour un est faisable pour les autres ^^

Je ne sais pas trop par où aller pour gérer ce problème.


http://bigtrash.free.fr/creation/Signature%20Tranber.jpg
 
Etoile
Avatar de BlackJowy
  • Age : 22 ans
  • Messages : 3477
  • Inscrit : 01 Mars 2007
  Lien vers ce message 03 Juin 2007, 19:40
Bah en fait pour gérer plusieurs perso suffit que tu récupère chaque perso dans un tableau, et pour chaque perso ben tu fais afficher un bloc qui y correspond avec la fonction $tpl->set_blocks('perso_gwa',array(...)), grosso modo côté php t'as une boucle qui fait appel à la fonction set_blocks à chaque personnage, côté template t'as un code du genre :

<block name="perso_gwa">
{perso_gwa.NOM}
{perso_gwa.LEVEL}
...
</block>


"It's backup day today so I'm pissed off. Being the BOFH, however, does have it's advantages. I reassign null to be the tape device — it's so much more economical on my time as I don't have to keep getting up to change tapes every 5 minutes. And it speeds up backups too, so it can't be all bad can it? Of course not." S.Travaglia

 
Feu follet
Avatar de Tranber
  • Age : 22 ans
  • Messages : 180
  • Inscrit : 03 Juin 2007
  Lien vers ce message 03 Juin 2007, 19:53
Ben en fait, c'est pas le problème de gérer différents perso qui me dérange (et tout cas pour le moment) car comme tu le dis une boucle sous php et c'est fini. Mais là où je suis vraiment bloqué c'est que j'arrive à lire la base de données, mais je n'arrive pas à y écrire mes informations.


http://bigtrash.free.fr/creation/Signature%20Tranber.jpg
 
Etoile
Avatar de BlackJowy
  • Age : 22 ans
  • Messages : 3477
  • Inscrit : 01 Mars 2007
  Lien vers ce message 03 Juin 2007, 20:07
http://www.fire-soft-board.com/~wiki/fsb2:dev:dbal :)


"It's backup day today so I'm pissed off. Being the BOFH, however, does have it's advantages. I reassign null to be the tape device — it's so much more economical on my time as I don't have to keep getting up to change tapes every 5 minutes. And it speeds up backups too, so it can't be all bad can it? Of course not." S.Travaglia

 
Feu follet
Avatar de Tranber
  • Age : 22 ans
  • Messages : 180
  • Inscrit : 03 Juin 2007
Message édité 1 fois, dernière édition par Tranber, 03 Juin 2007, 20:29     Lien vers ce message 03 Juin 2007, 20:21
Merci ça va déjà m'aider mais en fait je me suis mal exprimé (désolé) mais le problème est plus en amont : je ne trouve pas comment récupérer les données envoyées par le formulaire, les données de type $_POST. C'est à cause de ça que je n'arrive pas à écrire dans la base de données en fait.

J'arrive pas à comprendre ce morceau de code :
		$this->post_data = array(
			array('field' => 'u_nickname', 'insert' => TRUE),
			array('field' => 'u_tpl', 'insert' => TRUE),
			array('field' => 'u_language', 'insert' => TRUE),
			array('field' => 'u_birthday', 'insert' => TRUE),
			array('field' => 'u_birthday_day', 'insert' => FALSE),
			array('field' => 'u_birthday_month', 'insert' => FALSE),
			array('field' => 'u_birthday_year', 'insert' => FALSE),
			array('field' => 'u_sexe', 'insert' => TRUE),
			array('field' => 'u_rank_id', 'insert' => TRUE),
			array('field' => 'u_utc', 'insert' => TRUE),
			array('field' => 'u_utc_dst', 'insert' => TRUE),
		);
		
		foreach ($this->post_data AS $value)
		{
			$this->data[$value['field']] = request($value['field'], 'post');
			if ($this->data[$value['field']] === NULL && $value['insert'])
			{
				$this->data[$value['field']] = $user->data[$value['field']];
			}
			$this->data[$value['field']] = trim($this->data[$value['field']]);
		}

D'où ça vient 'field' et comment je peux faire de même pour mes données ?


http://bigtrash.free.fr/creation/Signature%20Tranber.jpg
 
Etoile
Avatar de BlackJowy
  • Age : 22 ans
  • Messages : 3477
  • Inscrit : 01 Mars 2007
  Lien vers ce message 03 Juin 2007, 20:37
field et insert sont des index

Sachant que tu utilise une autre table, le mieux c'est de coder toi même la partie qui traite les données propre à ta modification ^^


"It's backup day today so I'm pissed off. Being the BOFH, however, does have it's advantages. I reassign null to be the tape device — it's so much more economical on my time as I don't have to keep getting up to change tapes every 5 minutes. And it speeds up backups too, so it can't be all bad can it? Of course not." S.Travaglia

 
Feu follet
Avatar de Tranber
  • Age : 22 ans
  • Messages : 180
  • Inscrit : 03 Juin 2007
  Lien vers ce message 03 Juin 2007, 21:59
C'est ce que j'avais pensé, faire une nouvelle page, mais le nouveau problème c'est comment l'intégrer au système ? Comment faire pour que mon fichier php soit appelé en même temps que celui qui affiche les infos de l'utilisateur ?


http://bigtrash.free.fr/creation/Signature%20Tranber.jpg
 
Etoile
Avatar de BlackJowy
  • Age : 22 ans
  • Messages : 3477
  • Inscrit : 01 Mars 2007
  Lien vers ce message 03 Juin 2007, 22:14
Non jte disais pas de refaire une page, juste de faire à ta facon, au lieu d'utiliser le même code que genova, fais ton propre code, ça sera ptet moins "beau" mais au moins tu le comprendra :)


"It's backup day today so I'm pissed off. Being the BOFH, however, does have it's advantages. I reassign null to be the tape device — it's so much more economical on my time as I don't have to keep getting up to change tapes every 5 minutes. And it speeds up backups too, so it can't be all bad can it? Of course not." S.Travaglia

 
Feu follet
Avatar de Tranber
  • Age : 22 ans
  • Messages : 180
  • Inscrit : 03 Juin 2007
  Lien vers ce message 03 Juin 2007, 22:33
T'inquiètes pas c'est ce que j'ai commencé à faire. Mais le problème c'est que d'habitude j'utilise plutôt les données qui sortent des formulaires sous forme de $_POST mais c'est pas le cas dans ce forum.
Je vais encore essayer (après mes partiels ... arf) de faire à ma façon en essayant d'adapter un max au code de genova en utilisant mes compétences. Qui sait, ça me permettra peut-être de faire une mod pour guild wars plus tard ? ^^

Enfin si quelqu'un sait déjà comment récuperer les données du formulaire de ma table, ça m'avancerai beaucoup. Et merci déjà de m'avoir orienté.


http://bigtrash.free.fr/creation/Signature%20Tranber.jpg
 
Répondre


.