Quote:
IS it not groups involved as well?
Of course the groups are involved too. but the xoops group system in profile module is complete and can handle it right now.
the invisibility is a private setting so each user should have the right to change the setting for his own.
assume that we have that "
status box" right now in profile fields.
let me explain that with the current profile module.
lets say we have 4 groups A, B, C and D
in profile -> permissions
there is a "Field editable from profile" section:
there webmaster can set which group can change default settings.
lets say the default setting of status box for all users is "READY"
and webmaster decide to let group A and B to change their status in "Field editable from profile" section. so group A and B can change the status to "invisible".
then there is a "Visibility" section:
It is a complicated part of profile module.
there webmaster can set which group can see which group fields.
lets say webmaster decide to do this settings for status box field:
eg:
Status box:
- is visible for B viewing a profile of A
- is visible for D viewing a profile of A
so the following will be happen in website.
1- a user belong to group B can be invisible and no body can see a sign of him/her in website.
2- a user belong to group A can be invisible and users belong to group B and D can see his/her status like this "[invisible]USER" but users belong to group C can not see anything.
more situations is possible.
IMO the above is complete.
Quote:
to move forward on the technical side of this discussion?
agree. but we dont need any special place!
i hate to just talk without something as outcome!
i can show you what you can do with the current 2.5.5
you can borrow that "Allow other users to view my email address" for admins and manipulate it to "Allow other users to view my email address and my account online"
in XOOPS255/class/online.php around line 60 add these:
function write($uid, $uname, $time, $module, $ip)
{
$uid = intval($uid);
// START irmtfan - hack to make admins invisible in site when the user_viewemail=0(No)
global $xoopsUser;
if($xoopsUser->isAdmin() && !$xoopsUser->getVar("user_viewemail")) {
return true; // hard invisibility - the admin account will not store in online table
}
// END irmtfan - hack to make admins invisible in site when the user_viewemail=0(No)
the above will hide admin users and it is hard invisibility. It means nobody can see you either. even other webmasters can not see you online.
i may can show you a soft invisibility only in whois online block.
in XOOPS255/modules/system/blocks/system_blocks.php around line 60 add these:
$members = '';
// START irmtfan - hack to make admins invisible in site when the user_viewemail=0(No)
$member_handler =& xoops_gethandler('member');
for ($i = 0; $i < $total; $i++) {
if ($onlines[$i]['online_uid'] > 0) {
$thisuser = $member_handler->getUser($onlines[$i]["online_uid"]);
if($thisuser->isAdmin() && !$thisuser->getVar("user_viewemail")) {
$onlines[$i] = $xoopsUser->isAdmin() ? $onlines[$i] : null; // soft invisibility - only in whois online block.
}
// END irmtfan - hack to make admins invisible in site when the user_viewemail=0(No)
the above will just hide admin users in whois online block. but it has an additional feature. admin users can see each other online.
It is only in whois online block so in forums comments and other places people can see you.
you even have another possibility!
a light invisibility.
in anywhere you want users not see your account in templates you can use smarty and css.
the bellow is a typical example code:
<{if $xoops_isadmin }> <span class="hidden"> <{$uname}>span>
<{else}>
<{$uname}>
<{/if}>
class hidden is defined in XOOPS255/xoops.css like this:
.hidden{ visibility:hidden; position:absolute; top:0; left:0; }
so ordinary users only can see you in source code!
Ok it is enough for now i need to go to work!