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 2010-10-10 | YEMblog
    • Here's a playlist of 12 videos from the Fourmile Canyon Revival including Rocky Mountain Way, Trainsong and more http://j.mp/aHJz41 #phish #
    • Phish Takes the "Most Nostalgic" at Austin City Limits Music Fest Award From The Dallas Observer http://j.mp/b4ZoVz #phish #ouch #
    • Check Out @zzyzx 's Review of Last Night's Benefit http://j.mp/ceskVz #phish #fourmile #
    • Perhaps the answer to life the universe and everything will be revealed. #
    • 10/1/00 is 20 in binary. 101010 is 42. #
    • Happy binary day! This is the second binary show. #
    • Hidden Track offers a review of last night's Fourmile Canyon Revival http://j.mp/a4NcXD #phish #
    • Today on YEMblog: Mike and Trey audio and video, Fourmile Articles, First Tube from ACL vid and more http://yemblog.com #phish #
    • Thanks so much to @fractalgal for the amazing job last night. @zzyzx will tweet from tonight's tour opener #phish #
    • Thanks to Leftover Salmon, YMSB, Big Head Todd, Phish & SCI for an unforgettable night #
    • My battery is about done. Looking forward to 3 nights of Phish in this room. #
    • Sometimes a River #
    • Round the Wheel #
    • Bam. String Cheese Incident. #4milerevival #
    • Trey shakes everyone's hand after that and exits the stage. #
    • Trey riding crest of the wave. Blending harmoniously w SCI. Fantastic. #
    • Kuroda lights with Cheese LCD #
    • Trey sticking around for Outside & Inside #
    • Nershi takes a solo. Dirty. #
    • Trey singing. Center stage. #
    • Rocky Mountain Way #
    • Here comes Big Red #
    • Mauna Bowa #
    • Bill Nershi thanks Phish #
    • Stage being set for Cheese-driven clusterpluck. Lots of amps & mics. #
    • @PalmerJeff Mike was wearing black pants. #
    • Trey and Mike Duo Set: Back On The Train, Water In The Sky, Sample, Train Song, Waste, Possum, My Friend, Wilson, Gin #phish #broomfield #
    • Crowd still singing gin hoping they return. End Set. #
    • Trey puts down guitar. They take a bow. #
    • Acapella #
    • Crowd engaged. Beautifully played. #
    • Gin. Wow. #
    • Mike's strings stretched to to limit. Into Wilson. #
    • What a treat #
    • Trey and Mike Duo Set: Back On The Train, Water In The Sky, Sample, Train Song, Waste, Possum, My Friend #phish #broomfield #
    • My Friend, My Friend #
    • Gorgeous #
    • Possum #
    • Trey and Mike Duo Set: Back On The Train, Water In The Sky, Sample, Train Song, Waste #phish #broomfield #
    • Waste #
    • Calls for loudest cheer of the night for the firefighters. Place going nuts. #
    • Trey expressing gratitude. Colorado a second home. #
    • Train Song #
    • Place is quiet and most singing along. Screen seashell blue & green. Kuroda's lights softly accenting #
    • Sample. #
    • Crowd attentive. Water in the Sky. #
    • Trey acoustic. Mike hollow body for Back on the Train #
    • Here we go #
    • Big thank you to the firefighters #
    • Almost time for Trey & Mike's set #
    • Hallway packed w folks waiting for set 4 as Big Head Todd & the Monsters rage John Lee Hooker. #
    • Boom Boom. #
    • Friend of the Devil. Big Head Todd and Leftover Salmon. Energy boost. #
    • Big Head Todd on for set 3 #
    • Firefighter on stage giving us goosebumps with her story. Badass. #
    • Jeff Austin's banter so fun. Freedom! #
    • 2 Hits & the Joint Turns Brown #colobrahdo #
    • Girlfriend is Better. Perfect. #
    • Geling perfectly. Sounds like Jon's been with Yonder forever. #
    • Jon. Drum kit center stage. 5 o'clock shaddow. Jeans & t-shirt. #
    • Mental Breakdown. Adam bringing it. Powerful. #
    • Adam's guitar work keeps Jeff grounded. Almost. 40 Miles from Denver. #
    • @bretontheradio from KBCO onstage to introduce Yonder. It's Too Late Now. #
    • Lights #
    • Yonder up next #
    • Floor is packed all the way to the back. Enough room in seats to grab 2 per person. #
    • Set break. #
    • Please forgive me if I flub a few details. 10 people onstage including cheburger. Gettin nutty. #
    • Mayor McCheese! Vince playing air washbord with Bonnie. Heating up. #
    • Cheeseburger dancing on stage. #
    • Red Rocks, Garden of the Gods & Pikes Peak on screen. Whole lot of Colorado pride High on the Mountaintop. #
    • Bonnie. Sorry lady. You bring amazing energy to the stage. #
    • Bobbi from Elephant Revival on washboard. Wearing long black gloves & rippin that thing. #
    • Bill Nershi to join now for Muddy Water Town. #
    • Stage framed beautifully by changing lcd sail. #
    • Page on right side adding color. Place is moving now. #
    • Mama Boulet! #
    • Page!!!!!! #
    • This is the Time. Crowd filling in quickly. Full bars everywhere at 1st Bank. Fancy. #
    • Everything is Round #
    • Keith Moseley joining Leftover on bass. #
    • Leftover Salmon appetizer #
    • Looks like parking at 1st Bank Center is $15. Ticket time 6:00. Crisp fall air. #
    • Last time I went to 1st Bank Ctr, parking was $10 cash. Expecting same this weekend. #

    Post a Comment

    You must be logged in to post a comment.