Hey guys,
While working on a mod I'm adding an AdminCP centre and when I include my seperate function file (just a few simple functions to make things look cleaner in the frontend code) before or after global, the buttons don't have their default "Reset" values and some other things don't work right either. Am I doing something wrong here? It's basically:
require_once('global.php');
require_once(DIR . '/includes/myfunctionfile.php');
or
require_once('../includes/myfunctionfile.php');
require_once('global.php');
But it still has the problem. Any ideas? When I comment out my function file, the buttons show the right "Reset" value.
my_function_file.php
PHP Code:
<?php
require_once('global.php');
/*
* add_bcd_award
* Adds an award to the specified user.
* @var integer userid
* @var long time for the award to be updated/added
* @var boolean new = true, update = false
*
*/
function add_bcd_award($userid, $time, $mode) {
global $vbulletin;
$bcdgroup = $vbulletin->options['bcd_award_usergroupid'];
if (time() <= $time) {
if ($mode) {
$user = $vbulletin->db->query_first("SELECT usergroupid,membergroupids FROM " . TABLE_PREFIX . "user WHERE userid='$userid'");
$usergroup = $user['usergroupid'];
$membergroup = $user['membergroupids'];
if ($usergroup == '2') {
if (strlen($membergroup) == 0) {
$groups = $bcdgroup;
} else {
$groups = $membergroup . ',2';
}
}
$vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET usergroupid='$bcdgroup', membergroupids='$groups', bcdaward='1', bcdawardtime='$time' WHERE userid='$userid'");
} else if (!$mode) {
$vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET bcdawardtime='$time' WHERE userid='$userid'");
}
} else {
trigger_error('Your specified time is not higher than today', E_USER_ERROR);
}
}
/*
* has_bcd_award
* Checks to see if a user, indeed, has an award.
* @var string userid
* @ret boolean true if they do, false if they don't
*
*/
function has_bcd_award($userid) {
global $vbulletin;
if ($vbulletin->db->num_rows($vbulletin->db->query_read("SELECT userid FROM " . TABLE_PREFIX . "user WHERE bcdaward='1' AND userid='$userid'")) == 1) {
return true;
} else {
return false;
}
}
/*
* remove_bcd_award
* Removes a BCD award and sets the user back to their default usergroup.
* @var integer userid
*
*/
function remove_bcd_award($userid) {
global $vbulletin;
$bcdgroup = $vbulletin->options['bcd_award_usergroupid'];
if (has_bcd_award($userid)) {
$user = $vbulletin->db->query_first("SELECT usergroupid,membergroupids FROM " . TABLE_PREFIX . "user WHERE userid='$userid'");
$usergroup = $user['usergroupid'];
$membergroup = $user['membergroupids'];
if ($usergroup == $bcdgroup) {
if (strlen($membergroup) == 1) {
$membergroup = str_replace('2', '', $membergroup);
} else if (strpos($membergroup, ',2,') !== false) {
$membergroup = str_replace(',2,', ',', $membergroup);
} else if (strpos($membergroup, ',2') !== false) {
$membergroup = str_replace(',2', '', $membergroup);
}
} else {
trigger_error('The user you are altering has a malformed member group string. (or they aren\'t a registered user anymore) Refer to the "Repair" AdminCP option.', E_USER_ERROR);
}
$vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET usergroupid='2', membergroupids='$membergroup', bcdaward='0', bcdawardtime='' WHERE userid='$userid'");
} else {
trigger_error('This user has no award!', E_USER_ERROR);
}
}
?>