MyBB Community Forums

Full Version: How to use hook, push return true to parent funtion
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
hi
How to use hook, push return true to parent funtion

mybb will have hook in is_moderator function()

function is_moderator($fid=0, $action="", $uid=0)
{
global $mybb, $cache, $plugins;

if($uid == 0)
{
$uid = $mybb->user['uid'];
}

if($uid == 0)
{
return false;
}

$user_perms = user_permissions($uid);

$hook_args = array(
'fid' => $fid,
'action' => $action,
'uid' => $uid,
);

$plugins->run_hooks("is_moderator", $hook_args);

if($user_perms['issupermod'] == 1)
{
if($fid)
{
$forumpermissions = forum_permissions($fid);
if($forumpermissions['canview'] && $forumpermissions['canviewthreads'] && !$forumpermissions['canonlyviewownthreads'])
{
return true;
}
return false;
}
return true;
}
else
{
if(!$fid)
{
$modcache = $cache->read('moderators');
if(!empty($modcache))
{
foreach($modcache as $modusers)
{
if(isset($modusers['users'][$uid]) && $modusers['users'][$uid]['mid'] && (!$action || !empty($modusers['users'][$uid][$action])))
{
return true;
}

$groups = explode(',', $user_perms['all_usergroups']);

foreach($groups as $group)
{
if(trim($group) != '' && isset($modusers['usergroups'][$group]) && (!$action || !empty($modusers['usergroups'][$group][$action])))
{
return true;
}
}
}
}
return false;
}
else
{
$modperms = get_moderator_permissions($fid, $uid);

if(!$action && $modperms)
{
return true;
}
else
{
if(isset($modperms[$action]) && $modperms[$action] == 1)
{
return true;
}
else
{
return false;
}
}
}
}
}


This is how I try use it

function statusupdate_is_moderator(&$hook_args)
{
global $mybb;

if(in_array($hook_args['action'], array("viewstatusupdate", "canviewstatusupdate", "canaddstatusupdate", "canlockunlockstatusupdate", "caneditstatusupdate", "candeletestatusupdate", "maxstatusupdateperday", "edittimelimitstatusupdate", "canviewstatusupdateeditinfo", "viewstatusupdateeditinfo", "viewstatusupdatereputations", "canviewstatusupdatereputations", "cangivestatusupdatereputations", "canremovestatusupdatereputations", "viewstatusupdatecomments", "canviewstatusupdatecomments", "canaddstatusupdatecomments", "caneditstatusupdatecomments", "candeletestatusupdatecomments", "maxstatusupdatecommentsperday", "edittimelimitstatusupdatecomments", "canviewstatusupdatecommentseditinfo", "viewstatusupdatecommentseditinfo", "viewstatusupdatecommentsreputations", "canviewstatusupdatecommentsreputations", "cangivestatusupdatecommentsreputations", "canremovestatusupdatecommentsreputations")))
{
return true;
}
}


hooks work, I can use echo in if, if work, but i can not push return true to is_moderator() func

in attachment I add simple plugin to test if someone can help
function is_moderator(&$args)
{
	$args['is_moderator'] = true; // true or false, only
}
Thanks for try but don't work

Do you have other idea?
OMG

I,didnt know there is
if(isset($hook_args['is_moderator']))
	{
		return (boolean) $hook_args['is_moderator'];
	}

Thanks you

+ for you