View Single Post
  #5  
Old 06-02-2003, 06:16 PM
mbaskett mbaskett is offline
 
Join Date: Jan 2002
Posts: 43
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for the feedback! Here's what I've currently got up and running, and it seems to run quite well. The only downside is that the FIRST person to view this page at the beginning of the week (Monday 12:01 AM) will have a few extra queries (6 total) in their page load, but other than that, it only adds one query on a regular basis.

PHP Code:
// Member of the week
$currentweek date(W);

$displayMOTW $DB_site->query_first("SELECT memberphoto.userid AS id,memberphoto.comments,memberphoto.body,memberphoto.highlights, 
                                    user.username,user.photonum,user.phototype 
                                    FROM memberphoto 
                                    LEFT JOIN user ON (user.userid=memberphoto.userid) 
                                    WHERE memberphoto.visible=1 AND memberphoto.displayweek='
$currentweek' AND displayed=-1"); 

// Check to see if there is an existing valid MOTW to be displayed
if ($displayMOTW) {
  
$motwid $displayMOTW['id'];
  
$motwbody $displayMOTW['body'];
  
$motwmods $displayMOTW['highlights'];
  
$motwusername $displayMOTW['username'];
  
$motwphoto "<img border=\"0\" alt=\"$motwusername's $displayMOTW[comments]\" src=\"memberpics/photo$displayMOTW[id]_$displayMOTW[photonum].$displayMOTW[phototype]\">"

  eval(
"\$motw = \"".gettemplate('home_motw')."\";");
} else {

  
//setting all expired MOTW to displayed status
  
$DB_site->query_first("UPDATE memberphoto SET displayed=1 WHERE displayed=-1 AND displayweek<>$currentweek");

  
//count the number of remaining candidates to select from
  
$candidates=$DB_site->query("SELECT COUNT(*) AS count FROM memberphoto WHERE visible=1 AND displayed=0");

  
//check to make sure there are candidates available, if not, reset everyone
  
if ($candidates[count] == 0) {
    
$DB_site->query("UPDATE memberphoto SET displayed=0");
  }
  
//Pick new MOTW
  
$newMOTW $DB_site->query_first("SELECT memberphoto.userid AS id,memberphoto.comments,memberphoto.body,memberphoto.highlights,
                    user.username,user.photonum,user.phototype
                    FROM memberphoto 
                    LEFT JOIN user ON (user.userid=memberphoto.userid)
                    WHERE memberphoto.visible=1 AND displayed=0 ORDER BY RAND() LIMIT 1"
);
  
$motwid $newMOTW['id'];
  
$motwbody $newMOTW['body'];
  
$motwmods $newMOTW['highlights'];
  
$motwusername $newMOTW['username'];

  
$motwphoto "<img border=\"0\" alt=\"$motwusername's $newMOTW[comments]\" src=\"memberpics/photo$newMOTW[id]_$newMOTW[photonum].$newMOTW[phototype]\">"

  
$DB_site->query_first("UPDATE memberphoto SET displayed=-1, displayweek='$currentweek' WHERE userid='$motwid'");

  
//Display the Member of the week
  
eval("\$motw = \"".gettemplate('home_motw')."\";");

Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02163 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
  • (1)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