View Single Post
  #6  
Old 09-03-2012, 01:44 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The "else" in the code I posted was the case where there was no last meeting date entered in either field (or the format was invalid or something like that). If in that situation you want it to display the "overdue" message, then you could use something like this:

Code:
$field1 = "2005-09-02";
$field2 = "2005-09-02";

$last_meeting = strtotime($field1);
if (($t = strtotime($field2)) AND ($t > $last_meeting))
{
    $last_meeting = $t;
}
if ($last_meeting)
{
    $days_left = intval(365 - ((time() - $last_meeting) / 86400)) + 1;
}
if (!isset($days_left) OR $days_left < 0)
{
   $days_left= "Overdue";
}
return  $days_left;

A couple other things I should mention - because it uses timestamps, if there is a "leap day" between the last meeting day and today, that will add an extra day (i.e. it will show their membership as expiring one day earlier). And the "+ 1" at the end of the calculations rounds up, so that if there is a fraction of a day left it will show as 1 day. If you'd rather have a fraction show as 0 (have it say "0 days left" on their last day) you could remove the + 1. Also, this may mean that you want the condition to be "< 1" instead of "< 0" to display the overdue message.

Also, you'll probably want to remove the $field1 and $field2 variables and replace them with $vbulletin->userinfo['fieldX'] and $vbulletin->userinfo['fieldY'] (where X and Y are the numbers of your custom fields).

One more thing - if you're using a PHP type forum block, you probably need to set the "Cache Time" to 0 for it to work correctly.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01076 seconds
  • Memory Usage 1,765KB
  • 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
  • (1)bbcode_code
  • (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