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"; } } ?> @YEMblog Twitter Updates for 2011-02-23 | YEMblog
    • Trey Anastasio Band @ Terminal 5 – Setlist and Recap http://bit.ly/gQgIRD #trey #phish #
    • end show #trey fyi that's the last of our from show tab tweets. well be pointing to others for rest of run #
    • empire state of mind #doh #fail #
    • ny state of mind was nailed. very melllow. jha was belting. wish crowd was more animated #
    • sultans #trey #
    • didnt do jay-z's part i believe.#end set #
    • jha doing alicia justice #
    • jigga what? #jayz #
    • ny state of mind #trey #phish #
    • forgot how much i dig the rearranged horn line for this one that debuted last tour #
    • first tube #phish #trey #
    • tuesday #phish #trey #
    • false ending followed by girls wailing on chorus #
    • more of a new orleans style beat to this arrangement #trey #
    • mandy green puts her hands in air and waves em like she just dont care #shesoneofus #
    • problem right there! #tabdebut #mentionedinhiddentrack #
    • "heres another song from hands on a hard body" #
    • "if you like that kinda music when it comes out see hands on ahard body." #
    • amanda green banter! #nailed #trey #phish #
    • wonder if co-author and fellow upper west side resident amanda green is in the house? #
    • burn that bridge #phish #trey #
    • the people on the floor want to dance but its tough when you're butts to nuts #
    • sweet and dandy #trey #phish #
    • sand #phish #trey #
    • cayman #nationalmargaritavilleday #trey #phish #
    • jha's delivery even more biting than albany #
    • clint eastwood #phish #trey #
    • russ solo to start #lolatarrowhead1990 #
    • burlap sack and pumps #phish #trey #
    • standardly awesome tab jibboo #
    • trey toying with a number of melodies that almost sound like others but are just improv. by far best #trey work of night thus far #
    • streets of cairo tease #trey #
    • kuroda only has 12 moving lights but he is making the most of them. blues alternating with purples for jibboo jam #
    • #jibboo #phish #trey #
    • it makes no difference #phish #trey #
    • nice work by trey in ocelot solo #trey #
    • dont let him fool you. @originalwyllys is getting down #
    • ocelot #trey #phish #
    • 10:20pm = first trey "solo" #
    • a lot fo chatty mcchatersons tonight #shocker #
    • valentine #phish #trey #
    • in the wee wee hours #phish #trey #
    • hey ya! #trey #phish #
    • trey tells story of meeting tony #phish #trey #
    • wasnt a big fan of this tune but i like the arrangement and unplugged quoitent #
    • peggy #trey #
    • russ on flute #
    • then, our boy said "i hope u love this place as much as me." #facepalm #
    • so i think trey just said this band debuted this song at roseland in 1999 #wrongagain #trey #
    • heavy things #trey #
    • "original gch russ remington. he was at arrowhead ranch in 1990" #wrongdatetrey #
    • with entire band now #trey #
    • wadimg w jha and chainsaw #
    • trey announced natalie and christina. uh… oops. realized his mistake #
    • stealing time #trey #
    • crowd does good singing page's part #
    • limb by limb #capoonfretone #trey #
    • caspian #trey #
    • alternate lyrics #bitch #blade #
    • big points on arrangement #
    • cavern #trey #phish #
    • trey sings high harmony for chorus #
    • bouncin #phish #trey #
    • raucous finish > halley's #crowd #
    • "in swalhi this time" "in hebrew" "in german" #lulz #
    • acoustic set at terminal 5 is as noisy as you expect #adwizards #
    • meatstick #phish #trey #
    • kuroda looks so bored #
    • kdf #phish #trey #
    • #radioversion #
    • dedicated to fish lol #
    • dedicated to phish "goin downtown to morroco" #
    • camel walk #phish #trey #
    • know who's your friend verse a capella #dontllovethearrangement #
    • seems lowered at least a key #
    • theme #trey #
    • humming shouldnt have took more than u gave to myself #
    • trey simulates tphone ringing #theawesome #
    • wolfmans #phish #trey #
    • playing rhytms up the neck leading 2 outrop #
    • trey comps chords during "solo" #
    • black shirt as fuck #trey #
    • trey sings high harmony on chorus #loveit #
    • disease! #phish #trey #
    • lights #trey #
    • nice, right downstream from ck5's sage #shitstinks #
    • kuroda in place #phish #trey #
    • packin em in at terminal 5. should be starting soon #trey #phish #
    • Tweeting from #trey @T5 tonight = @YEMblog, @dogoneblog, @seamussullivan and @stevegilmore1 #trey #phish #
    • No Phish Content (perhaps?) but the Dave Matthews Band revealed more details about the DMB Caravan http://bit.ly/ezyd0X #
    • Can always count on @dogoneblog Thank you, good sir #
    • Nice to see all the sites have added the bit from the vimeo page to their summer tour articles #nocredit #
    • I think the key phrase is "touring plans" @neddyo @alliedise multi-night runs are still fair game :) #
    • @Dan_McKnight The video may have been added at 9:40AM, but it was tagged "private" until the announcement went live. Trust me, I looked :) #
    • @mrminer See tweet before, additional summer plans to be announced soon #
    • "Following the summer, the band has no touring plans for the remainder of the year. " #bummer #phish http://vimeo.com/20243760 #
    • Phish Vimeo Video Page now says "Additional summer announcements will be coming." [ctd.] #
    • Ha! RT @mattcastaway #phish hates Thursdays… #
    • @ohkeepahblog Can you give us a timeline for the production of your video? #thomdance #
    • Once again, here's a look at each venue on the just-announced Phish Summer Tour 2011 http://bit.ly/i13N5D #
    • VIDEO: Summer Tour Announcement http://vimeo.com/20243760 #phish #
    • Memorial Day Weekend at Bethel, a venue that made my list of places Phish should play http://bit.ly/fGp7tb #
    • As you can see, most of the rumors leading up to today were off. Tour finds Phish's first-ever show at the DTE Energy Center near Detroit #
    • Phish Summer Tour 2011 = Here's a Look at Each Venue http://bit.ly/i13N5D #
    • @prescribed_ I grew up a mile away, so I'll tell everyone to hit Eli's Bagels and La Strada whilest in the Bayshore for the Holmdel shows #
    • @prescribed_ I had an internal debate and went with calling venues by their official names this time around. You live in Holmdel?! #
    • Another Confirmed Date: Phish @ PNC 6/1 = http://bit.ly/gUlVf6 #twoshowsinholmdel As a Hazletian, I applaud the venue choice #phish #
    • @phanart I don't think the venues/ticket companies/promoters are posting the dates to purposely "leak." #opinion #
    • Should add a #thatsmyopinionnotfact to the end of that last tweet #
    • + @adamicculus It's hard to coordinate all those different venues and promoters with Red Light's schedule. Also, last minute changes happen #
    • @sbadok Patch-Cow-Ski #
    • Randy Ray chatted up Ray P. after the TAB Albany Show for a Jambands.com feature http://bit.ly/g96iZT #trey #phish #
    • It'll be fun to go back and look at how wrong all the list of dates posted before today were #
    • Standby for this clip folks :) RT: @OhKeePahBlog If we get #Michigan show, I'll post vid of me dancing like Thom Yorke in wife's yoga pants #
    • Here's another: Blossom June 4th http://bit.ly/eeauIX #phish #
    • @dogoneblog You sure you're not thinking of today's Governor's Ball announcement? http://bit.ly/hPSmS2 #
    • Another: Phish @ PNC Bank Center on 5/31 http://bit.ly/ifB3eO #
    • Second Date Leaks: Darien Lake 6/8 http://bit.ly/hzGUEv Once again, different prices for lawn and pavs [via @Curtis_ILM] #phish #

    Post a Comment

    You must be logged in to post a comment.