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

    Jamtopia RSS

    March 16, 2010

    Summer Tour: Tickets, Dates, Info [Jamtopia]

    The 18 show early Summer leg finds Phish at 13 venues in the Midwest, East Coast, and South East including Blossom Music Center (141 shows), Hersheypark Stadium (143 shows), nTelos Wireless Pavilion in Portsmouth, VA (first-time), Finger Lakes Performing Arts Center (551 shows) and Walnut Creek (90 shows). The leg culminates on July 3rd & 4th at Verizon Wireless Amphitheatre at Encore Park in Alpharetta, GA (first-time).

    The 11 show late Summer leg goes from coast-to-coast at 5 different venues — starting off at the Greek Theatre in Berkely (696 shows) and ending at Jones Beach. This leg also includes two nights at the afore mentioned Town Park in Telluride as well as Deer Creek and Alpine Valley.

    February 25, 2010

    Telluride: Phish 2010 – Just Two Hurdles to Go [Jamtopia]

    About a week ago, a seemingly spammy twitter post broke the rumor of a possible Phish run on August 9th & 10th at the picturesque Town Park in Telluride, Colorado.

    Since then, the story has continued to pick up steam. It started with a cautiously optimistic radio segment on KOTO Community Radio discussing some of the hurdles standing in the way of Phish in Telluride, including among other concerns that the shows would immediately follow the 34th annual Telluride Jazz Celebration.

    February 10, 2010

    Movies: Phish Festival in 3D: Coming Soon [Jamtopia]

    Earlier today a page appeared on Ticketmaster that seems to finally confirm some great news: a theatrical release of a new Phish concert film.

    Assuming the word on the street is correct, this will be none other than Phish Festival 8 in 3D, which has been rumored since the run-up to Festival 8 and now has a rumored release date of some time in May of this year.

    December 6, 2009

    Phish MSG 2009: Setlists, Reviews, Video & More at Jamtopia

    December 3, 2009

    MSG: Setlists, Reviews, Videos and More From MSG [Jamtopia]

    October 30, 2009

    Festival 8: Setlists, Summary, Recap and More [Jamtopia]

    Game Fuckin’ On!

    After months of buildup with the map teaser and album teaser, Festival 8 is finally upon us.

    I’ll be updating this post throughout the weekend as time permits so stop by once in a while for random musings, photos, and of course Festival 8 setlists, audio and videos.

    October 14, 2009

    Contests: Win a Free Page McConnell Bobblehead [Jamtopia]

    October 13, 2009

    Festival 8: Phish Festival 8 Poster Gallery [Jamtopia]

    I love a good Phish poster, and with Festival 8 just weeks away some choice new prints are already hitting the scene. Watch the space below for a growing gallery of the best Festival 8 posters, memorabilia, and other nonsense.

    August 17, 2009

    Stats: Phish Statistics Visualized – Summer Tour 2009 [Jamtopia]

    Last night Phish played the final show of their 2009 Summer Tour, a two-leg romp around the country that included 27 shows. To help make sense of it all, I used data from ZZYZX and Phish.com to create some statistical visualizations using tiny little graphs called sparklines.

    There are two exhibits so far including over 1,100 data points. The first exhibit explores everyone’s favorite topic, repeats, with a look at some of the most played songs from the tour. The second exhibit explores the shortest and longest sets, based on number of songs played.

    August 15, 2009

    Recap: Phish @ Hartford -Audio, Videos and More [Jamtopia]

    August 9, 2009

    Recap: Phish Gorge ’09 [Jamtopia]

    July 31, 2009

    Red Rocks: Phish Red Rocks ‘09: Setlists, Reviews, Video, Audio [Jamtopia]

    July 1, 2009

    Contest: Win a Free Mike Gordon Bobblehead [Jamtopia]

    Of all the lot-merch on Summer Tour, the piece that generated the most buzz had to be the Trey bobblehead, one of which Jamtopia gave away back in April.

    Assuming you liked that one, you’ll probably want to add the latest and greatest Phish bobblehead to your collection: it’s bassist extraordinaire Mike Gordon.

    June 24, 2009

    Songs: Listen to the New Phish Album (Sort Of) [Jamtopia]

    Okay, so the post title may be a bit misleading, but hit play below for an early preview of some of the tracks presumed to be on the new Phish album.

    Rumored to be called “Party Time,” the as-yet-untitled album is scheduled for release on July 28th some time in August. It’s the first Phish studio release since Undermind back in 2004.

    June 13, 2009

    Bonnaroo: Phish @ Bonnaroo Recap [Jamtopia]

    June 5, 2009

    Jones Beach: Phish @ Jones Beach Recap [Jamtopia]

    June 1, 2009

    Fenway Park: Phish @ Fenway Reaction Roundup [Jamtopia]

    May 30, 2009

    Visit Phishtwit For a Realtime Stream of Phish Twitter Updates

    May 21, 2009

    Contest: Trey Bobblehead Drawing at 10PM [Jamtopia]

    April 24, 2009

    Contest: Win A Trey Bobblehead [Jamtopia]

    March 25, 2009

    Hampton: CK5 Wallpaper Gallery [Jamtopia]

    As I reflect on the Phish Hampton reunion, one thing really sticks out: Kuroda kicked ass. Meanwhile, thanks to hundreds of citizen photographers, there’s plenty of pics that capture the brilliance of CK5 — and make for excellent desktop wallpaper.

    March 18, 2009

    Late Summer Tour: Tickets, Dates, Festival? [Jamtopia]

    March 15, 2009

    Hampton: The Dudes In The Front Row [Jamtopia]

    March 10, 2009

    Hampton: Setlists, Reviews, MP3s, Streams, Videos [Jamtopia]

    March 3, 2009

    Twitter: Phish Twit Aggregator [Jamtopia]

    PhishTwit is a simple Twitter aggregator that brings together Tweets about every Phish show — from previews to reviews, and even real-time posts during the show.

    February 23, 2009

    Posters: The Phish Hampton Poster Gallery [Jamtopia]

    February 15, 2009

    Contest: Win Free Phish Tickets [Jamtopia]

    February 1, 2009

    Tickets: An Open Letter to Live Nation’s CEO [Jamtopia]

    January 7, 2009

    Rumor: Phish to Play Alpine Valley [Jamtopia]

    December 29, 2008

    Lists: The Best Concert DVDs of 2008 [Jamtopia]

    November 23, 2008

    Backstage Jams: Trey Trades Licks With Warren [Jamtopia]

    November 13, 2008

    Humor: Phish Ticket eCards – Much Cheaper Than Actual Tickets [Jamtopia]

    November 7, 2008

    Contests: Best Fluffhead Ever [Jamtopia]

    October 30, 2008

    Simulcast: Don’t Have Phish Tickets? Sign The Simulcast Petition [Jamtopia]

    October 1, 2008

    Comeback: Hood Blimp Spotted Over Hampton Coliseum [Jamtopia]

    September 28, 2008

    Trey Anastasio: Divided Sky Turns Elastic [Jamtopia]