View Single Post
  #7  
Old 07-26-2014, 10:26 PM
Dax IX Dax IX is offline
 
Join Date: Jul 2005
Posts: 153
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks everyone for their help!

I have it working MUCH more simply now, thanks to suggestions here.

Yes, ordinarily it would be AND, but in this case, while I'm testing some things, it's OR.

Age will be a big factor in what I'm working on, used on several pages, therefore I wanted to do it as a function, which I now have.

PHP Code:
function calculate_age($userinfo)
{    
    global 
$vbulletin;
    
    if (!isset(
$vbulletin->userinfo['birthday']))
    {
        return 
false;        
    } else {
        
$bday explode('-'$vbulletin->userinfo['birthday']);
        
$bday $bday[2] . '-' $bday[0] . '-' $bday[1];
        
$age floor( (strtotime(date('Y-n-j')) - strtotime($bday)) / 31536000);
        return 
$age;
    }

And I have my permissions code:
PHP Code:
$age calculate_age($userinfo);

// access permissions
if ((!is_member_of($vbulletin->userinfo567)) OR ($age 18))
{
// give no permission unless in usergroup x, y, or z
        
print_no_permission();

Thanks again, all!

The only thing I'm confused about now is why I can't seem to use $userinfo['birthday'] instead of $vbulletin->userinfo['birthday'] in my function file.

If it's not to much to ask, what is the explanation of that?

--------------- Added 27 Jul 2014 at 15:22 ---------------

Stupid question. I just figured it out.

--------------- Added 27 Jul 2014 at 15:57 ---------------

Even better age code, borrowed from class_userprofile.php and modified to fit:

PHP Code:
function prepare_age($userinfo)
{
    global 
$vbulletin;
    
    
$userinfo $vbulletin->userinfo;
    
$userid $userinfo['userid'];

    
$age '';

    if (
$userinfo['birthday'])
    {
        
$bday explode('-'$userinfo['birthday']);

        
$year vbdate('Y'TIMENOWfalsetruetruefalse$userid);
        
$month vbdate('n'TIMENOWfalsetruetruefalse$userid);
        
$day vbdate('j'TIMENOWfalsetruetruefalse$userid);
        if (
$year $bday[2] AND $bday[2] != '0000')
        {
            
$age $year $bday[2];
            if (
$month $bday[0] OR ($month == $bday[0] AND $day $bday[1]))
            {
                
$age--;
            }
        }
    }
    
    return 
$age;

Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01163 seconds
  • Memory Usage 1,806KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete