SmartFAQ is developed by The SmartFactory (https://www.smartfactory.ca), a division of InBox Solutions (https://www.inboxsolutions.net)

How to show the groups the user belongs to in the user profile
Dear Webmaster, please replace the FAQ with the following because something is wrong in the faq display: Here begins: ------------------- This is for adding the groups of the user to the userinfo, so they are displayed in his/her profile. It is nice for projects that all members (not only the admin) need to know when a member is part of a special group. I developed this hack from a post of bluescreen, who did something similar to point 2, but for another purpose. Sorry I can't find that post. The hack is this way: 1) in the file /language/english/user.php add this line:
le="color: #000000"><?php // hack jordi user groups displaying define('_US_GRUPOS','Community Status'); // end of hack jordi
2) In the file userinfo.php look where it says this:
le="color: #000000"><?php if ( is_object($xoopsUser) && $isAdmin ) { $xoopsTpl->assign('lang_editprofile', _US_EDITPROFILE); $xoopsTpl->assign('lang_deleteaccount', _US_DELACCOUNT); $xoopsTpl->assign('user_uid', $thisUser->getVar('uid')); }
and add this after it:
le="color: #000000"><?php // hack display user groups $verGrupos = $thisUser->getGroups(); $susGrupos=''; //group number 1 is allways admin if ( in_array("1", $verGrupos) ) { $susGrupos = 'Administrator'; } //group 4 is a group you may have created // remove this line if you didn't // you can also add more lines, checking numbers from 4 to X // for the groups you created elseif ( in_array("4", $verGrupos) ) { $susGrupos .= 'A group you created'; } //group 2 is the registered users. All people belong to this group if they are registered. elseif ( in_array("2", $verGrupos) ) { $susGrupos .= 'Proud Member'; } // this asigns values to variables in system_userinfo $xoopsTpl->assign('lang_grupos', _US_GRUPOS); $xoopsTpl->assign('user_grupos', $susGrupos); // fin hack mostrar grupos
If you wonder what is group 3, I must say that group 3 is Anonymous, so they don't have user profile, so no need to care about. If you want a group displayed regardless that the user belongs to another one, use a "if" bucle instead of "elseif" for that group. 3) Finally go to modules/system/templates/system_userinfo.html where it says:
le="color: #000000"><?php <tr valign="top"> <td class="head" width="25%"><{$lang_avatar}></td> <td align="center" class="even"><img src="<{$user_avatarurl}>" alt="Avatar" /></td> </tr>
And add this after it:
le="color: #000000"><?php <!-- jordi: hack user groups display --> <tr> <td class="head" width="25%"><{$lang_grupos}></td> <td class="odd"><{$user_grupos}></td> </tr> <!-- jordi: end of hack user groups display -->
Now you got it! You don't need to create any database or nothing, just do these 3 steps. Jordi R. Cardona.


The comments are owned by the author. We aren't responsible for their content.
user

 Hahaha


Hahaha , oops. I mean the 3 lines in the beginning are just a salutation... Anyway thanks for publishing this.

Jordi

 
user

 Modified to display all groups


I modified this hack a bit so that it shows all groups, without you having to add an if/else for each group.

I have many groups, and I may be adding more in the future, so I don't want to have to alter the userinfo.php every time I add a new group.

It's all the same as above, except in step 2 I added this code instead:



le="color: #000000"><?php // hack display user groups //checks for user's groups $mygroups =& $member_handler->getGroupsByUser($thisUser->getVar('uid'), true); foreach ($mygroups as $group) { $gname = $group->getVar('name'); $in_groups .= $gname.", "; } $in_groups = substr($in_groups, 0, -2); $xoopsTpl->assign('lang_grupos', _US_GRUPOS); $xoopsTpl->assign('user_grupos', $in_groups); // end hack


Also, if you try to modify the template and it doesn't work. Access the template through the Admin > System > Templates.

I used this in XOOPS 2.10.17.

 


Login

Donat-O-Meter

Stats
Goal: $15.00
Due Date: Jul 31
Gross Amount: $0.00
Net Balance: $0.00
Left to go: $15.00
Make donations with PayPal!