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/blog 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: Bugfix from Matthias Schutz regarding time_since. Version 1.5.9: Added function redefiniotion protection if people use the plugin in several places */ 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, $tablecomments, $tableposts; if(!function_exists('blc_clamp')) { function blc_clamp($min, $max, $val) { return max($min,min($max,$val)); } } function get_channel($col, $offset) { return hexdec(substr($col, $offset, 2)); } function channels($col) { $r = get_channel($col, 1); $g = get_channel($col, 3); $b = get_channel($col, 5); return array($r, $g, $b); } $max_time = $range_in_days * 24 * 60 * 60 ; function scale_channel($old, $new, $diff, $max_time) { $range = $old - $new; $c = round($diff/$max_time*($range))+$new; $c = blc_clamp(min($new, $old), max($new, $old), $c); $c_hex = str_pad(dechex($c), 2, '0', STR_PAD_LEFT); return $c_hex; } $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 ($tablecomments LEFT JOIN $tableposts ON (comment_post_ID = ID)) WHERE comment_approved = '1' AND $tableposts.post_status='publish' $ping ORDER BY comment_date DESC;"); $seen = array(); $num = 0; if($fade_old) { list($r_new, $g_new, $b_new) = channels($new_col); list($r_old, $g_old, $b_old) = channels($old_col); } 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 $tablecomments 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 $tablecomments 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($commenters[0]->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_hex = scale_channel($r_old, $r_new, $diff, $max_time); $g_hex = scale_channel($g_old, $g_new, $diff, $max_time); $b_hex = scale_channel($b_old, $b_new, $diff, $max_time); $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"; } } ?> PPCWatch Blog » 2006 » May

    Archive for May, 2006

    Top 10 dyreste keywords i Danmark

    Tuesday, May 9th, 2006

    Jeg har lige opdateret sitet en lille smule - og mere kommer til. På forsiden af PPCWatch.dk kan du nu se en top 10 over månedens dyreste ord, i tillæg til det absolut dyreste ord, der var det eneste vi viste til at starte med.

    Jeg vil i den forbindelse også gøre opmærksom på det samlede PPC brancheindeks, som giver et godt overblik, hvis du ikke allerede har set det.

    Jeg arbejder, som sagt, også med nogle flere forbedringer på sitet - mest af alt nogle flere og bedre måder at vise den data frem vi allerede har. Har d nogle gode forslag er du altid velkommen til at smide dem her.

    Technorati Tags:

    Ny keyword-data for maj måned

    Tuesday, May 9th, 2006

    Så fik vi lagt ny data på for maj måned. Så nu ligger der 3 måneders data. Det bliver jo bare bedre og bedre med tiden … :)

    Der er ikke de kæmpe store udsving, men for mange områder er der tale om et lille fald i klikpriserne. I de kommende dage vil vi skrive lidt mere om udviklingen i PPC-markedet på baggrund af den data vi har.

    Indti da, kan du jo passende kigge indenfor på PPCWatch.dk selv og se på sagerne …

    Technorati Tags: ,

    Hvor meget er et klik værd?

    Monday, May 1st, 2006

    Mange har med rette undret sig over, at et keyword som “penge på nettet” bliver budt op i priser på helt op til 218 kroner pr. klik. Det jeg jeg egentligt godt forstå - altså, at man undres. Men, dels er dette langt fra det ord der betales mest for i hele verden (blot i Danmark) og dels er der som regel en eller flere fornuftige forklaringer på de allerhøjeste priser. Det skal vi nu se lidt nærmere på …

    (more…)