Тема: Изменение вида архива новостей (Strawberry 1.1.1)
Задача: вывести архив новостей в таком виде:
2007
февраль
январь2006
декабрь
ноябрь
Решение: в файле .../plugins/etc.php заменить функцию cn_archives на эту:
function cn_archives($tpl = ' <a href="{link}">{date}</a><br />', $sort = array('date', 'DESC')){ //убрали ({count}) в шаблоне
global $PHP_SELF, $sql, $cache;
static $uniqid;
$my_year = ''; //Ввели новую переменную для хранения года
if (!$archives = $cache->get('archives', $uniqid++)){
foreach ($sql->select(array('table' => 'news', 'select' => array('date'), 'orderby' => $sort)) as $row){
if ($arch != date('Y/m', $row['date'])){
$arch = date('Y/m', $row['date']);
$find = array('{date}', '{link}', '{count}');
$repl = array(_etc_lang(date('n', $row['date']), 'month'), cute_get_link($row, 'month'), count_month_entry($row['date'])); //убрали .date(' Y', $row['date'])
//Добавили эту конструкцию для вывода года
if ($my_year != date('Y', $row['date'])) {
$my_year = date('Y', $row['date']);
$archives .= '<p><b>'.$my_year.'</b><br />';
} //Конец добавленной конструкции
$archives .= str_replace($find, $repl, $tpl);
}
}
$archives = $cache->put($archives);
}
return $archives;
}Применение: Управление внешним видом архива новостей.
Автор: ANT-Soft (идея AleZX)