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

    Charleston RSS

    March 9, 2011

    Accolades: Best Concert of 2010 [Charleston City Paper]

    November 11, 2010

    Charleston: The Night Phish Caught Fire [Phish Thoughts]

    November 5, 2010

    Phish: 10/16/2010 The Curtain With [VQ: B+, AQ: B+]

    YouTube Preview Image

    October 20, 2010

    Phish: Charleston Video Playlist [VQ: A-, AQ: A+, CK5]

    http://www.youtube.com/view_play_list?p=0EB6F54FE12F24AC

    Fluffhead, Sneakin’ Sally, Uncle Pen, Kill Devil Falls, Dirt, PYITE, Possum, Mexican Cousin, Down With Disease, My Friend, Bill Bailey, Joy, Number Line

    October 19, 2010

    Charleston: Phish – North Charleston Photos [Glide Magazine]

    Phish: 10/15/2010 Mexican Cousin [VQ: B, AQ: B]

    YouTube Preview Image

    Phish: 10/16/2010 Sand [VQ: B+, AQ: B]

    YouTube Preview Image

    October 18, 2010

    Photos: Phish Charleston Photos [Hidden Track]

    Phish: 10/15/2010 Bill Bailey w/ Dr. Jack McConnell [VQ: C, AQ: B-]

    YouTube Preview Image

    Phish: 06/26/1994 I SBD Uncirculated Charleston, WV

    Another ’94 soundboard pops into the digital realm with the release of the first set from Phish’s famed GameHoist show on bt.etree.org.

    Phish: 10/16/2010 Dirt [VQ: A-, AQ: A+, CK5]

    YouTube Preview Image

    October 17, 2010

    Charleston: Phish Jammed on a Family Affair [City Paper]

    Jack McConnell must be proud. If musicians play their best when their parents are watching, pianist Page McConnell stayed true to form on Friday night at the Coliseum, most notably during a mammoth key pounding session during a late second set “Suzy Greenberg.”

    Phish: 10/16/2010 Uncle Pen [VQ: C+, AQ: B]

    YouTube Preview Image

    Charleston: Review – Chucktown Throwdown [Phish Thoughts]

    Phish: 10/16/2010 Kill Devil Falls [VQ: B-, AQ:  B]

    YouTube Preview Image

    Phish: 10/16/2010 LivePhish SBD N. Charleston, SC

    Charleston: Phish Recap – Double Fisting [Coventry]

    Phish: 10/16/2010 DAUD N. Charleston, SC

    Phish: 10/16/2010 Sneakin’ Sally [VQ: B-, AQ: B]

    YouTube Preview Image

    Charleston: Phish Charleston Setlist & Recap – Night Two [Hidden Track]

    Phish: 10/16/2010 Also Sprach Zarathrustra [VQ: C, AQ: B+]

    YouTube Preview Image

    October 16, 2010

    Charleston: Lots of Songs, Lots of Surprises [WYDTCOYS]

    Phish: 10/15/2010 Bill Bailey w/ Dr. Jack McConnell [VQ: C+, AQ: B+]

    YouTube Preview Image

    Phish: 10/15/2010 LivePhish SBD N. Charleston, SC

    Charleston: Review – Jukebox Phish [Phish Thoughts]

    Phish: 10/15/2010 …Roses Are Free > My Friend [VQ: B-, AQ: B+]

    YouTube Preview Image

    Charleston: Phish Charleston Recap – Barely Legal [Coventry]

    Phish: 10/15/2010 DAUD N. Charleston, SC

    Phish: 10/15/2010 Character Zero [VQ: C+, AQ: B+]

    YouTube Preview Image

    Charleston: Dr. Jack McConnell Sits In With Phish [Jambands]

    October 15, 2010

    Charleston: Phish Charleston Setlist & Recap – Night One [Hidden Track]

    October 12, 2010

    Previews: Jam Giants Reel in a 2-Night Big One [City Paper]

    Every jam band aficionado has a Phish story. Mine began at summer camp with the first thing my cabin counselor said to me: “Have you heard of the band Phish?” By the week’s end, the whole cabin was ecstatically dropping to the ground and shaking á la Animal House‘s basement party when the “laugh and laughing fall apart” refrain of Phish’s “Sparkle” came on.

    August 25, 2010

    Previews: Phish to Visit Charleston in October [City Paper]

    April 29, 2010

    Phish: 06/26/1994 FOB Charleston, WV

    August 26, 2009

    Phish: 10/27/1996 DAUD UNCIRCULATED Charleston, SC

    February 13, 2009

    Phish: 06/26/1994 DAUD Charleston, WV

    September 26, 2008

    Phish: 10/27/1996 DAUD Charleston, SC