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


    February 15, 2012

    Reviews: Trey and the Steel City Symphony [Online Phish Tour]

    January 17, 2012

    Podcasts: OnAir Phish Tour Episode 5 – NYE Run [OPT]

    January 5, 2012

    NYE Run Recap: On Architecture, Phish and 2011 New Year’s Run [OPT]

    December 31, 2011

    Reviews: Night 3 – If You Can Heal The Symptoms [OPT]

    December 29, 2011

    Reviews: Kicking Off w/ Yuletide Heat [Online Phish Tour]

    December 21, 2011

    Lists: A Look at the Songs Phish Has Played After Auld Lang Syne [OPT]

    December 14, 2011

    Requests: Bring Back the New Years Run Joke Cover [OPT]

    December 8, 2011

    Songs: Under The Covers Volume 6 [Online Phish Tour]

    December 7, 2011

    Podcasts: OnAir Phish Tour #3 – Trey Symphony Tour & Phish in ’12 [OPT]

    December 6, 2011

    Debates: Tales of Mental Tangle – 11/22/1997 vs. 11/23/1997 [Online Phish Tour]

    5125: The number of days we lived without pristine soundboards of the classic Hampton/Winston-Salem ’97 run since the shows were played.

    0: The number of days we’ll live without them from here on out.

    That’s right, the wait is finally over: three of the greatest shows in Phish history have now been officially released. And while we’re mostly thinking about how meaningless we now realize life to have been up until this point, we can’t help but let one other thought run through our heads: which of these three juggernauts is the best?

    December 1, 2011

    Editorial: Is Phish Really Gonna Make Us Wait Until Summer? [OPT]

    November 30, 2011

    Videocasts: Dinner and a Movie – Episode 1 [Online Phish Tour]

    Introducing Dinner and a Movie, a new video podcast where myself, Adam and Guy sit down to dissect a new Phish video clip each week.  Think of it as DVD commentary, except instead of some boring movie “director” talking about his “vision” (whatever those words mean) you have three certified experts (certification valid only in Vermont and upstate New York) talking about the types of faces Trey makes when he Trey-gasms all down his Trey-knees.   There may also be some very serious music discussing going on as well, depending on how sober Adam needs to be to operate his microphone (answer: zero sober).

    Songs: Is Mike’s Song Trapped In Time? [Online Phish Tour]

    My original intentions for this article were to compile my wishlist for the New Years Eve run at MSG. With “black Friday” in the rear-view mirror and Phish’s high holidays approaching, I thought I would discuss some things I hope we get during the upcoming four night stand. The problem is that atop my list is “Mike’s Song” – a staple in Phish’s catalog that has predominantly eluded fans during “3.0.” I have been craving a thick and evil “Mike’s Song” that would transcend the tune, but I continue to yearn. So my attention shifted from assembling a list of potential New Years gifts to examining “Mike’s Song;” a former improvisational champ that is now a shadow of itself. (I intend to put out a wishlist as we get closer to the mini run; however, let’s focus on “Mike’s Song.”)

    November 22, 2011

    Previews: Under The Covers Vol. 5 – MSG Preview 2 [OPT]

    November 21, 2011

    Reviews: Why You Need The Hampton / Winston-Salem Box Set [OPT]

    November 17, 2011

    Lists: Box This – OPT’s Archival Release Wish List [Online Phish Tour]

    7/19-21/1998 (Audio in compilation: 7/19 Ghost, Limb, YEM; 7/20 Gin, Drowned, Makisupa, Halley’s; 7/21 Ghost, She Caught the Katy)
    Summer ‘98 is often brushed off by vets that claim it’s the year of gimmicky covers and ambient jams. However, I argue that July of ‘98 is one of the best months of Phish ever. They take the funk from ‘97, only now it’s cleaned up and mature.

    Everyone already knows about the crazy Gorge ‘98 shows (and the recordings are not bad), so let’s go to the following nights that have been overshadowed, starting with 7/19 at Shoreline and finishing with 7/21 at Desert Sky.

    November 9, 2011

    Podcasts: OnAir Phish Tour – Episode 1 – Song Pairs [Online Phish Tour]

    Ben, Padraic and Adam sit down to discuss the OPT article Phish’s Favorite Song Pairings for the first episode of OnAir Phish Tour. On top of discussing some or our favorite pairs, we discuss comments posted by a couple of readers as well. Listen below or subscribe to OnAir Phish Tour in iTunes.

    November 8, 2011

    Columns: Under The Covers Vol. 4 – MSG Preview [Online Phish Tour]

    November 3, 2011

    Songs: Phish’s Favorite Song Pairings [Online Phish Tour]

    October 27, 2011

    Opinion: Return of Bliss in Phish Holy Trinity [OPT]

    Tom Shares: Thank You, Tom [Online Phish Tour]

    October 25, 2011

    Halloween: Under The Covers – The Musical Costume [Online Phish Tour]

    While some would argue that the musical costume isn’t really a stage antic, I would point to the band’s freedom to change the way people think about live shows and clever ways of toasting their influences as their own “antics”. Halloween proves that stage antics don’t have to be ridiculous or over the top, they just have to be uniquely Phish.

    October 11, 2011

    Songs: Under The Covers – Whipping Post [Online Phish Tour]

    October 4, 2011

    Fan/Band Interaction: We’re All In This Together [Online Phish Tour]

    September 29, 2011

    Songs: Under The Covers – Loving Cup [Online Phish Tour]

    Editorial: Unlike ’09 and ’10, 2011 Is Amazing [Online Phish Tour]

    Editorial: State of The Phish Recap [Online Phish Tour]

    September 22, 2011

    A Fan’s Take: Oldtimers and Noobs [Online Phish Tour]

    September 15, 2011

    Essex: Essexy Evening at Home w/ Phish [Online Phish Tour]

    September 8, 2011

    Songs: The Story of Reba – Finest In The Nation [Online Phish Tour]

    September 7, 2011

    Denver: Night Three – The Ghost is Guy Forget [Online Phish Tour]

    September 2, 2011

    Gratitude: Blurring The Rail – Phish, Us, Hosing & Everyone Else [OPT]

    The reason Phish is special is because they blur the line between the fans at the concert and the ‘famous’ people at the concert.  We are not there so we can have the story of seeing our favorite performer play our favorite song in front of us.  We are not seen as a nuisance to the people on stage, simply going through the motions of a concert until the pre-determined setlist is over.  We are not a separate entity from the band, divided by a rail.  Phish blurs the that rail, they blur the line between the fans and the performers.

    August 24, 2011

    UIC Recap: UIC Run Was The Best Phish We’ve Seen This Era [OPT]

    August 18, 2011

    Chicago: Short on Improvisation, Long on Fun [OPT]

    August 16, 2011

    Chicago: Phish Blows Fire On The Windy City [Online Phish Tour]

    August 15, 2011

    Outside Lands: Review – Jukebox Heroes [Online Phish Tour]

    August 11, 2011

    Lake Tahoe: Review – Blue Ballin’ At The Lake [Online Phish Tour]

    August 10, 2011

    Lake Tahoe: Lighting Up Lake Tahoe [Online Phish Tour]

    August 9, 2011

    Hollywood Bowl: Review – Smokin’ The Hollywood Bowl [OPT]

    August 8, 2011

    The Gorge: Phish Makes It Two Straight in Gorge Win [OPT]

    August 7, 2011

    The Gorge: Gorge1 – A Tour Opener Done Right [Online Phish Tour]

    August 4, 2011

    Comparisons: Phish 3.0 vs. Grateful Dead ’87 – ’89 [Online Phish Tour]

    August 2, 2011

    Previews: What The Second Leg Will Hold [Online Phish Tour]

    August 1, 2011

    Songs: Thoughts Out On The Page – Story of Steam [OPT]

    July 15, 2011

    Downloads: A Show For Your Weekend – Hampton ’96 [OPT]

    July 12, 2011

    Editorials: To Review or Not to Review? [Online Phish Tour]

    The idea that there’s any one way to enjoy/review/experience a show just seems laughable to me. Don’t let anyone tell you how to enjoy Phish, and when you do find yourself in disagreement with someone else, relish that there is room for that discussion.

    July 6, 2011

    Watkins Glen: Thank You For Being A Phriend [OPT]

    Thank you to the fans in general.  I never felt better about Phish nation.  It was the best combination of old and new energies, each equally enthusiastic.  There were less annoying signs and incessant talkers than I’ve seen in a while (aside from the gent in the “Molly is a Slut” shirt that kept wanting to show me a picture of his friend’s languedoc and seemed genuinely perplexed when I chose to concentrate on the ASIHTOS jam instead of him).  Most people were tapped into the music, thrilled to be there and generous to those around them.  Even before the secret set, when people were antsy and easily could have gotten out of control, everyone was chill.  Maybe getting older isn’t such a bad thing.

    July 5, 2011

    Watkins Glen: Reviews – Night One, Night Two, Night Three [OPT]

    June 30, 2011

    Signs: Tales of Mental Tangle – The Great Sign Debate of 2011 [Online Phish Tour]

    In the last year, the double-edged sword of honoring sign requests has been unsheathed: honor one sign, and ten fans will make their own signs in the hope that you’ll honor theirs, too. From the Stage Banter sign that led to Trey’s introduction of the Ocedoc at the Greek last year, to the Manteca sign at MSG, to the several signs Trey held up this summer, the band has been providing all kinds of positive reinforcement to sign holders.

    What are the implications of this? Are signs a purely good thing for the Phish experience? What could go wrong? We decided to give these questions the Tales of Mental Tangle treatment. Read on, then vote in our poll and add your own thoughts.

    June 29, 2011

    Polls: Leg 1 Survey Results Matched With My Opinion [OPT]

    June 28, 2011

    Watkins Glen: Super Rumor (IX Possible Spoiler) [OPT]

    June 24, 2011

    Downloads: A Show For Your Weekend – Independence Day ’99 [OPT]

    June 22, 2011

    Tour Recaps: Leg 1 – I Loved It, How About You? [Online Phish Tour]

    June 21, 2011

    Tour Recaps: In Heavy Rotation [Online Phish Tour]

    Backwards Down the Number Line – 7 appearances in 18 shows (38%)

    Check Out: 5/28 – Bethel Woods, Bethel, NY – Summer tour kicked off with a bang in Bethel, and this 3.0 staple got its biggest workout of the whole summer.  As the tour wore on, BDTNL was used more for the tune’s sing-a-long qualities than its ability to break mold, which is what makes Bethel’s version so refreshing.  Sandwiched between Free and the Makisupa that gave us the “house” meme, this version stretches its legs and proves to be an exercise in improvisation and risk taking, instead of an emergency landing spot for a jam gone awry.  Complete with a Dave’s Energy Guide tease, this version, the first of the summer, becomes the go to version for 2011.

    Also appeared at: 6/1 – Holmdel, 6/5 – Cincinnati, 6/8 – Darien Lake, 6/12 – Merriweather Post, 6/17 – Charlotte, 6/19 – Portsmouth

    June 16, 2011

    Alpharetta: All Hits, No Substance – Only Up From Here [OPT]

    June 15, 2011

    Alpharetta: Review – Made-For-TV Phish [Online Phish Tour]

    June 13, 2011

    Columbia: Review – Top Heavy In Maryland [Online Phish Tour]

    Merriweather: Review – Pure Heat [Online Phish Tour]

    Camden: Review – Camden Was a Turd With a Few Raisins [Online Phish Tour]

    June 10, 2011

    Tour Recap: The Feeling I Forgot – “It” Is Back [Online Phish Tour]

    I have gone through the past two years enjoying Phish shows; I was happy they were back and made the best of what I could get.  Now, I am trying to pick my jaw back off the ground; I am hopelessly in love again.