Plugin Name: Brian's Latest Comments
Plugin URI: http://meidell.dk/archives/category/wordpress/latest-comments/
Description: This shows an overview of the recently active articles and the last people to comment on them. Original idea and code fixes contributed by 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")
function clamp($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.
$ping = "";
$ping = "AND comment_type<>'pingback' AND comment_type<>'trackback'";
$posts = $wpdb->get_results("SELECT
FROM ($wpdb->comments LEFT JOIN $wpdb->posts ON (comment_post_ID = ID))
WHERE comment_approved = '1'
ORDER BY comment_date DESC;");
$seen = array();
$num = 0;
$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.
$seen[$post->comment_post_ID] = true;
if($num++ > $num_posts)
$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."'
ORDER BY comment_date DESC
$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);
$title = " title=\"Last comment was ".time_since($comment->unixdate)." ago\"";
$title = "";
echo $prefix."".stripslashes($post->post_title). "".$count." \n";
foreach($commenters as $commenter)
$title = " title=\"Posted ".time_since($commenter->unixdate)." ago\"";
$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 ", ";
if($count > $num_comments)
echo " [...]";
Classic TAB | YEMblog
Trey Anastasio announced today a two-week tour opening Friday February 18th at the newly re-opened State Theater in Portland, ME and closing 15 days later on Saturday March 5th at Oakland’s Fox Theater. The band lineup is identical to the band that toured last February and most recently played at the Hangout Festival in May of 2010: Tony Markellis on bass, Russ Lawton on drums and Ray Paczkowski on keyboards as well as a three-piece horn section featuring Jennifer Hartswick, Russ Remington and Natalie Cressman.
400 – Total Songs Played 50 – Different Songs Played With Full Band 30 – Songs Also Performed Live by Phish (First Tube, Sand, Gotta Jibboo, Mozambique, Alaska, Drifting, Mr. Completely, Let Me Lie, Wilson, Backwards Down the Number Line, Bathtub Gin, Brian and Robert, Chalkdust Torture, Magilla, Sample in a Jar, Water in the Sky, Back On The Train, Kill Devil Falls, Sleep Again, Strange Design, Waste, Windora Bug, Beauty of My Dreams, Driver, Farmhouse, Heavy Things, I’m Blue, I’m Lonesome, Joy, Stealing Time From The Faulty Plan, The Inlaw Josie Wales) 18 – Different Songs Played Solo Acoustic 18 – Most Songs Played in a Set (2/21/10 Set 1) 16 – Shows Played 14 – First Tube Encores
Anyone who attended at least one of the shows along the tour knows, these were fun-filled occasions, with party-like atmospheres. Seeing Trey in these small venues is a treat every single time, and is something that may not last forever. Our hats go off to Trey and the band. In particular we salute Natalie “Chainsaw” Cressman who brought a glowing new flare to the band.
Nineteen months and over 50 Phish concerts later, Anastasio brought his TAB unit — plus a familiar horn section — to New York City’s Terminal 5 on Feb. 16, for an evening that celebrated the past and a promising future.
Unlike Phish, where Anastasio’s leadership role goes unspoken, there’s no question that he is the ringmaster of TAB. While this allows him a certain freedom to plume his feathers as his supporting cast recedes into the background, he also revels in the glow of his carefully crafted ensemble. During each of the band members’ solos and audience-energizing crescendos, Anastasio jumped and clapped along like a proud big brother.
After witnessing Trey and Classic TAB in Kansas City on Sunday night, there is only one thing to say – believe the hype – the band is playing as well as all the glowing reviews have reported, and Trey has brought his own chops to another level. With childlike passion and a ear to ear smile plastered on his face, Trey played with a relaxed confidence all night long, as visibly, happy, and excited as ever.
After Friday night’s show at The Riv, it’s obvious that Trey is back in a major way, and 2009 was only the beginning. Over the course of the evening, fans were given a taste of everything in his solo cannon. The best of his solo work was greeted with tight new treatments, while splashing in some tasteful Phish and even bringing a little something new to the table.
We’re excited to present a live video stream of Trey Anastasio and Classic TAB’s performance from the Pageant in St. Louis, MO tomorrow night, February 23, 2010 at iClips.net. The show starts at 8:30PM EST and will stream in its entirety, absolutely free.
Summer 2001: Phish was on hiatus. Trey Anastasio was on the road with his solo band, and everyone agreed that he seemed revitalized and giddy onstage. There must have been something about the freedom/ego trip of playing with a band that carried his name that got the juices flowing for Trey, and it boded well for the return of fresh Phish. Here we are almost nine years later, during a mere half-year break from the day job, and that giddiness is back. Talk to anybody walking out of a Winter 2010 Classic TAB show and you’re going to hear the word “energy.” And probably something like “off the charts.”
TAB has always been a forum for Trey to tool around with various solos and effects pedal pyrotechnics, so there were certainly moments of long-winded guitar wizardry throughout the band’s three-hour plus workout. But I was surprised at how well this version of TAB really gelled as a cohesive unit.
Before the final tune of the night, “First Tube,” Trey acknowledged Russ Lawton & Tony Markelis, saying that they’d started the band and giving them their due credit for writing so many of the tunes that the band plays (he mentioned “Sand” and “Jibboo,” I believe), and noting that they were about to play the very first tune that they’d written together. It was nice to hear him say that, because so often I hear people refer to these as “Phish songs.” It was great to see props being given to the original core trio that stated this legacy 12 years ago.
It may not have been a gold-medal performance (Anastasio was more consistently impressive in 2005 at the Orpheum with his then-side project 70 Volt Parade) but Phish-heads got what they needed: a marathon concert featuring nonstop dance-inducing grooves, funky jams and long-winded guitar passages by the most giddily grinningest guitar player of all time.