Выводим количество непрочитанных новостей в login.tpl
Хак позволяет выводить количество (цифру) непрочитанных новостей в файле шаблона login.tpl Очень прост в установке. Выводится одним тегом. Очень полезен для новостных сайтов и блогов.
Установка
В файле engine/init.php ищем строку:
$tpl->set( '{all-pm}', $member_id['pm_all'] );
Ниже вставляем:
$last_count = dle_cache("lastcount_" . $member_id['user_id']);
if( $is_logged AND $last_count === false ) {
$thistime = date( "Y-m-d H:i:s", $_TIME );
if( isset ( $_SESSION['member_lasttime'] ) ) {
$lasttime = date( "Y-m-d H:i:s", $_SESSION['member_lasttime'] );
} else {
$lasttime = date( "Y-m-d H:i:s", (time () + ($config['date_adjust'] * 60) - (3600 * 4)) );
}
$sql_count = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE approve=1 AND date between '$lasttime' AND '$thistime'" );
$last_count = $sql_count['count'];
create_cache( "lastcount_" . $member_id['user_id'], $last_count);
}
$tpl->set( '{last-count}', $last_count );
В шаблон login.tpl в нужном месте вставляем:
{last-count}
Так же можно вывести в main.tpl для этого в файле engine/modules/main.php после строки:
$tpl->set ( '{speedbar}', $tpl->result['speedbar'] );
Вставляем тот же код:
$last_count = dle_cache("lastcount_" . $member_id['user_id']);
if( $is_logged AND $last_count === false ) {
$thistime = date( "Y-m-d H:i:s", $_TIME );
if( isset ( $_SESSION['member_lasttime'] ) ) {
$lasttime = date( "Y-m-d H:i:s", $_SESSION['member_lasttime'] );
} else {
$lasttime = date( "Y-m-d H:i:s", (time () + ($config['date_adjust'] * 60) - (3600 * 4)) );
}
$sql_count = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE approve=1 AND date between '$lasttime' AND '$thistime'" );
$last_count = $sql_count['count'];
create_cache( "lastcount_" . $member_id['user_id'], $last_count);
}
$tpl->set( '{last-count}', $last_count );
Используем тег {last-count} в шаблоне main.tpl