Michael Heilemann.
If you have Dunstan's Time Since installed, this plugin uses it for the title="" attributes on the comments and posts. (For WordPress 1.5) Author: Brian Meidell Author URI: http://meidell.dk/ Version 1.5: Now works without LOCK TABLE and CREATE TEMPORARY TABLE priviledges. Version 1.5.1: Can't remember what I did here Version 1.5.2: Fixed count select statement to not include spammy comments Version 1.5.3: Properly excludes track- and pingbacks Version 1.5.4: Excludes posts that are not published, even if they have comments Version 1.5.5: Fade old comments, fixed bug that wreaked havoc with Time Since Version 1.5.6: Bugfix from Jonas Rabbe (http://www.jonas.rabbe.com/) pertaining to timesince Version 1.5.7: Bugfix so old colors can be darker than new colors (stupid oversight), thanks to http://spiri.dk for spotting it. Bugfix where single digit hex would cause invalid colors, thanks to http://www.wereldkeuken.be/ for the fix. Version 1.5.8: Updated to work with WordPress 2.1 alpha by M. Heilemann. */ function blc_latest_comments($num_posts = 5, $num_comments = 6, $hide_pingbacks_and_trackbacks = true, $prefix = "
  • ", $postfix = "
  • ", $fade_old = true, $range_in_days = 10, $new_col = "#444444", $old_col = "#cccccc") { global $wpdb; function clamp($min, $max, $val) { return max($min,min($max,$val)); } $usetimesince = function_exists('time_since'); // Work nicely with Dunstan's Time Since plugin (adapted by Michael Heilemann) // This is compensating for the lack of subqueries in mysql 3.x // The approach used in previous versions needed the user to // have database lock and create tmp table priviledges. // This uses more queries and manual DISTINCT code, but it works with just select privs. if(!$hide_pingbacks_and_trackbacks) $ping = ""; else $ping = "AND comment_type<>'pingback' AND comment_type<>'trackback'"; $posts = $wpdb->get_results("SELECT comment_post_ID, post_title FROM ($wpdb->comments LEFT JOIN $wpdb->posts ON (comment_post_ID = ID)) WHERE comment_approved = '1' AND $wpdb->posts.post_status='publish' $ping ORDER BY comment_date DESC;"); $seen = array(); $num = 0; if($fade_old) { $max_time = $range_in_days * 24 * 60 * 60 ; $r_new = hexdec(substr($new_col, 1, 2)); $r_old = hexdec(substr($old_col, 1, 2)); //$r_min = min($min, $max); //$r_max = max($min, $max); $r_range = ($r_old-$r_new); $g_new = hexdec(substr($new_col, 3, 2)); $g_old = hexdec(substr($old_col, 3, 2)); //$g_min = min($min, $max); //$g_max = max($min, $max); $g_range = ($g_old-$g_new); $b_new = hexdec(substr($new_col, 5, 2)); $b_old = hexdec(substr($old_col, 5, 2)); //$b_min = min($min, $max); //$b_max = max($min, $max); $b_range = ($b_old-$b_new); } // print "ranges: $r_range, $g_range, $b_range
    "; // print "r: ".(0.5*$r_range+$r_new)."
    "; foreach($posts as $post) { // The following 5 lines is a manual DISTINCT and LIMIT, // since mysql 3.x doesn't allow you to control which way a DISTINCT // select merges multiple entries. if(array_key_exists($post->comment_post_ID, $seen)) continue; $seen[$post->comment_post_ID] = true; if($num++ > $num_posts) break; $commenters = $wpdb->get_results("SELECT *, UNIX_TIMESTAMP(comment_date) AS unixdate FROM $wpdb->comments WHERE comment_approved = '1' AND comment_post_ID = '".$post->comment_post_ID."' $ping ORDER BY comment_date DESC LIMIT $num_comments;"); $count = $wpdb->get_var("SELECT COUNT(comment_ID) AS c FROM $wpdb->comments WHERE comment_post_ID = $post->comment_post_ID AND comment_approved = '1' ".$ping); $i = 0; $link = get_permalink($post->comment_post_ID); if($usetimesince) $title = " title=\"Last comment was ".time_since($comment->unixdate)." ago\""; else $title = ""; echo $prefix."".stripslashes($post->post_title). "  ".$count."
    \n"; foreach($commenters as $commenter) { if($usetimesince) $title = " title=\"Posted ".time_since($commenter->unixdate)." ago\""; if($fade_old) { $diff = time() - $commenter->unixdate; $r = round($diff/$max_time*($r_range))+$r_new; $r = clamp(min($r_new, $r_old), max($r_new, $r_old), $r); $g = round($diff/$max_time*($g_range))+$g_new; $g = clamp(min($g_new, $g_old), max($g_new, $g_old), $g); $b = round($diff/$max_time*($b_range))+$b_new; $b = clamp(min($b_new, $b_old), max($b_new, $b_old), $b); $r_hex = str_pad(dechex($r), 2, '0', STR_PAD_LEFT); $g_hex = str_pad(dechex($g), 2, '0', STR_PAD_LEFT); $b_hex = str_pad(dechex($r), 2, '0', STR_PAD_LEFT); $colstr = " style=\"color: #".$r_hex.$g_hex.$b_hex.";\""; } if($i++ > 0) echo ", "; echo "comment_ID."\"$title>".stripslashes($commenter->comment_author).""; } if($count > $num_comments) echo " [...]"; echo "".$postfix."\n"; } } ?> @YEMblog Twitter Updates for 2010-10-11 | YEMblog
    • Be sure to get your "Pick Three" choices in on our Facebook page for a chance to win a set of bobbles http://facebook.com/yemblog #phish #
    • HT's Ryan Dembinsky chats with Phish-loving Pitchfork scribe @robmitchum for the latest Writer's Workshop http://bit.ly/b32IJ2 #phish #
    • Again, thanks so much to @fractalgal for the amazing job at the benefit. And @zzyzx for last night. Felt like i was there, wish I were! #
    • Check… Check… 1..2… @tourtweet hot live as your YEMblog guest tweeter. Thanks Scotty n the other aweome guest tweeters. Good stuff! #
    • Today on YEMblog: Links to audio, video, local and fan coverage of the tour opener http://yemblog.com #phish #
    • Here's Jonathan Kosakow's review of last night's #phish show for Hidden Track http://j.mp/bX3WHy #
    • Great work by @zzyzx last night from the tour opener. @tourtweet takes over for the next two shows. Thanks for following! #
    • Hope you enjoyed this installment of math geek tweeting #
    • 6:02. End enc #
    • Nice peak! #
    • Enc loving cup #
    • You can't cross out a tweet :) #
    • And writing a note on s clipboard #
    • Even if I learned that there's a difference between tweeting #
    • Throw in silliness and a debut and that's a set #
    • Highlights were the ghost and slave #
    • Trey holds up megaphone before bowing. #
    • 76:34 end set #
    • Hot version but everyone says that about every version #
    • 10/10 II: Mike's > Simple > Ghost > Paug, Fee > Maki, My Problem Right There > Maki > Slave, SDesign, Julius http://bit.ly/9CamHL #phish #
    • 68;00> Julius #
    • 65:03 strange design #
    • 64:51 ends #
    • Sorry Mel. I'm leavng you for this version of slave! #
    • !! #
    • Stunning. Just stunning #
    • Slaves this year have Been almost achingly beautiful. #
    • Broomfield1 Set 2: Mike's > Simple > Ghost > paug, Fee > Makisupa, My Problem Right There > Policeman > Slave http://bit.ly/9CamHL #phish #
    • 54:18 pretty jam> 54:31 slave. #
    • 53:32 > maki (as promised) #
    • 51:36 there's a Jan that immediately stops and becomes snoring. #
    • 49:25 #
    • That's how I like it #
    • New song about policeman #
    • 48:56 #
    • Nd then I reached over and handed him some dank #
    • Policeman came over I asked him for his rank #
    • Woke up this afternoon and I turned on the mace #
    • Woke up this morning alien on my face #
    • Really thought it was going to be tmwsiy. #
    • Trey getting feedback with megaphone in intro #
    • >44:15 maki #
    • Waving the megaphone some more #
    • Trey is playing a tmwsiy intro #
    • 42:35 jam #
    • My wife's first one since her first show 16 years ago #
    • A little sloppy lyrically but so much fun! #
    • Broomfield1 Set 2: Mike's > Simple > Ghost > Weekapaug, Fee http://bit.ly/9CamHL #phish #
    • 37:33 fee! #
    • Trey is waving megaphone. #
    • Megaphone!!! #
    • 36:44 ends. That was Fun :) #
    • 34:23 speeds up now. More standard week #
    • The ghost jam has kind of effected the weekapaug. #
    • Jam @ 31:49 #
    • A LOT happened in that 15 minutes of ghost! #
    • 30:14 > weekapaug. #
    • Abandoned for #
    • 29:39. Bowie hi hat #
    • 28:11 quiet fast and spacey. Very very good version!! #
    • Fight bell!! #
    • 27:12 very cool effects from page. Sound like low rider again #
    • 26:18 bottom drops out into a groove jam. #
    • 25:28 kind of fast spacey here. Interesting combo. Very nice version #
    • Some minor envelope filter for mike perhaps. #
    • 24:12 hitting a peak. #
    • 23:08 tempo picks up a little. #
    • 21:52 shuffly jam has a low rider kind of feel. #
    • Then mike echoed it #
    • Trey and mike just did neat thing where t played riff a few times #
    • Mike is playing beautifully here #
    • Jam @ 18:33 #
    • Broomfield1 Set 2: Mike's > Simple > Ghost http://bit.ly/9CamHL #phish #
    • 14:54 > ghost. #
    • 14:10. Leaving simple riff #
    • 13:40 very pretty #
    • Jam @ 12:08 #
    • I miss the anarchistic proto-song that simple was in summer 94 #
    • 8:16 > simple #
    • 7:14. Halftime. Riff. Of couse they never finish this sing anymore. #
    • Solid jam. Pretty intense. #
    • Jam @ 2:45. Glowsticks #
    • Fingers crossed for interesting sandwich. #
    • Mikes. #
    • Lights. A bit longer break. 35 m #
    • Here it's prob false alarm. #
    • Putting out sheets of paper on stage. In 2.0 would mean new song #
    • Just realized that the only ones who would get Golgi joke are at the show. #
    • Broomfield1: Chalkdust, Ocelot, It's Ice > Bouncin', Funky Bitch, AC/DC Bag > NICU > Moma > Horn, Stash, Golgi http://bit.ly/9CamHL #phish #
    • 74:39 end set #
    • "I saw you with a seat locator receipt in your hand" doesn't have same zing #
    • Odd call at a paperless ticket show #
    • 69:49 end song. 70:03 Golgi #
    • 69:22 mike!!! Great riff at the end of the jam #
    • 67;40. Fast, melodic. Nice! #
    • 65:40. Jam starts to get interesting. #
    • Jam @ 64:17 #
    • Trey varied the stash riffs throwing off the clap. #
    • Broomfield1: Chalkdust, Ocelot, It's Ice > Bouncin', Funky Bitch, AC/DC Bag > NICU > Moma > Horn, Stash http://bit.ly/9CamHL #phish #
    • 58:42 stash #
    • Mike Trey decide on… #
    • Chatting amongst themselves. #
    • 57:17 end 5 #
    • Feels a bit off. Not a trainwreck just off. #
    • 53:38 > horn #
    • I probably shouldn't use my own song titles here should I? Moma dance #
    • 45:15 > muppet dance. #
    • Broomfield1: Chalkdust, Ocelot, It's Ice > Bouncin', Funky Bitch, AC/DC Bag > NICU http://bit.ly/9CamHL #phish #
    • 40:01> nicu #
    • 33:08 end. Kicked things up a notch. 33:20 ac/dc #
    • I love mikes vocal games in 3.0 versions. #
    • Broomfield1: Chalkdust, Ocelot, It's Ice > Bouncin', Funky Bitch http://bit.ly/9CamHL #phish #
    • 27:28. End. 27:39 funky bitch #
    • 23:52 > bouncing #
    • (ok ice doesn't really jam but the part before the final build) #
    • 21:25 more very cool page riffs at beginning of jam part #
    • It's the little things sometimes. Nice page fill b4 final chorus #
    • Broomfield1: Chalkdust, Ocelot, It's Ice http://bit.ly/9CamHL #phish #
    • 15:59 end song. 16:18. It's ice #
    • Jam @ 11:43 #
    • Slow and funky #
    • 7:36. Ocelot. #
    • 6:54 ends. #
    • Hits nice peak. #
    • Chalk dust. Thought I had avoided this after acl #
    • Lights #
    • For whatever reason the mens room have LONG lines and the women's none. #
    • Inside and ready to go! Thank you Richard for the ticket! #
    • Yesterday there was tons of free parking. Today those streets are blocked :( #

    Post a Comment

    You must be logged in to post a comment.