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 " [...]";
Online Phish Tour | YEMblog
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?
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).
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.”)
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.
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.
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.
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.
The announcement of Phish’s webcast being brought back for the two-night Tahoe run has unleashed a heated debate within the Phish community. While some are thrilled to have another opportunity to see the frantic four in their living rooms this summer, others feel that the band plays far better without the added pressure of entertaining fans seated at home in their underwear. We at OPT like our debates the same way we like our guitarist’ hair–red hot. That’s why we brought the esteemed Eric Wynman in to throw down with our own Zim in an epic battle of webcast worthiness!
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.
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.
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.