Модуль Топ комментаторов на DLE (отображение статистики)

maximka77
На сайте с 15.10.2011
Offline
245
1513

Здравствуйте, уважаемые форумчане.

У меня на сайте DLE стоит модуль "Топ комментаторов".

Он довольно старенький, но работает нормально и показывает количество комментариев пользователя за все время. На данный момент возникла необходимость показывать количество комментариев пользователей за месяц (например, только за декабрь).

Подскажите, пожалуйста, как подправить файл php, чтобы статистика отображалась таким образом (только за месяц).

Вот сам файл top_comments.php:

<?php

/*
=====================================================
Топ комментаторов

-----------------------------------------------------
Файл: top_comments.php
-----------------------------------------------------
Назначение: Топ комментаторов
=====================================================
*/
if(!defined('DATALIFEENGINE'))
{
die("Hacking attempt!");
}
$num = "10"; // Cколько пользователей выводим
$tpl->result['top_comments'] = dle_cache('top_comments', $config['skin'], true);
if ($tpl->result['top_comments'] === false)
{
$this_month = date( 'Y-m-d H:i:s', $_TIME );

$sql = $db->query("SELECT DISTINCT
users.user_id,
users.name,
users.foto,
users.signature,
users.comm_num,
users.icq
FROM
".PREFIX."_users users
INNER JOIN
".PREFIX."_comments comments ON users.user_id = comments.user_id
and comments.date >= '{$this_month}' - INTERVAL 1 MONTH
and comments.date < '{$this_month}'
ORDER BY users.comm_num DESC
LIMIT 0,{$num}");

while ($row = $db->get_row($sql))
{
if ($config['allow_alt_url'] == 'yes')
$userlink = "<a href=\"".$config['http_home_url']."user/".urlencode($row['name'])."/\">";
else
$userlink = "<a href=\"$PHP_SELF?subaction=userinfo&user=".urlencode($row['name'])."/\">";


if ($config['allow_alt_url'] == 'yes')
$go_page = $config['http_home_url'].'user/'.urlencode( $row['name'] ).'/';
else
$go_page = "$PHP_SELF?subaction=userinfo&user=".urlencode($row['name']);
$go_page = "onclick=\"ShowProfile('" . urlencode( $row['name'] )."', '".htmlspecialchars( $go_page )."', '".$user_group[$member_id['user_group']]['admin_editusers']."'); return false;\"";

if ($config['allow_alt_url'] == 'yes')
$tpl->set( '{nickname}', "<a {$go_page} href=\"".$config['http_home_url']."user/".urlencode($row['name'])."/\">".$row['name']."</a>");
else
$tpl->set( '{nickname}', "<a {$go_page} href=\"$PHP_SELF?subaction=userinfo&amp;user=".urlencode($row['name'])."\">".$row['name']."</a>");

if ($row['foto'] !== '')
$ava = "{$userlink}<img src=\"".$config['http_home_url']."uploads/fotos/".$row['foto']."\" align=\"center\" width=\"50\"></a>";
else
$ava = "{$userlink}<img src=\"{THEME}/images/noavatar.png\" align=\"center\" width=\"50\"></a>";
$tpl->load_template('top_comments.tpl');
$tpl->set('{ava}', $ava);
$tpl->set('{signature}', preg_replace('/<[\/\!]*?[^<>]*?>/si', '', stripslashes($row['signature']))); // HTML remove
$tpl->set('{icq}', $row['icq']);
$tpl->set('{comm_num}', '<a href="/index.php?do=lastcomments&userid='.$row['user_id'].'">'.$row['comm_num'].'</a>');
$tpl->compile('top_comments');
}

$tpl->clear();
$db->free();

create_cache( "top_comments", $tpl->result['top_comments'], $config['skin'], true );
}
echo $tpl->result['top_comments'];
?>

Буду очень вам благодарен за подсказку.

И если можно подскажите, включено ли там кеширование или нет?

- Базы чатов и каналов Телеграм ( https://base-top.ru/ ) - Недорогие ссылки с форумов (https://cutt.ly/swQDFZWx)
siv1987
На сайте с 02.04.2009
Offline
427
#1

Удалите строчку and comments.date < '{$this_month}'

maximka77:
И если можно подскажите, включено ли там кеширование или нет?

Включено.

maximka77
На сайте с 15.10.2011
Offline
245
#2

siv1987, удалил строчку and comments.date < '{$this_month}', почистил кеш.

Все равно показывает количество комментариев у пользователей за все время существования сайта. Может где-нибудь в другой строке нужно ковырнуть?

siv1987
На сайте с 02.04.2009
Offline
427
#3

Кэш точно очистился? Попробуйте вручную удалить все файлы top_comments*.tmp из engine/cache/.

maximka77:
Может где-нибудь в другой строке нужно ковырнуть?

В этом коде во всяком случае других строчек я не вижу.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий