<?php

mb_internal_encoding
('utf-8');
header('Content-Type: text/html; charset=' mb_internal_encoding());

require_once 
'wp-config.php';
require_once 
'DB.php';

$db =& DB::connect('mysql://' DB_USER ':' DB_PASSWORD '@' DB_HOST '/' DB_NAME);
if (
PEAR::isError($db)) die($db->getMessage());

class 
thing extends DB_Row {
    function 
thing($data) { parent::DB_Row($data); }
    function 
as_html($lang 'fr') {
        static 
$dict = array('en' => array(
                  
'published' => 'published on'
                
'thepost' => 'The post'
                
'wasseen' => 'was seen'
                
'times' => 'times'
                
'by' => 'by'
                
'andcommented' => 'and commented'
            
),
            
'fr' => array(
                  
'published' => 'publié le'
                
'thepost' => 'Le billet'
                
'wasseen' => 'a été vu'
                
'times' => 'fois'
                
'by' => 'par'
                
'andcommented' => 'et commenté'
            
)
        );
        if (empty(
$dict[$lang])) $lang 'fr';
        echo<<<E_O_T
<li>{$dict[$lang]['thepost']} <a href='{$this->guid}'>{$this->post_title}</a> {$dict[$lang]['published']} {$this->post_date} {$dict[$lang]['by']} {$this->display_name} {$dict[$lang]['wasseen']} {$this->view_count} {$dict[$lang]['times']} {$dict[$lang]['andcommented']} {$this->comment_count} {$dict[$lang]['times']}.</li>
E_O_T;
    }
}

$year = isset($_REQUEST['year']) ? intval($_REQUEST['year']) : 2006;
$max = isset($_REQUEST['max']) ? intval($_REQUEST['max']) : 10;
if (
$max 20$max 20;
$sql_by_views "SELECT guid, view_count, comment_count, post_date, post_title, display_name FROM wp_posts, wp_users where wp_users.id=post_author and post_date like '$year-%' ORDER BY `view_count` DESC LIMIT $max";
$sql_by_comments "SELECT guid, view_count, comment_count, post_date, post_title, display_name FROM wp_posts, wp_users where wp_users.id=post_author and post_date like '$year-%' ORDER BY `comment_count` DESC LIMIT $max";

$db->setFetchMode(DB_FETCHMODE_OBJECT'thing');

$lang = isset($_REQUEST['lang']) ? $_REQUEST['lang'] : 'fr';

echo 
"<h1>Top $year<h1>";
if (isset(
$_REQUEST['comments'])) {
        
$data_by_comments =& $db->getAll($sql_by_comments);
        if (
PEAR::isError($data_by_comments)) die($data_by_comments->getMessage());
        echo 
'<h2>By comments</h2>';
        echo 
'<ol>';
        foreach (
$data_by_comments as $d$d->as_html($lang);
        echo 
'</ol>';
}
else {
        
$data_by_views =& $db->getAll($sql_by_views);
        if (
PEAR::isError($data_by_views)) die($data_by_views->getMessage());
        echo 
'<h2>By views</h2>';
        echo 
'<ol>';
        foreach (
$data_by_views as $d$d->as_html($lang);
        echo 
'</ol>';
}

$db->disconnect();

?>