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

    Photos RSS

    August 25, 2012

    San Francisco: A Brief Review (and Photos) of a Triumphant Trilogy [Honest Tune]

    August 22, 2012

    Photos: We’ll Do It Live – Great Shots of Phish in San Francisco [Dirty Impound]

    June 20, 2012

    Photos: Picture Show – A Fun Tucking Night in Portsmouth [Hidden Track]

    June 8, 2012

    Photos and Videos: Phish Worcester – DCU Center – Night One [Hidden Track]

    March 24, 2012

    Cactus: Amsterdam – Jam In The Dam – Day 1 – Photos & Review [Bouncing Around Euroom]

    March 13, 2012

    Rare Photo: Trey Anastasio – Seis De Mayo Outtake [Scott Lenhardt]

    February 10, 2012

    Photos: Trey Anastasio w/ Atlanta Symphony Orchestra [Honest Tune]

    February 1, 2012

    NYCers: Phish Fans Needed For Photo Shoot [PhanArt]

    January 5, 2012

    Photos: Phish Played Four New Year’s Week Shows [Brooklyn Vegan]

    December 29, 2011

    Photos & Reviews: Picture Show – Phish MSG Night One [Hidden Track]

    [Photo by Michael Stein]

    Photos: Phish @ Madison Square Garden [MetroMix]

    December 19, 2011

    Photos: Trey Anastasio & Others Joined The National at Beacon [Brooklyn Vegan]

    November 15, 2011

    Cactus: Photos – Mike Gordon in Portsmouth [Travels and Bacon]

    September 19, 2011

    Essex: Picture Show – A Phish Homecoming [Hidden Track]

    September 15, 2011

    Essex: Phish Returns to Green Mountain State [Hidden Track]

    [Photo by Parker Harrington]

    In an extraordinarily low-key pre-show parking lot scene that was more akin to a family picnic than a rock show or typical Phish event, warm embraces and friendly conversation prevailed. Seemingly, most of the 8,000 tickets sold in Vermont stayed with Green Mountain Staters. The fairgrounds certainly felt like the local hometown show that it was. At the sole entrance to the venue, security and ticket takers greeted many of the incoming attendees by name. Regardless if they knew you or not, they were certainly more intent on welcoming you, smiling at you, and treating you to true Yankee hospitality than they were to bother with checking anything other than your ticket.

    September 7, 2011

    Denver: Night One Review and Photos [JamBase]

    September 4, 2011

    Denver: Photos and Review From Night Two [Reverb]

    September 3, 2011

    Photos: Phish Denver Photos from Dick’s Sporting Goods Park [Hidden Track]

    [Photos by Jason Woodside]

    Local Coverage: Photos and Review of Night One at Dick’s [Hey Reverb]

    Local Coverage: Photos of Phish at Dick’s Sporting Goods Park [MetroMix Denver]

    August 29, 2011

    Photos: Phish Festivals at Loring AFB Photo Retrospective [UMPI]

    August 22, 2011

    Chicago: Jason K’s Photos of Phish at UIC Pavilion [Jason Kaczorowski Photography]

    August 16, 2011

    Chicago: Phish Chicago UIC Pavilion – Photos [Hidden Track]

    [Photo by Joel Berk]

    Chicago: Photos of Phish at UIC by Justin Ward [Live Music Blog]

    Outside Lands: Phish Photos – Day One [The Audio Perv]

    August 11, 2011

    Lake Tahoe: Photos/Recap – Night One Phish [Live Music Blog]

    Lake Tahoe: Phish Sells Out Doubleheader Concerts [Examiner]

    August 10, 2011

    Hollywood Bowl: Phish Photos From The Bowl [Jason Kaczorowski]

    August 8, 2011

    The Gorge: Review and Photos – Phish Gorge [Hidden Track]

    August 6, 2011

    The Gorge: Photos / Recap Night One [Live Music Blog]

    August 1, 2011

    Watkins Glen: A Phourth of July with Phish [JambandsOnline]

    July 20, 2011

    Watkins Glen: Phish Super Ball IX Videos, Photos and Review [Lost In Sound]

    July 18, 2011

    Watkins Glen: Phish Super Ball IX Photo Set & Summary [PopMatters]

    July 17, 2011

    Photo Montage: Official Coventry Photographer Shares His Photos From Event

    July 15, 2011

    Watkins Glen: Review & Photos – Phish Super Ball IX [State of Mind]

    July 11, 2011

    Watkins Glen: Photos – Phish Super Ball IX [Live Music Blog]

    Watkins Glen: Photos From Saturday and Sunday [Phish and the Dead]

    July 6, 2011

    Watkins Glen: A Collection of Super Tweets/Photos From Super Ball IX [Hidden Track]

    July 5, 2011

    Watkins Glen: Review – Phish Gives Its Fans a Festival [NY Times]

    After Coventry, Phish broke up for four and half years before returning in 2009. That year it played a festival at the immaculately groomed Empire Polo Fields in Indio, Calif. (also the home of Coachella), but to many fans that felt a world away from the group’s Northeastern roots. So the mere fact of its return to the East Coast with a drama-free festival that was well planned and smoothly operated (and for which the weather cooperated superbly) felt like a much-needed victory.

    Watkins Glen: Super Ball IX Photos by Karina Rykman [Rage It Proper]

    Watkins Glen: Andy Hill’s Super Ball Photos – Day One, Day Two, Day Three [HT]

    Watkins Glen: Gallery – Phish @ Super Ball IX [Bands That Jam]

    Watkins Glen: Phish Restores Rock to Watkins Glen – Photos & Video [Gothamist]

    July 2, 2011

    Watkins GlenPhish Super Ball IX Photos by Andy Hill [Hidden Track]

    June 24, 2011

    Southern Run: Phish Cohesively Takes On The South [Honest Tune]

    June 21, 2011

    Photos: Phish Photos From Portsmouth [Hidden Track]

    [Photo by Kenny Pusey]

    Alpharetta: Review and Photos – Phish Alpharetta 2011 [JamBase]

    Photos: Picture Show – Phish in Raleigh [Hidden Track]

    [Photo by Brad Worsham]

    June 20, 2011

    Portsmouth: Photos – Phish Spends Father’s Day in Portsmouth [PilotOnline]

    June 16, 2011

    Columbia: A Good Sign – Review and Photos [Blanks & Postage]

    June 15, 2011

    Photos: Phish at Verizon Wireless Ampitheatre – Alpharetta [Tim Nowack]

    June 14, 2011

    Camden: Phish in Camden Review, Photos, Videos, Downloads [Live Music Blog]

    Overall, Phish’s Friday night performance in Camden was an uneven affair, with a few interesting highlights and lots of good energy, but lacking the flow and thematic improv we’ve all grown to love. It seems like the show mainly suffered from odd song selection and a general impatience when it came to jamming. And those two factors seem to me to be two of the most important in terms of deciding an average Phish show vs. an amazing one.

    June 13, 2011

    Columbia: Review and Photos – Phish Merriweather 6/11/2011 [Bands That Jam]

    Camden: Photos and Review – Phish Camden [Rage It Proper]

    June 9, 2011

    Cuyahoga Falls: Picture Show – Phish @ Blossom [Hidden Track]

    [Photo by Joe Ringus]

    Darien: Gallery of Fan Shots From Phish @ Darien [Buffalo.com]

    Darien: Photos From Phish Darien 06/08/2011 [Bands That Jam]

    Darien: Photos – Phish Fest at Darien Lake [The Daily News]

    June 8, 2011

    Photos: Phish Photos From The Midwest [Phish and the Dead]

    June 7, 2011

    Cincinnati: Abby Fox’s Photos From Riverbend [Bands That Jam]