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

    2005 RSS

    February 1, 2012

    Trey Anastasio: 70 Volt Parade 08/10/2005 New Source Chicago, IL

    October 25, 2011

    Trey Anastasio: Tibet House 02/09/2005 DAUD New York, NY

    March 15, 2011

    Trey and Mike: Serialpod 12/17/2005 New Source DAUD Asheville, NC

    February 17, 2011

    Interviews: Trey Anastasio Audio Interview 11/25/2005 FLAC

    February 9, 2011

    Trey Anastasio: 70 Volt Parade 11/19/2005 DAUD Wallingford, CT

    January 24, 2011

    Cactus: Mike Gordon & Leo Kottke 09/16/2005 ENTIRE SHOW [VQ: A-, AQ: A-]

    YouTube Preview Image

    January 16, 2011

    Trey Anastasio: 70 Volt Parade 11/14/2005 DAUD Princeton, NJ

    My personal favorite Trey ’05 show, this night found hired hands Les Hall and Skeeto Valdez playing above their heads and contained an acoustic interlude with Tom Marshall after a period where Anastasio decided to write lyrics himself. If you don’t hate the Shine material, be sure to give this show a spin. – ScottyB

    January 12, 2011

    Cactus: Leo and Mike 10/28/2005 DAUD Boston, MA

    December 13, 2010

    Interviews: 09/28/2005 Trey Anastasio FLAC

    November 19, 2010

    Trey Anastasio: 70 Volt Parade 05/03/2005 DAUD Columbia, SC

    November 14, 2010

    Trey Anastasio: 70 Volt Parade 11/14/2005 DAUD UNCIRCULATED Princeton, NJ

    October 18, 2010

    Cactus: Leo Kottke & Mike Gordon 07/03/2005 FOB Quincy, CA

    July 22, 2009

    Trey Anastasio: 70VP 12/31/2005 DAUD New York, NY

    July 16, 2009

    Serialpod: 12/17/2005 DAUD UNCIRCULATED Asheville, NC

    June 23, 2009

    Trey Anastasio: 12/07/2005 FOB Los Angeles, CA

    June 5, 2009

    Trey Anastasio: 12/03/2005 DAUD San Francisco, CA

    May 11, 2009

    Trey Anastasio: 11/19/2005 DAUD Wallingford, CT

    May 6, 2009

    Trey Anastasio: 11/16/2005 DAUD Boston, MA

    May 4, 2009

    Trey Anastasio: 11/15/2005 FM Philadelphia, PA

    May 1, 2009

    Trey Anastasio: 11/14/2005 DAUD Princeton, NJ

    April 28, 2009

    Trey Anastasio: 11/11/05 DAUD Utica, NY

    April 22, 2009

    Trey Anastasio: 11/10/2005 DAUD Buffalo, NY

    April 16, 2009

    Trey Anastasio: 11/08/2005 DAUD New York, NY

    March 31, 2009

    Trey Anastasio: 08/10/2005 DAUD Chicago, IL

    March 27, 2009

    Trey Anastasio: 08/07/2005 DAUD Cleveland, OH

    March 26, 2009

    Trey Anastasio: 08/06/2005 DAUD Wantagh, NY

    March 24, 2009

    Trey Anastasio: 08/05/2005 DAUD Philadelphia, PA

    March 23, 2009

    Trey Anastasio: 08/04/2005 DAUD Boston, MA

    January 27, 2009

    70 Volt Parade: 04/27/2005 DAUD Nashville, TN

    December 17, 2008

    70 Volt Parade: 10/28/2005 DAUD Las Vegas, NV

    November 17, 2008

    Mike and Leo: 10/16/2005 Rings

    YouTube Preview Image

    November 16, 2008

    Mike and Leo: 10/16/2005 Twist

    YouTube Preview Image

    Mike and Leo: 10/16/2005 Ya Mar

    YouTube Preview Image

    Mike and Leo: 10/16/2005 Sweet Emotion

    YouTube Preview Image