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

    Audio RSS

    August 31, 2012

    Interviews: Audio – Trey Anastasio Talks Setlists, Phish Love and More w/ KBCO [Hidden Track]

    May 20, 2012

    Jon Fishman: Hug Your Farmer 05/18/2012 DAUD S. Burlington, VT

    March 13, 2012

    Trey: Concert Recap – Trey Anastasio w/ L.A. Philharmonic [Live Music Blog]

    January 7, 2012

    Podcasts: Mike Gordon & Apollo Project Live [WNYC]

    December 21, 2011

    Tom Marshall: @TomMarshall111 Shares Track Called Reach

    Reach by ThunderBurn

    December 7, 2011

    16 Years Ago: Phish 12/07/1995 Mike’s Song > Weekapaug Groove [VQ: N/A, AQ: A+]

    November 15, 2011

    Audio: Listen To This – Mike Gordon Debuts Sideways [Hidden Track]

    November 8, 2011

    Phish: Theme From The Bottom > Black-Eyed Katy from Hampton / Winston-Salem ’97

    Phish – Theme From The Bottom – Black Eyed Katy by yemblog

    October 27, 2011

    Audio: Sample Mike’s > Hydrogen > Weekapaug from Hampton / Winston-Salem ’97 [Hidden Track]

    May 13, 2011

    Audio: Live in Utica Split > Have Mercy > Piper > Split > Slave [OKP Blog]

    March 29, 2011

    Audio: Page McConnell Sits In w/ Particle – 2002 [Relix]

    March 1, 2011

    Trey Anastasio: 02/27/2011 Audio, Video and Setlist [The Barn]

    January 18, 2011

    Audio: Phish Originals Debuted in 2010 – A Mix [Oh Kee Pah Blog]

    December 14, 2010

    Fall ’97:  Fall ’97 Project Wrap-Up and Audio Comp. [OPT]

    November 22, 2010

    Audio: Stream (Another) Idea by Mike Gordon [Relix]

    July 6, 2010

    Summer Tour 2010: Setlists, Posters, Videos, Audio & Much More [Hidden Track]

    The first leg of Phish Summer Tour 2010 came to a close on Sunday night at the Verizon Wireless Amphitheatre in Alpharetta, GA. We’ll have plenty of recaps of all sorts over the next week, but for now we wanted to present “just the facts.” We’ve put together a list of every setlist (via Phish.net) and have detailed our favorite audio sources, videos, reviews and photo galleries from each of the 18 shows Phish has performed thus far in 2010.

    July 1, 2010

    Gearheads: And The Light Is Growing Brighter Now: The Most Detailed Photographic Documentation of Phish’s Live Setup Ever Published [Pro Audio Star]

    I’ve just returned from a 4 day excursion through the wilds of Hartford, CT and Saratoga Springs, NY following the reunited jamband empire that is Phish. If you’ve ever seen a Phish show, or heard anything about them, you know that they are grand achievements in both sound and lighting design, regardless of your opinion of the musical quality. In the next 48 hours, I’ll be posting an exclusive up-close photographic breakdown of their backline and front-of-house rigs, including all the instruments and effects they use, as well as all the gear that populates their legendary soundboard.

    June 6, 2010

    COMING SOON: YEMblog Shares Uncirculated Phish Audio – Here’s a CLUE

    We can’t wait for tour to kick off on Friday and to help raise the energy to a fevered pitch, we’ve got some must-hear audio that every Phish fan will want to add to their collection. Keep your eyes on this site for more information.

    April 30, 2010

    Phish 3D: AC/DC Bag Audio From The Movie [CoS]

    April 29, 2010

    Phish 3D: Exclusive Audio – Sleep Again From Phish 3D [CoS]

    October 30, 2009

    Festival 8: Festival 8 Soundcheck Setlist, Review & Audio [Hidden Track]

    The quartet originally took the stage in the early afternoon for an acoustic soundcheck that included Back On The Train and Let Me Lie that wasn’t broadcast, but around 9:45 The Bunny came alive with the sounds of Phish.

    After starting this “electric soundcheck” with an intense jam the group moved onto a typically funky version of the title track from 2004’s Undermind. Trey picked up on the similarities between Undermind and Mitch Rydell’s Devil With A Blue Dress and the rest of the band followed him for a quick run through the chorus and a half a verse of so.

    October 27, 2009

    Audio Post: Halloween Music – Summer ’95 [Phish Thoughts]

    Tweezer 6.8 > Bowie 6.13 > Mike’s 6.20 > Free 6.26 > Runaway Jim 6.16 > Bowie 6.29 > Bowie 7.3 > Tweezer 6.14 > Tweezer 6.28 > Tweezer 6.14 >  Mike’s 6.9 > Bowie 6.24 > Mike’s 6.30

    October 22, 2009

    Audio: Jamband Stalwarts Phish For New Live Sound [Press Release]

    October 19, 2009

    Songs: Adventures In The Freezer – An Audio Post [Phish Thoughts]

    In the vein of last week’s “Ambient Evolution” mix, today, I have spliced together a series of groove-era “Tweezer” jams – from 1997 to 2000 – in a 78-minute escapade,   “Adventures In The Freezer.”

    July 20, 2009

    Halloween: Let’s Pretend It’s 8PM, What Will Phish Play? [Hidden Track]

    The scenario is this: It’s October 31st at 8pm in wherever Phish will play their Save The Date festival. Phish has not announced what musical costume they are performing and they have not handed out playbills this year. Those banks of lights go down and it’s time for THE set. What’s it going to be?

    May 29, 2009

    Guests: An Audio History of Phish and DMB [Hidden Track]

    Love both bands, love one & hate the other, tolerate one & swear by the other, regardless of your allegiances there’s no denying the long history that Phish and the Dave Matthews Band share.