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 " [...]";
Tour Recaps | YEMblog
IT didnot last long enough! Phish played quite well at SBIX and on the second leg of their Summer tour, and it was tough to see the tour end in Colorado. But Vermont’s misfortune from Hurricane Irene inspired Phish to play a benefit show in Essex on September 14, a webcasted show that raised over $1.2 million for flood relief efforts, and also gave fans, particularly those in Vermont, a special performance. It was Phish’s first Vermont show since Coventry, and one of only a handful of benefit shows that Phish has ever performed. It was also an appropriate way to conclude the Summer’s impressive musical achievements: generously, warmly, and with a familial vibe near the green mountains where Phish began.
They certainly like to take the bull by the horns when opening a run or tour these days. No longer can one confidently say “Just skip the opener.” Inside the confines of the UIC Pavilion, Phish delivered arguably the best show of the summer so far. The band weaved a second set compiled of one-word songs, with unique jam after unique jam, hitting on themes of Earth, Wind, Water and Hendrix’s Fire. All this UIC show was missing was a cameo by Captain Planet.
This first leg was certainly an interesting one. As with most tours, we experienced highs and lows, but the overall impression I got was that the band is dialed in. While the naysayers will still complain about the “lack of jams” and exploration, I could not disagree more. The jams are there; they’re just more structured. In fact, if you remove some of the new tunes, it’s almost like listening to early 90’s Phish — well executed composed segments with controlled jamming. I was only able to catch the three Jersey shows, but I believe the band is having more fun than they’ve had in years and it’s certainly reflected in their playing.
In sum? The tour has been pretty good so far. “Phish 3.0” continues. I respectfully disagree with those who think Phish’s music has changed in any meaningful way this year. (Please re-listen to the mid-to-late October 2010 shows, and the NYE run, especially the 1/1/11 MSG show, for perspective.) Trey may be using the Digitech whammy less often, and the sound and light shows may be better, but I don’t hear anything dramatically different, show to show, than what we’ve heard from Phish in the last year. There have not been many debuts, nor have the newer songs (from the album Joy, or otherwise) been played much if at all. But what this tour has arguably lacked in novelty, it has made up for with improvisations like the Bethel2 “GoldenGinTeca,” and the Pine Knob (Clarkston) “Down with Disease,” as well as entertaining setlist calls — many of them thanks to fans bearing signs — including “Daniel Saw the Stone,” “Instant Karma,” “Buried Alive,” “Lonesome Cowboy Bill,” “Icculus,” and “Bike.” The “Bathtub Gins” and “Rebas” from this tour also have been consistently marvelous, and all are worth a listen.
Vultures – 6/11 Merriweather Post – This song has never gotten its due. Overshadowed by the rest of the tunes that would make up The Story of the Ghost, there have been moments where I felt this song was geared to make a big comeback… but it’s just never cracked the rotation. I’m not sure why that it is. This song has everything a Phish song should, strange rhythms, bizarre lyrics, and some peaks that will make you pump your fist. Here’s hoping Vultures gets better setlist treatment in the future. Unfortunately, if it hasn’t happened yet… it’s probably not happening.
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
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.
While the $60 ticket prices this Fall may be a far cry from the $8.50 that a Phish ticket cost at a club in Boston more than 20 years ago, their shows are still more than worth it, and one can’t help but be excited about seeing them again soon. The quality of Phish’s music has always been paramount to the overall experience, of course. Just listen for yourself. And as predictable as part of the setlist may be, so long as they continue to put on a great show, we will be there, and it’ll be up to us to enjoy ourselves. FLUFFHEAD!!!!