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"; } } ?> Where To Look For Phish Fall Tour Coverage | YEMblog
    Where To Look For Phish Fall Tour Coverage

    As a reminder, we won’t be tweeting from shows this fall. We’ll update JamBase.com with The Skinny after each show and we’ll tweet regularly using @YEMblog but no in-show commentary. We recommend the following sites and Twitter feeds for your Summer Tour fix…

    TWITTER

    @Phish_FTR = Photos, setlists and more from the band
    @rphish = The latest and greatest Phish-related content
    @phishnet = A fan-run feed representing Phish.net
    @Phish_Forum = Show reviews, tour tweets and more
    @MrMiner = The most popular Phish blogger’s Twitter feed
    @JamBase = Publication covering the live music world which will publish The Skinny after each show
    @bizarchive = Scott Marks will tweet commentary from many shows
    @onlinephishtour = Phish conversation and links to the site’s reviews/news stories and more
    @CoventryMusic = Pauly, The Joker and crew share thoughts on tour
    @PhishVids = Updates and the latest and greatest Phish videos
    @zzyzx = Yes, The Timer now tweets
    @lumpblockclod = Phish fan Steve Paolini offers his often wise view on the shows
    @GuyForgetOPT = Ben will tweet opinions that will have you thinking, “He’s right! Can’t believe I didn’t think of that!”

    WEBSITES

    Phish.net = The best Phish-related site on the web features real-time setlists, recaps and more
    JamBase = The home of “The Skinny” during and after each Phish show plus news & reviews
    Phish Thoughts = Whether you agree with his take or not, you can always depend on Mr. Miner for a heartfelt review
    rPhish = The community-run Phish “subreddit” on Reddit.com does what we used to do
    ThePhish = Turntable.FM room for replays of shows and 24/7 Phish listening parties
    Live Phish = Official recordings of every Phish show sold here
    bt.etree = The place to download audience recordings of Phish shows
    YouTube = Expect tons of fan-shot video to be posted this tour
    Phish Channel on Vimeo = Where Phish has posted official videos of each show in the past
    Coventry Blog = Pauly, Joker and Crew post reviews and more from tour
    PhishVids = Database of Phish videos
    The Phish Rotation Infographic = The Barn Presents keeps this useful graphic up-to-date to help figure out what to expect next
    PhishTwit = Watch tweets from the shows roll in + chat with other fans + more

    3 Comments so far      Post a Comment

    1. It’s hard to find well-informed people on this subject, however, you sound like you
      know what you’re talking about! Thanks

    2. gillette proglide samples

    3. If you hold paying out on time, these companies report
      your very good home business with them to nationwide governing bodies and
      your credit score gets an immediate boost. you ask your friends, relatives, and family members.
      Many people are intimidated by payday loans due to not understanding them.

    Post a Comment

    You must be logged in to post a comment.