Thread: Profile Enhancements - Birthday Thread and PM generator
View Single Post
  #49  
Old 07-02-2011, 06:14 AM
AusPhotography's Avatar
AusPhotography AusPhotography is offline
 
Join Date: Nov 2007
Location: Hobart & Adelaide .au
Posts: 521
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I had a query by PM regarding when the greeting is posted...

The messages get posted ~4 hours after midnight of the person receiving the greetings timezone.
The idea being they get the greeting on the morning of their birthday.
Obviously subject to the vagaries of the cron job system.
As we have members across the planet this was an important idea.

The code that makes it happen is this...
Code:
// Get all possible birthdays today in members timezone after 4:00am members timezone	
// vBulletin formats birthday as mm-dd-yyyy (yyyy = 0000 is year if supressed)	
$birthdays_db = $vbulletin->db->query_read("SELECT userid, username, usergroupid, birthday, showbirthday, posts, timezoneoffset, 
	DATE_FORMAT(DATE_ADD(UTC_TIMESTAMP(), INTERVAL ((timezoneoffset - 4)*60) MINUTE), '%D of %M') AS BDisplay,
    (DATE_FORMAT(DATE_SUB(UTC_TIMESTAMP(), INTERVAL (timezoneoffset - 4) HOUR), '%Y') - SUBSTRING(birthday,7,4)) AS UserAge
	FROM " . TABLE_PREFIX . "user
	WHERE birthday LIKE DATE_FORMAT(DATE_ADD(UTC_TIMESTAMP(), INTERVAL ((timezoneoffset - 4)*60) MINUTE), '%m-%d%%')
	AND showbirthday > '1'
	AND usergroupid NOT IN (".$vbulletin->options['APbirthday_excludeug'].")
	AND userid NOT IN (SELECT " . TABLE_PREFIX . "ap_birthday.userid FROM " . TABLE_PREFIX . "ap_birthday)
");
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01598 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