Modifier sont Doctlear pour consulter tous les billets d'une année
Par placeoweb, vendredi 22 septembre 2006 à 00:17 :: PHP :: #20 :: rss
Dotclear permet de lister par défaut, les dernières annonces d'une période annuelle, mensuelle. Je voulais afficher les billets d'une année, année par année. Pour cela, j'ai modifié le code de 3 fichiers et voila pour vous les mofications à effectuer.
- 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à, apres 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
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.