I was going to make a huge ban mod from this but I'll just release it here because I know I would have loved to have seen this here.
Some serious props to BamaStangGuy for helping me a great deal with this and putting up with my stupidity. BamaStangGuy probably came up with most of this code, I just had the idea. If you want me to remove this I will BamaStangGuy.
php file
PHP Code:
<?php
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'ban'); // change this depending on your filename
// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array(
);
// get special data templates from the datastore
$specialtemplates = array(
);
// pre-cache templates used by all actions
$globaltemplates = array(
'BAN',
);
// pre-cache templates used by specific actions
$actiontemplates = array(
);
// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################
$navbits = array();
$navbits[$parent] = 'Ban Page';
$navbits = construct_navbits($navbits);
// Count the total bans
$totalbans = $db->query_first_slave("
SELECT COUNT(userid) AS bans
FROM userban
");
//Count the current active bans
$activebans = $db->query_first_slave("
SELECT COUNT(userid) AS activebans
FROM userban
WHERE usergroupid = 2
");
//Display banned users
$bannedusersarray = array();
$bannedusers = $db->query_read("SELECT userid FROM userban");
$bannedusersarray = $db->fetch_array($bannedusers);
// Get Latest Bans
$result_data = $vbulletin->db->query_read("
SELECT
ban.userid,
ban.usergroupid,
ban.adminid,
ban.liftdate,
ban.reason,
user.username
FROM userban AS ban
LEFT OUTER JOIN user AS user
ON user.userid = ban.userid
");
while( $data = $db->fetch_array($result_data) )
{
$banusername = $data['username'];
eval('$bannedusers .= "' . fetch_template('BAN_mainbits') . '";');
}
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('BAN') . '");');
?>
Here is the "BAN" template
Code:
<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
<tr>
<td class="tcat"><center>Here's the banlist. Don't do what these people did.</center></td>
</tr>
<tr>
<div style="margin: 0px auto; margin-top: 20px; margin-bottom: 20px; font-size: 40px; font-weight: bolder; width: 600px; text-align: center;">$activebans[activebans] ACTIVE BANS<br/><small>$totalbans[bans] total bans</small></div>
<td class="alt1">
<table class="tborder" cellpadding="5" cellspacing="0" width="100%" border="0" align="center">
<tr>
<td class="tcat" colspan="4">Latest Bans</td>
</tr>
<tr>
<td class="thead" width="25%"><center>Username</center></td>
<td class="thead" width="2%">Current Usergroup</td>
<td class="thead" width="25%"><center>Banned By</center></td>
<td class="thead" width="25%"><center>Ban Lift</center></td>
<td class="thead" width="25%"><center>Reason</center></td>
</tr>
$bannedusers
</table>
</td>
</tr>
</table>
$footer
</body>
</html>
and here is BAN_mainbits
Code:
<tr>
<td class="alt1" width="25%" align="center"><span class="smallfont">$banusername</span></td>
<td class="alt2" width="25%" align="center"><span class="smallfont">$data[usergroupid]</span></td>
<td class="alt2" width="15%" align="center"><span class="smallfont">$data[adminid]</span></td>
<td class="alt1" width="25%" align="center"><span class="smallfont">$data[liftdate]</span></td>
<td class="alt2" width="25%" align="center"><span class="smallfont">$data[reason]</span></td>
</tr>