Nouveau sujet Répondre Imprimer Syndication RSS 2.0

[RC5 + f2]Changement de couleur d'un groupe

les membres ne suivent pas
Feu follet
Avatar de Tranber
  • Age : 22 ans
  • Messages : 180
  • Inscrit : 03 Juin 2007
  Lien vers ce message 25 Novembre 2007, 23:27
  1. Type de bug : Bug sur le forum (côté PHP)
  2. Zone du forum affectée : Groupes et listes de membres
  3. Priorité du bug : Basse
  4. Description : J'ai créé des groupes spéciaux dont font parti mes membres et j'ai assigné à ces groupes une couleur particulière.

    Or j'ai remarqué que lorsque je change la couleur d'un groupe, les membres gardent la couleur précédente.
  5. Elément de réponse : La fonction qui change la couleur du groupe ne doit pas changer celle des membres ici.
    Il faudrait en plus séparer dans le cas où une personne appartiendrait à plusieurs groupe, ceux qui ont décidé d'afficher la couleur du groupe qui est modifié et ceux qui ont décidé d'afficher la couleur d'un autre groupe.
  6. Fichier(s) :
  7. Base de donnée utilisée : MySQL 5
  8. Type de serveur : Apache (généralement unix)


http://bigtrash.free.fr/creation/Signature%20Tranber.jpg
 
Equipe de support
Avatar de B.Moncef
  • Age : 17 ans
  • Messages : 1926
  • Inscrit : 10 Septembre 2005
  Lien vers ce message 26 Novembre 2007, 22:45
Si tu appartient à plus d'un groupe, tu peux tout à fait choisir dans ton profil la couleur du groupe que tu veux. où est le problème ?
 
Volcan
Avatar de Talus
  • Age : 20 ans
  • Messages : 1548
  • Inscrit : 28 Septembre 2006
  Lien vers ce message 26 Novembre 2007, 22:47
Je pense que ce qu'il veut dire, c'est que si il change la couleur d'un groupe en particulier, tous les membres ayant ce groupe là par défaut, et donc cette couleur, ont l'ancienne couleur, et pas l'actuelle...


 
Equipe de support
Avatar de B.Moncef
  • Age : 17 ans
  • Messages : 1926
  • Inscrit : 10 Septembre 2005
  Lien vers ce message 26 Novembre 2007, 23:11
Ah okey.

Je pense savoir d'où vient ton problème. En fait, quand tu veux faire changer de groupe (et de couleur) à un membre, il faut d'abord que le supprime de son ancien groupe (sur la page du groupe en question) et ensuite l'ajouter à ton nouveau groupe (depuis son profil).

Parce que si tu l'ajoutes sans le supprimer de son ancien groupe, il fait partie des deux groupes, et donc devra lui même changer pour la groupe (et la couleur) qu'il veut depuis son profil (logique). Tu comprends ?
 
Volcan
Avatar de Talus
  • Age : 20 ans
  • Messages : 1548
  • Inscrit : 28 Septembre 2006
  Lien vers ce message 26 Novembre 2007, 23:45
C'est pas ca qu'il veut, le coup de changer de groupes, mais juste de changer le style CSS sur un groupe... Si il le change, les couleurs des membres suivent pas... ?


 
Equipe de support
Avatar de B.Moncef
  • Age : 17 ans
  • Messages : 1926
  • Inscrit : 10 Septembre 2005
Message édité 2 fois, dernière édition par B.Moncef, 27 Novembre 2007, 0:15     Lien vers ce message 27 Novembre 2007, 0:13
Ahhh :fsb2_goutte:
Effectivement, c'est la colonne u_color dans la table des membres qui en est responsable.

Voilà comment j'ai résolu le problème chez moi :

Ouvrir :
~/admin/manage/manage_groups.php
Chercher :
Group::edit($this->id, $this->data, $modo_idx);

Après, ajouter :
/** Mise à jour des couleurs des membres **/
Fsb::$db->update('users', array(
    'u_color' =>	$this->data['g_color']
), 'WHERE u_default_group_id = ' . $this->id);
/** Fin mise à jour des couleurs des membres **/


Il serait préférable d'attendre l'avis de Géno, ce code rajoute peut-être une requête pour rien. Peut-être qu'il y a une solution plus simple.
 
Feu follet
Avatar de Tranber
  • Age : 22 ans
  • Messages : 180
  • Inscrit : 03 Juin 2007
Message édité 1 fois, dernière édition par Tranber, 27 Novembre 2007, 7:49     Lien vers ce message 27 Novembre 2007, 7:36
Ok, Talus tu as vu juste. J'attend donc l'avis de Geno ^^

Par contre j'ai remarqué que ça pousse jusque dans le changement de groupe comme parlait B.Moncef. En effet j'ai changé un membre du groupe membres que j'ai créé vers un autre groupe que j'ai créé également, et le membre en question avait la classe user alors que j'ai spécifié que le groupe obligatoire membre ne s'affiche pas et n'as pas de classe ni de style.

Bref, les couleurs des membres ne changent pas ou pas comme il le faut ^^


http://bigtrash.free.fr/creation/Signature%20Tranber.jpg
 
Equipe de support
Avatar de B.Moncef
  • Age : 17 ans
  • Messages : 1926
  • Inscrit : 10 Septembre 2005
  Lien vers ce message 27 Novembre 2007, 13:38
Géno > Même avec la requête que j'ai ajouté plus haut, la couleur de l'ancien groupe reste toujours dans le bloc des statistiques (dernier membre inscrit). C'est dû à last_user_color dans la table de configuration.
Faut il modifier aussi par une requête ou c'est juste une histoire de cache ?
 
Feu follet
Avatar de Tranber
  • Age : 22 ans
  • Messages : 180
  • Inscrit : 03 Juin 2007
  Lien vers ce message 27 Novembre 2007, 14:58
On vient même de s'apercevoir de quelque chose : un admin vient de changer les droits en écriture d'un groupe créé, et pratiquement toutes les couleurs ont disparues (elles sont passées aux couleurs de class (user ...)).


http://bigtrash.free.fr/creation/Signature%20Tranber.jpg
 
Feu follet
Avatar de IpEFiX
  • Age : 21 ans
  • Messages : 134
  • Inscrit : 14 Mars 2007
  Lien vers ce message 27 Novembre 2007, 18:21
On vient même de s'apercevoir de quelque chose : un admin vient de changer les droits en écriture d'un groupe créé, et pratiquement toutes les couleurs ont disparues (elles sont passées aux couleurs de class (user ...)).


J'ai eu pareil et pas moyen de le régler autrement qu'en enlevant et en remettant juste après chaque membre dans son groupe (sauf le fondateur du forum (moi) et le co-admin :/ on est en couleur simple et pas orange gras ^^)


http://img113.imageshack.us/img113/3850/userbarinterneton2.gif http://img113.imageshack.us/img113/1168/userbartvmr6.gif
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14507
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 05 Décembre 2007, 15:04
Alors pour la première correction (mise à jour de la couleur en cas d'édition), dans le fichier ~/main/class/class_group.php
il faut remplacer
	public static function edit($group_id, $data, $modo_idx)
	{
		Fsb::$db->update('groups', $data, 'WHERE g_id = ' . $group_id);
		self::update_moderators($group_id, $data['g_type'], $modo_idx, $data['g_rank']);
		Fsb::$db->destroy_cache('groups_');
	}

par
	public static function edit($group_id, $data, $modo_idx)
	{
		Fsb::$db->update('groups', $data, 'WHERE g_id = ' . $group_id);
		self::update_moderators($group_id, $data['g_type'], $modo_idx, $data['g_rank']);
		Fsb::$db->destroy_cache('groups_');

		// Mise à jour de la couleur
		$sql = 'SELECT u_id
				FROM ' . SQL_PREFIX . 'groups_users
				WHERE g_id = ' . $group_id;
		$result = Fsb::$db->query($sql);
		$idx = array();
		while ($row = Fsb::$db->row($result))
		{
			$idx[] = $row['u_id'];
		}
		Fsb::$db->free($result);

		if ($idx)
		{
			self::update_colors($idx);
		}
	}




Pour la seconde erreur, malheuresement sans davantage de précision je ne peux pas savoir d'où provient le bug :/


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Répondre


.