MyBB Community Forums

Full Version: [Page Manager] Share your custom pages
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
What you need to post is the contents of your custom page.

The error is in you code, not the plugin.
Your problem is this line:
        'compatibility'=>'16*',

Remove the comma
        'compatibility'=>'16*'
I'm trying to get the banlist working but it's not letting me set what usergroups can access the page the groups in uid I don't want to have access, yet my group 4 for administrator isn't there any it won't give me access. - any ideas?

Edit, I also need it to check additional groups and if they are in the additional group which is allowed access - they should have access.

<?php

global $headerinclude, $header, $theme, $footer, $lang;

if(!$mybb->user['uid']) error_no_permission();

$lang->load('modcp');

$bannedquery = $db->simple_select("banned", "uid, admin, reason, dateline, lifted", "", array("order_by" => 'dateline', "order_dir" => 'DESC'));

if ($db->num_rows($bannedquery) > 0)
{
	$bannedtablerows = "";
	while ($ban = $db->fetch_array($bannedquery))
	{
		$banneduser = get_user($ban['uid']);
		$banby = get_user($ban['admin']);

		if ($ban['lifted'] > 0)
			$unbandate = my_date($mybb->settings['dateformat'], $ban['lifted']);
		else
			$unbandate = $lang->never;

		$bannedtablerows .= '<tr>
		<td class="trow1">'. build_profile_link($banneduser['username'], $banneduser['uid']). '</td>
		<td class="trow1">'. $ban['reason']. '</td>
		<td class="trow1">'. build_profile_link($banby['username'], $banby['uid']). '</td>
		<td class="trow1">'. my_date($mybb->settings['dateformat'], $ban['dateline']) .'</td>
		<td class="trow1">'. $unbandate .'</td>
		</tr>';
	}
}
else
{
	$bannedtablerows = '<tr><td class="trow1" colspan="5" align="center">'. $lang->no_banned .'</td></tr>';
}
if(!in_array($mybb->user['usergroup'], array('gid1','gid2','gid5','gid6','gid7','gid8','gid10','gid11','gid13')))
{
error_no_permission();
} 
$template='<html>
<head>
<title>'.$pages['name'].'</title>
{$headerinclude}
</head>
<body>
{$header}
<table border="0" cellspacing="1" cellpadding="4" class="tborder">
<tr><td class="thead" colspan="5"><strong>{$lang->ban_banned}</strong></td></tr>
<tr>
<td class="tcat"><span class="smalltext"><strong>{$lang->username}</strong></span></td>
<td class="tcat"><span class="smalltext"><strong>{$lang->reason}</strong></span></td>
<td class="tcat"><span class="smalltext"><strong>{$lang->ban_bannedby}</strong></span></td>
<td class="tcat"><span class="smalltext"><strong>{$lang->start_date}</strong></span></td>
<td class="tcat"><span class="smalltext"><strong>{$lang->end_date}</strong></span></td>
</tr>
{$bannedtablerows}
</table>
{$footer}
</body>
</html>';

$template=str_replace("\'", "'", addslashes($template));

add_breadcrumb($pages['name']);

eval("\$page=\"".$template."\";");

output_page($page);

?>
Is that the one from http://yaldaram.com?
Try replacing
if(!$mybb->user['uid']) error_no_permission();
with
if(!$mybb->user['uid'])
{
	error_no_permission();
}

if($mybb->user['usergroup'] == 3 || $mybb->user['usergroup'] == 4 || $mybb->user['usergroup'] == 6)
{
}
else
{
	error_no_permission();
}
It's this one http://community.mybb.com/thread-63357-p...#pid474410 Smile but I will give what you suggested a try.

Edit - it worked but it does not check additional usergroups, how to do this?
You could try this code instead. I haven't tested it and believe that it might not work, so please say if it works.
if(!$mybb->user['uid'])
{
	error_no_permission();
}
// The allowed groups
$groups = array("3", "4", "6");

// Additional Groups
$additionalgroups = explode(",",$mybb->user['additionalgroups']);

if(!in_array($mybb->user['usergroup'], $groups))
{
	error_no_permission();
}
foreach($additionalgroups as $additionalgroup)
{
	if(!in_array($additionalgroup, $groups))
	{
		error_no_permission();
	}
}
(2013-02-14, 01:45 PM)JordanMussi Wrote: [ -> ]You could try this code instead. I haven't tested it and believe that it might not work, so please say if it works.
if(!$mybb->user['uid'])
{
	error_no_permission();
}
// The allowed groups
$groups = array("3", "4", "6");

// Additional Groups
$additionalgroups = explode(",",$mybb->user['additionalgroups']);

if(!in_array($mybb->user['usergroup'], $groups) || )
{
	error_no_permission();
}
foreach($additionalgroups as $additionalgroup)
{
	if(!in_array($additionalgroup, $groups) || )
	{
		error_no_permission();
	}
}

I get : Parse error: syntax error, unexpected ')' in C:\xampp\htdocs\forums\inc\plugins\pagemanager.php(799) : eval()'d code on line 52

Full code is

<?php

global $headerinclude, $header, $theme, $footer, $lang;

if(!$mybb->user['uid']) error_no_permission();

$lang->load('modcp');

$bannedquery = $db->simple_select("banned", "uid, admin, reason, dateline, lifted", "", array("order_by" => 'dateline', "order_dir" => 'DESC'));

if ($db->num_rows($bannedquery) > 0)
{
    $bannedtablerows = "";
    while ($ban = $db->fetch_array($bannedquery))
    {
        $banneduser = get_user($ban['uid']);
        $banby = get_user($ban['admin']);

        if ($ban['lifted'] > 0)
            $unbandate = my_date($mybb->settings['dateformat'], $ban['lifted']);
        else
            $unbandate = $lang->never;

        $bannedtablerows .= '<tr>
        <td class="trow1">'. build_profile_link($banneduser['username'], $banneduser['uid']). '</td>
        <td class="trow1">'. $ban['reason']. '</td>
        <td class="trow1">'. build_profile_link($banby['username'], $banby['uid']). '</td>
        <td class="trow1">'. my_date($mybb->settings['dateformat'], $ban['dateline']) .'</td>
        <td class="trow1">'. $unbandate .'</td>
        </tr>';
    }
}
else
{
    $bannedtablerows = '<tr><td class="trow1" colspan="5" align="center">'. $lang->no_banned .'</td></tr>';
}
if(!$mybb->user['uid'])
{
    error_no_permission();
}

if(!$mybb->user['uid'])
{
    error_no_permission();
}
// The allowed groups
$groups = array("4", "9", "14");

// Additional Groups
$additionalgroups = explode(",",$mybb->user['additionalgroups']);

if(!in_array($mybb->user['usergroup'], $groups) || )
{
    error_no_permission();
}
foreach($additionalgroups as $additionalgroup)
{
    if(!in_array($additionalgroup, $groups) || )
    {
        error_no_permission();
    }
} 
$template='<html>
<head>
<title>'.$pages['name'].'</title>
{$headerinclude}
</head>
<body>
{$header}
<table border="0" cellspacing="1" cellpadding="4" class="tborder">
<tr><td class="thead" colspan="5"><strong>{$lang->ban_banned}</strong></td></tr>
<tr>
<td class="tcat"><span class="smalltext"><strong>{$lang->username}</strong></span></td>
<td class="tcat"><span class="smalltext"><strong>{$lang->reason}</strong></span></td>
<td class="tcat"><span class="smalltext"><strong>{$lang->ban_bannedby}</strong></span></td>
<td class="tcat"><span class="smalltext"><strong>{$lang->start_date}</strong></span></td>
<td class="tcat"><span class="smalltext"><strong>{$lang->end_date}</strong></span></td>
</tr>
{$bannedtablerows}
</table>
{$footer}
</body>
</html>';

$template=str_replace("\'", "'", addslashes($template));

add_breadcrumb($pages['name']);

eval("\$page=\"".$template."\";");

output_page($page);

?>
Whoops I was in the middle of doing something and left some unneeded code there, try this:
if(!$mybb->user['uid'])
{
	error_no_permission();
}
// The allowed groups
$groups = array("3", "4", "6");

// Additional Groups
$additionalgroups = explode(",",$mybb->user['additionalgroups']);

if(!in_array($mybb->user['usergroup'], $groups))
{
	error_no_permission();
}
foreach($additionalgroups as $additionalgroup)
{
	if(!in_array($additionalgroup, $groups))
	{
		error_no_permission();
	}
}
(2013-02-14, 02:05 PM)JordanMussi Wrote: [ -> ]Whoops I was in the middle of doing something and left some unneeded code there, try this:
if(!$mybb->user['uid'])
{
	error_no_permission();
}
// The allowed groups
$groups = array("3", "4", "6");

// Additional Groups
$additionalgroups = explode(",",$mybb->user['additionalgroups']);

if(!in_array($mybb->user['usergroup'], $groups))
{
	error_no_permission();
}
foreach($additionalgroups as $additionalgroup)
{
	if(!in_array($additionalgroup, $groups))
	{
		error_no_permission();
	}
}

Does not work, I am in group 4 and it gives me the no permission page

<?php

global $headerinclude, $header, $theme, $footer, $lang;

if(!$mybb->user['uid']) error_no_permission();

$lang->load('modcp');

$bannedquery = $db->simple_select("banned", "uid, admin, reason, dateline, lifted", "", array("order_by" => 'dateline', "order_dir" => 'DESC'));

if ($db->num_rows($bannedquery) > 0)
{
    $bannedtablerows = "";
    while ($ban = $db->fetch_array($bannedquery))
    {
        $banneduser = get_user($ban['uid']);
        $banby = get_user($ban['admin']);

        if ($ban['lifted'] > 0)
            $unbandate = my_date($mybb->settings['dateformat'], $ban['lifted']);
        else
            $unbandate = $lang->never;

        $bannedtablerows .= '<tr>
        <td class="trow1">'. build_profile_link($banneduser['username'], $banneduser['uid']). '</td>
        <td class="trow1">'. $ban['reason']. '</td>
        <td class="trow1">'. build_profile_link($banby['username'], $banby['uid']). '</td>
        <td class="trow1">'. my_date($mybb->settings['dateformat'], $ban['dateline']) .'</td>
        <td class="trow1">'. $unbandate .'</td>
        </tr>';
    }
}
else
{
    $bannedtablerows = '<tr><td class="trow1" colspan="5" align="center">'. $lang->no_banned .'</td></tr>';
}
if(!$mybb->user['uid'])
{
    error_no_permission();
}
// The allowed groups
$groups = array("4", "9", "14");

// Additional Groups
$additionalgroups = explode(",",$mybb->user['additionalgroups']);

if(!in_array($mybb->user['usergroup'], $groups))
{
    error_no_permission();
}
foreach($additionalgroups as $additionalgroup)
{
    if(!in_array($additionalgroup, $groups))
    {
        error_no_permission();
    }
} 
$template='<html>
<head>
<title>'.$pages['name'].'</title>
{$headerinclude}
</head>
<body>
{$header}
<table border="0" cellspacing="1" cellpadding="4" class="tborder">
<tr><td class="thead" colspan="5"><strong>{$lang->ban_banned}</strong></td></tr>
<tr>
<td class="tcat"><span class="smalltext"><strong>{$lang->username}</strong></span></td>
<td class="tcat"><span class="smalltext"><strong>{$lang->reason}</strong></span></td>
<td class="tcat"><span class="smalltext"><strong>{$lang->ban_bannedby}</strong></span></td>
<td class="tcat"><span class="smalltext"><strong>{$lang->start_date}</strong></span></td>
<td class="tcat"><span class="smalltext"><strong>{$lang->end_date}</strong></span></td>
</tr>
{$bannedtablerows}
</table>
{$footer}
</body>
</html>';

$template=str_replace("\'", "'", addslashes($template));

add_breadcrumb($pages['name']);

eval("\$page=\"".$template."\";");

output_page($page);

?>
MyBB has core functions for checking whether a user is a moderator.

if(is_moderator($mybb->user['uid'])
{
// allow
}
else
{
// deny
}

is_moderator()
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49