Kunena 6.2.6 released

The Kunena team has announce the arrival of Kunena 6.2.6 [K 6.2.6] which is now available for download as a native Joomla extension for J! 4.4.x/5.0.x. This version addresses most of the issues that were discovered in K 6.1 / K 6.2 and issues discovered during the last development stages of K 6.2

Question [REGLE] Légende "Utilisateurs actuellement en ligne"

More
8 years 3 months ago - 8 years 3 months ago #1 by Yunael
EDIT : solution trouvée. Si vous souhaitez personnaliser la légende de votre forum en y ajoutant/supprimant des éléments et en les liant à des groupes Joomla!, la marche à suivre est ici : www.kunena.org/forum/24-French/135808-le...e/edit/171905#172014

Bonjour,

Tout d'abord je précise que je suis complètement novice dans le domaine, donc je risque d'utiliser des termes approximatifs voire inexacts, je m'en excuse par avance et espère que je serai compréhensible.

J'ai modifié la légende des "Utilisateurs actuellement en ligne" en bas de mon forum Kunena .
J'y ai enlevé les groupes de base (sauf le groupe "Membre" que j'ai renommé en "Inscrit") et y ai ajouté de nouveaux groupes en leur attribuant le nom et la couleur que je souhaitais.

J'aurais voulu que chaque élément de cette légende corresponde à un groupe d'utilisateurs Joomla!, (autrement dit que lorsqu'un utilisateur est ajouté dans tel groupe Joomla!, il prenne automatiquement la couleur de tel élément de légende).
J'ai trouvé ce sujet (et bien d'autres d'ailleurs qui m'ont permis de modifier cette légende et d'en arriver jusque là) qui correspond à ma question :
kunena.aide-joomla.com/forum/kunena-3-0-...-kunena?limitstart=0
Ça me dit où ajouter des lignes, mais pas ce que je dois faire.

Alors, en attendant de trouver comment faire, j'ai associé (dans /libraries/kunena/user/user.php) chaque ID d'utilisateur au groupe dans lequel je voulais le mettre. Par exemple :
Code:
} elseif ($this->userid == 713) { $type = 'cm';
Code:
} elseif ($this->userid == 714) { $type = 'veteran';
Ma légende fonctionne comme ça, chaque utilisateur apparait bien dans la bonne couleur. Mais ça veut dire qu'à chaque nouvel utilisateur ou qu'à chaque changement de groupe d'un utilisateur actuel, il va falloir que j'aille toucher au user.php

Donc c'est pas très pratique ni très "propre" dans mon fichier user.php...

Ma question est donc : comment associer un groupe d'utilisateurs Joomla! à un élément de cette légende ? (un truc simple genre "groupid" ? Quelque chose de plus compliqué comme un "Access:joomla.group" ?)

Merci d'avance pour votre réponse !
Last edit: 8 years 3 months ago by Yunael. Reason: [REGLE]

Please Log in or Create an account to join the conversation.

More
8 years 3 months ago #2 by xillibit
Bonjour,

C'est une fonctionnalité sur laquelle j'avais commencé à travailler mais j'ai fait d'autres choses donc je n'y ai pas retouché

I don't provide support by PM, because this can be useful for someone else.
The following user(s) said Thank You: Yunael

Please Log in or Create an account to join the conversation.

More
8 years 3 months ago #3 by Drynyrd
Bonjour,

Je suis membre du forum de Yunael et ce sujet m'intéresse. Je connais la programmation orienté objet mais peu PHP et absolument pas Joomla et Kunena.

En me renseignant un peu j'ai vu que Kunena semblait utiliser le même ID pour ses User que Joomla même si c'était deux objets différents. Or, à partir d'un ID d'utilisateur on peut obtenir l'objet User Joomla. Et à partir de l'User Joomla on peut obtenir la liste des groupes.

Du coup, en faisant quelques tests j'ai obtenu ce code qui semble fonctionner :
Code:
$joomla_user = JFactory::getUser($this->id); $joomla_user_groups = $joomla_user->get('groups'); if(in_array(8, $joomla_user_groups)){ $type = 'admin'; } elseif(in_array(15, $joomla_user_groups)){ $type = 'ecuyer'; } elseif(in_array(2, $joomla_user_groups)){ $type = 'registered'; }

Il faut tout de même récupérer l'ID du groupe sur l'interface d'administration et trier le code par ordre d'importance de groupe.

Je poste ça ici au cas ou cela intéresserait quelqu'un d'autre.
The following user(s) said Thank You: Yunael

Please Log in or Create an account to join the conversation.

More
8 years 3 months ago - 8 years 3 months ago #4 by Yunael
Ça fonctionne !
Dry tu es un génie ! :laugh:

Du coup pour faire fonctionner cette légende comme on veut en utilisant les groupes Joomla! il faut (je prends l'exemple de mon groupe forum "Ecuyer") :

- aller dans le fichier whosonline.php
(/www/components/com_kunena/template/blue_eagle/html/common/whosonline.php).
En dessous de :
Code:
<span><?php echo JText::_('COM_KUNENA_LEGEND'); ?>:</span>&nbsp;
on ajoute la ligne :
Code:
<span class = "kwho-ecuyer" title = "<?php echo JText::_('COM_KUNENA_COLOR_ECUYER'); ?>"> <?php echo JText::_('COM_KUNENA_COLOR_ECUYER'); ?></span>,&nbsp;

- aller dans le fichier langue de Kunena
(/www/language/fr-FR/fr-FR.com_kunena.templates.ini)
et ajouter :
Code:
COM_KUNENA_COLOR_ECUYER = "Écuyer"

- aller dans le fichier user.php
(/www/libraries/kunena/user/user.php)
et ajouter ce que Dry a mis, c'est-à dire :
Après la ligne :
Code:
$moderatedCategories = KunenaAccess::getInstance()->getModeratorStatus($this);
vous ajoutez :
Code:
$joomla_user = JFactory::getUser($this->id); $joomla_user_groups = $joomla_user->get('groups');
Et en dessous des lignes :
Code:
if ($this->userid == 0) { $type = 'guest'; }
vous ajoutez les lignes :
Code:
elseif(in_array(3, $joomla_user_groups)) { $type = 'ecuyer'; }
Où le chiffre est l'id du groupe Joomla!.

- pour terminer, pour attribuer une couleur à votre nouveau groupe tout beau tout fonctionnel, vous allez dans votre fichier kunena.default.css (ou kunena.default-min.css si vous n'êtes pas en mode debug).
Après les lignes :
Code:
#Kunena .kwho-user, #Kunena a.kwho-user { color: #FFCB8D !important; }
vous ajoutez :
Code:
#Kunena .kwho-ecuyer, #Kunena a.kwho-ecuyer { color: #08F !important; }
En attribuant le code couleur que vous voulez !

Edit : petite précision : (merci Dry une nouvelle fois)
Pour que vos utilisateurs aient toujours leur rang Kunena dépendant de leur nombre de messages, dans le fichier user.php toujours, vous devez ajouter :
Code:
case 'ecuyer' :
après
Code:
case 'user' : case 'count' :

Et votre forum sera parfait, personnalisé avec une légende qui correspond à vos utilisateurs :)
Last edit: 8 years 3 months ago by Yunael.

Please Log in or Create an account to join the conversation.

Time to create page: 0.358 seconds