- inc/classes/class.blog.php
Initial :
<? function getPostByDate($y,$m,$d='',$cat='',$order='post_dt DESC',$selected=false,$lang='') { $reqPlus = 'AND DATE_FORMAT(post_dt,\'%Y\') = \''.(integer) $y.'\' '; $reqPlus .= 'AND DATE_FORMAT(post_dt,\'%c\') = \''.(integer) $m.'\' '; ?>
Modifié :
<? function getPostByDate($y,$m='',$d='',$cat='',$order='post_dt DESC',$selected=false,$lang='') { $reqPlus = 'AND DATE_FORMAT(post_dt,\'%Y\') = \''.(integer) $y.'\' '; if ($m != '') { $reqPlus .= 'AND DATE_FORMAT(post_dt,\'%c\') = \''.(integer) $m.'\' '; } ?>
- layout/lib.mod.php
Initial :
<? if($args != '') { if(preg_match('!^([0-9]{4}/[0-9]{2})(/|\z)!',$args,$match)) { $_GET['d'] = $match[1]; if(preg_match('!^([0-9]{4}/[0-9]{2}/[0-9]{2})(/|\z)!',$args,$match)) { $_GET['d'] = $match[1]; if(preg_match('!^[0-9]{4}/[0-9]{2}/[0-9]{2}/([0-9]+)!',$args,$match)) { $_GET['p'] = $match[1]; } } } elseif(preg_match('!^([A-Z][A-Za-z0-9_-]*)([^/]*)?(/|\z)!',$args,$match)) { $_GET['cat'] = $match[1]; if(preg_match('!^[A-Z][A-Za-z0-9_-]*([^/]*?)/([0-9]{4}/[0-9]{2})!',$args,$match)) { $_GET['d'] = $match[2]; if(preg_match('!^[A-Z][A-Za-z0-9_-]*([^/]*)?/([0-9]{4}/[0-9]{2}/[0-9]{2})!',$args,$match)) { $_GET['d'] = $match[2]; } } } } // ... un peu plus loin dans le code source du fichier ... if (!empty($_GET['p'])) { return 'post'; } elseif (!empty($_GET['d']) && strlen($_GET['d']) == 10) { return 'day'; } elseif (!empty($_GET['d']) && strlen($_GET['d']) == 7) { return 'month'; } elseif (!empty($_GET['cat'])) { return 'cat'; } else { return 'home'; } ?>
Modifié :
<? if($args != '') { if(preg_match('!^([0-9]{4}/[0-9]{2})(/|\z)!',$args,$match)) { $_GET['d'] = $match[1]; if(preg_match('!^([0-9]{4}/[0-9]{2}/[0-9]{2})(/|\z)!',$args,$match)) { $_GET['d'] = $match[1]; if(preg_match('!^[0-9]{4}/[0-9]{2}/[0-9]{2}/([0-9]+)!',$args,$match)) { $_GET['p'] = $match[1]; } } } elseif(preg_match('!^([A-Z][A-Za-z0-9_-]*)([^/]*)?(/|\z)!',$args,$match)) { $_GET['cat'] = $match[1]; if(preg_match('!^[A-Z][A-Za-z0-9_-]*([^/]*?)/([0-9]{4}/[0-9]{2})!',$args,$match)) { $_GET['d'] = $match[2]; if(preg_match('!^[A-Z][A-Za-z0-9_-]*([^/]*)?/([0-9]{4}/[0-9]{2}/[0-9]{2})!',$args,$match)) { $_GET['d'] = $match[2]; } } } elseif(preg_match('!^([0-9]{4})(/|\z)!',$args,$match)) { $_GET['d'] = $match[1]; } } // ... un peu plus loin dans le code source du fichier ... if (!empty($_GET['p'])) { return 'post'; } elseif (!empty($_GET['d']) && strlen($_GET['d']) == 4) { return 'year'; } elseif (!empty($_GET['d']) && strlen($_GET['d']) == 10) { return 'day'; } elseif (!empty($_GET['d']) && strlen($_GET['d']) == 7) { return 'month'; } elseif (!empty($_GET['cat'])) { return 'cat'; } else { return 'home'; } ?>
- layout/prepend.php
Initial :
<? elseif($mode == 'home' || ($mode == 'cat' && $cat_id) || $mode == 'year') ?>
Modifié :
<? elseif($mode == 'year') { $news = $blog->getPostByDate($year,'','',$cat_id,'post_dt DESC'); if ($news->isEmpty()) { $err_msg = '<p>'.__('No entry.').'</p>'; } } elseif($mode == 'home' || ($mode == 'cat' && $cat_id)) ?>
Voilà, après modification de ses 3 fichiers, vous êtes en mesure de consulter tous les billets d'une année en appelant une URL du style http://www.placeoweb.com/dotclear/index.php/2006