Выводим количество новых материалов разных типов за сутки (месяц, год, столетие).

Главные вкладки

Аватар пользователя VladSavitsky VladSavitsky 4 января 2008 в 19:28




Сниппет, который выводит количество материалов по типам за опред. промежуток. Лучше посмотрите скриншот.

//Начальная дата:
$start_stamp = mktime(0, 0, 0, date("m"), date("d")-1, date("Y"));//За последний день
$start_stamp = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));//За последний месяц
//Получаем массив нод по типам материалов:
$result=db_query("SELECT count(nid) as count, type FROM node
WHERE status = 1 AND created >'$start_stamp' GROUP BY type");
while ($result_type = db_fetch_object($result)) {
$count_results[$result_type->type]=$result_type->count;
}
//Выбираем нужные типы. Чтобы тип не брался в расчёт - закомментировать.
$node_types=array(
"corpo_warning" => "сообщений о корповорах: ",
"forum" => "мнений на форуме: ",
// "page",
// "story",
// "blog" => "записей в блогах",
"events" => "событий: "
);
//Обрабатываем 2 массива, чтобы сложить в строки:
foreach ($node_types as $type=>$message_string) {
if (isset($count_results[$type])) $today[]=$message_string.$count_results[$type];
}
//Получаем количество комментариев:
$result=db_query("SELECT count(nid) as count FROM comments
WHERE status = 0 AND timestamp >'$start_stamp'");
$result_type = db_fetch_object($result);
if ($result_type->count) $today[]="комментариев: ".$result_type->count;
//Выводим:
echo "СЕГОДНЯ: ". ((count($today)>0) ? implode(', ',$today): "пока нет новых материалов")."";
//Убираем за собой:
unset($today, $count_results, $start_stamp, $result, $message_string);
?>

Можно выводить все типы без разбора. Просто в моём случае это было не нужно.
Можно сделать страницы с таблицами этих материалов (Views) и делать ссылки на эти страницы.
В общем - совершенству нет предела.

Комментарии

Аватар пользователя Dimanic Dimanic 6 декабря 2008 в 11:33

Спасибо ))) правда просто нужно было вывести общее количество на данный момент, без временного интервала ))))))

Аватар пользователя Valeratal Valeratal 15 июля 2009 в 16:43

а нет ли снипета, показывающего новое
например так:

за сегодня,

статей 10
статья 1
статья 2
------
статья10

тем форума 5
тема1
---
тема5


записей в блогах 0
(и не выводить эту строчку)