vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Including a user-created function file (https://vborg.vbsupport.ru/showthread.php?t=251383)

sheppardzwc 09-29-2010 11:44 PM

Including a user-created function file
 
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);
    }
}

?>


sheppardzwc 10-07-2010 01:25 AM

Ended up adding the function into the file itself, if anyone is looking for an answer to this. No idea why it does this only in the admincp, but it does. :(


All times are GMT. The time now is 03:53 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01008 seconds
  • Memory Usage 1,748KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (2)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete