Thread: Mini Mods - [DBTech] User Spotlight v1 (vB3)
View Single Post
  #85  
Old 03-24-2011, 06:20 AM
SamirDarji SamirDarji is offline
 
Join Date: Apr 2004
Posts: 645
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Awesome! Thank you very much. I've run it a few times manually to see how it worked. Really sweet.

I was looking at the code and I noticed it's using 30 days for the month, which generally works, but I wanted to see if there was a way to get it to be precisely the number of days in a month. I found the date('t') function on php.net that seems like it will return the number of days in the current month which could be used to calculate the exact number of seconds in that month.

The only problem is that vb's cron doesn't have a setting to run at the end of the month. A quick google search came up with some exotic cron lines that I'm not familar with nor know how to implement. So the other option would be to execute the script in two different crons in vb, once for the end of the week, once for the first of the month, and if the script detects that it's running at the first of the month that's not the end of the week, subtract a day and then calculate the month via that time and determine the random user.

But the more I think about this, since the week or month would be executed separately in two different crons, maybe the script should just be croned to run daily and do its own end of week and end of month detection and execute accordingly. Then the cron variable is taken out of the picture.

So the whole body of the script could be two if statements. If today is last day of month, execute for last day of month and email. If today is last day of the week, excute for end of the week and email. If it doesn't fall into either loop, the cron will execute with no output. But looking at the structure of your cron, it's designed to execute both queries back to back from an array, so the main loop would change. Would it be too much to ask for this design change?

I've figured out that
Code:
if(date('j') == date('t'))
can be used to check eom and
Code:
if(date('N') == 7)
should be able to be used to check eow. But this research has taken me over an hour.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01199 seconds
  • Memory Usage 1,767KB
  • 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
  • (2)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