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"; } } ?> ACL | YEMblog

    ACL RSS

    October 13, 2010

    Phish: 10/08/2010 Possum [VQ: B, AQ: B]

    YouTube Preview Image

    October 10, 2010

    ACL Fest: 2010 So-Far Superlatives [Dallas Observer]

    Most Nostalgic: Phish.
    Seriously, Phish fans, you guys are older than I thought. Sweet tie-dye, though. And thanks for all of your high fives.

    Phish: 10/08/2010 …Cavern, First Tube [VQ: B+, AQ: B+]

    YouTube Preview Image

    Phish: 10/08/2010 DAUD Austin, TX

    October 9, 2010

    Austin City Limits: A Festie Set [Phish Thoughts]

    Phish: 10/08/2010 Chalkdust Torture [VQ: B, AQ: B-, CK5]

    YouTube Preview Image

    Phish: 10/08/2010 LivePhish SBD Austin, TX

    ACL: Gallery –  Phish @ Austin City Limits (Click “Photo”) [KXAN]

    Austin City Limits: Zack’s Take on Phish @ ACL, Andy’s Take [Festival Crashers]

    Overall: 9.7/10: Couldn’t have imagined a much better set list, everyone was on and there was something pretty cool about seeing Phish through the eyes of a bunch of noobz. Trey was as masterful with his tone and solos as ever, Mike got dirty with his bass solos and gave a standout performance while Page more than held it down on keys, he was a force. I can’t say I noticed much that Fishman did, but they sounded tight, so credit him with that. Texans can only hope we get more Phish soon.

    October 8, 2010

    ACL: Phish Austin City Limits Music Festival Setlist [Hidden Track]

    Follow @YEMblog For Updates Live From Austin

    Phish: 10/07/2010 Burn That Bridge Soundcheck [VQ: N/A, AQ: B]

    YouTube Preview Image

    ACL: Phish Tries Out a New Song at Soundcheck [Jambands]

    October 7, 2010

    ACL: Parsing Numbers w/ C3’s Corbin [Austin360]

    We’ve had (Phish leader) Trey Anastasio before and always wanted Phish since they do really well in the northeast and different pockets all over. They packed the Coachella site on their own for a show they did out there and I think they’re totally right for what we’re trying to do here since we started with String Cheese Incident the first year of the festival. Phish haven’t been to Texas in I don’t know how many years, so I don’t see them as just a Bonnaroo band.