Выводим количество новостей определенной категории DLE


Хак позволяет выводить количество публикаций из определенной категории.
Код довольно старый, но всё ещё рабочий и полезный, думаю вам пригодится.
Очень прост в установке, с кешированием, и правильным подсчетом и выводом самой цифры.

Установка

Открываем файл engine/modules/main.php и находим строку:

$tpl->set ( '{AJAX}', $ajax );
Ниже вставляем:
$sql_result = $db->query("select ct.id,
(select count(*) from ". PREFIX ."_post ps where (ps.category REGEXP concat( '^(' ,ct.id, ',)' ) or ps.category REGEXP concat( '(,' ,ct.id, ',)' ) or ps.category REGEXP concat( '(,' ,ct.id, ')$' ) or ps.category=ct.id) AND (DATE_FORMAT(date, '%Y%m%d')=CURDATE()) AND approve = '1') as new_,
(select count(*) from ". PREFIX ."_post ps where (ps.category REGEXP concat( '^(' ,ct.id, ',)' ) or ps.category REGEXP concat( '(,' ,ct.id, ',)' ) or ps.category REGEXP concat( '(,' ,ct.id, ')$' ) or ps.category=ct.id) AND approve = '1') as allnews_
from ". PREFIX ."_category ct"
);
$count_news_of_category = '';
while($row = $db->get_row($sql_result))
{
if( $row['new_'] == '0') {$news_now = '';} else {$news_now = '<font color="#CC0000">+'.$row['new_'].'</font> | ';};
$t = '[ '.$news_now.$row['allnews_'].' ]';
$tpl->set('{count_categ_'.$row['id'].'}', $t);
$count_news_of_category .= $row['id'].'#'.$t.'|';
}
Выглядеть это дело будет так "[ +5 | 35]"
+5 - это добавленные новости
35 - общее количество

или же вставляем:
$sql_result = $db->query("select ct.id,
(select count(*) from ". PREFIX ."_post ps where (ps.category REGEXP concat( '^(' ,ct.id, ',)' ) or ps.category REGEXP concat( '(,' ,ct.id, ',)' ) or ps.category REGEXP concat( '(,' ,ct.id, ')$' ) or ps.category=ct.id) AND (DATE_FORMAT(date, '%Y%m%d')=CURDATE()) AND approve = '1') as new_,
(select count(*) from ". PREFIX ."_post ps where (ps.category REGEXP concat( '^(' ,ct.id, ',)' ) or ps.category REGEXP concat( '(,' ,ct.id, ',)' ) or ps.category REGEXP concat( '(,' ,ct.id, ')$' ) or ps.category=ct.id) AND approve = '1') as allnews_
from ". PREFIX ."_category ct"
);
$count_news_of_category = '';
while($row = $db->get_row($sql_result))
{
if( $row['new_'] == '0') {$news_now = ')';} else {$news_now = '/+'.$row['new_'].')';};
$t = '('.$row['allnews_'].$news_now;
$tpl->set('{count_categ_'.$row['id'].'}', $t);
$count_news_of_category .= $row['id'].'#'.$t.'|';
}
получиться следующий вид "(35 / +5)"

Теперь открываем любой tpl файл в котором нам нужно вывести непосредственно цифру и вставляем
{count_categ_X}
x - это id нужной категории

скачать dle 11.1смотреть фильмы бесплатно


dle news catt новости подсчет количество выводим
Комментариев 1
  1. Моя база чуть ли не охренел от этого кода.
    Все работает, но он на базу такую нагрузку дает это вообще не оптимизированный код.

Внимание!

Ознакомьтесь со статьёй по ссылке ниже.

Сайт мошенников
Информация