» » » Вывод количества новостей на главной [DLE 9.x - 10.x]

Вывод количества новостей на главной [DLE 9.x - 10.x]

Название: Вывод количества новостей на главной
Автор: webfull
CMS: DLE 9.x - 10.x

Описание:
*Хак будет направлен на вывод количества новостей на главной странице DLE:
1. Вывод общего количества новостей;
2. Вывод количества новостей за месяц;
2. Вывод количества новостей за неделю;
2. Вывод количества новостей за день;*



И так поехали ковырять движок DLE:
Все правки будут только касаться файла index.php

Первое выведем "общее количество новостей" на главной DLE:
Открыть index.php, найти:
$tpl->load_template ( 'main.tpl' );


После вставить:
$stats_news = dle_cache('news_count');
if(empty($stats_news)){
    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post" );
    $stats_news = $row['count'];
    create_cache('news_count',$stats_news);
}
$tpl->set ( '{news_num}', $stats_news );



В шаблоне будет доступен такой тег:
{news_num}


Выводим новости опубликованные за месяц:
$cached = 3500;

$stats_month = dle_cache("stats_month");
if (!$stats_month) {
$time = time() - $cached;
    $temp_date = date( 'Y-m-d H:i', $_TIME - (3600 * 24 * 31) );
	$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE date >= '$temp_date'AND date <= '$temp_date' + INTERVAL 31 DAY AND approve ='1'" );
	$stats_month = $row['count'];
    create_cache("stats_month",$stats_month);
}
$tpl->set ( '{stats_month}', $stats_month )


В шаблоне будет доступен тег::
{stats_month}


Выводим количество опубликованных новостей за неделю:
$stats_week = dle_cache("stats_week");
if (!$stats_week) {
$time = time() - $cached;
$temp_date = date( 'Y-m-d H:i', $_TIME - (3600 * 24 * 7) );
	$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE date >= '$temp_date'AND date <= '$temp_date' + INTERVAL 7 DAY AND approve ='1'" );
	$stats_week = $row['count'];
	
	 create_cache("stats_week",$stats_week);
}
$tpl->set ( '{stats_week}', $stats_week );


Теперь в шаблоне доступен тег вывода количества новостей за сутки:
{stats_week}


И так последнее выводим количество новостей за день (сутки):
$stats_day = dle_cache("stats_day");
if (!$stats_day) {
$time = time() - $cached;
$temp_date = date( 'Y-m-d H:i', $_TIME - (3596 * 24) );
	$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE date >= '$temp_date'AND date <= '$temp_date' + INTERVAL 24 HOUR AND approve ='1'" );
	$stats_day = $row['count'];
 create_cache("stats_day",$stats_day);
}
$tpl->set ( '{stats_day}', $stats_day );


В шаблоне вставляем тег обработки новостей за сутки:
{stats_day}


Все очень просто, не создает дополнительной нагрузки. Все данные кешируються. Такими хаками вы можете разбавить свой проект от надоевшим всем сайты и шаблоны под копирку.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии

4

Daivz

Посетители 31 декабря 2013 13:17
Автор очень старался: ****
QnutСторонние ссылки запрещены в комментариях, если нужно указать ссылку на сайт автора в публикации, то пишем об этом лично администрации или модераторам!
4
Ага:
Вывод количество(А) новостей на главной [DLE 9.x - 10.x]
УЧИ ПАДЕЖИ!
Копировать это не русский учить-"Выведем количество новостей на главной."

Цитата: Daivz
Автор очень старался: ***

На стату парень работает=)
4

andros0789

Посетители 6 января 2014 18:21
Цитата: andros0789
Ага:
Вывод количество(А) новостей на главной [DLE 9.x - 10.x]
УЧИ ПАДЕЖИ!
Копировать это не русский учить-"Выведем количество новостей на главной."

Цитата: Daivz
Автор очень старался: ***

На стату парень работает=)


Минусуют за правду уже...вот оно время героев)))
4

Ashot

Посетители 6 января 2014 23:08
andros0789 - Уважаемый, это Вам нужно выдать "ПРЕД" за Ваши посты, не несущие ни какой смысловой нагрузки, относящейся к набиванию постам.
Не учите меня что мне делать, и не будете посланы куда подальше! Тыкать на ошибки в орфографии, будете своих детей, я не гражданин России, и не обязан доскональна идеально владеть вашим языком!
P.S И не я Автор "хака-статьи" я всего лишь скопировал с форума локальной сети.
4

Dada

Посетители 7 марта 2015 01:45
Привет всем, хочу обратить внимание знающих на то как я собрал велосипед из предоставленной рамы.

$count_comments = dle_cache('comm_count');
if(empty($count_comments)){
    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_comments" );
    $count_comments = $row['count'];
    create_cache('comm_count',$count_comments);

$stats_users = dle_cache('user_count');
if(empty($stats_users)){
    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users" );
    $stats_users = $row['count'];
    create_cache('user_count',$stats_users);
}
$tpl->set( '{users_num}', $stats_users );


Все прекрасно работает у меня лично, но меня тревожит один момент


В предоставленном коде для вывода общего количествО новостей есть следующий тег:

$stats_news = dle_cache('news_count');
if(empty($stats_news)){
$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post" );
$stats_news = $row['count'];
create_cache('news_count',$stats_news);
}
$tpl->set ( '{news_num}', $stats_news );

Я понятия не имею, что в этом месте нужно было вписать для комментариев и пользователей, но то что я написал(с балды) работает и я рад этому очень, но все же хотелось бы узнать, что на самом деле там должно быть или вообще должно ли быть там что либо?!

Спасибо за ваше внимание! bully
4
где это
$tpl->load_template ( 'main.tpl' );
найти в index.php , если там нет вообще этого ????
картинку не поставишь.... angry запретили чтоль ставить скрины?

вот какой файл
 Файл: index.php
-----------------------------------------------------
 Назначение: Главная страница
=====================================================
*/

@ob_start ();
@ob_implicit_flush ( 0 );

if( !defined( 'E_DEPRECATED' ) ) {

	@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
	@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );

} else {

	@error_reporting ( E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE );
	@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE );

}

@ini_set ( 'display_errors', true );
@ini_set ( 'html_errors', false );

define ( 'DATALIFEENGINE', true );
define ( 'ROOT_DIR', dirname ( __FILE__ ) );
define ( 'ENGINE_DIR', ROOT_DIR . '/engine' );

require_once ROOT_DIR . '/engine/init.php';

?>
4

Tesak

Местные 5 мая 2015 14:34
Цитата: Двигатель
где это
$tpl->load_template ( 'main.tpl' );
найти в index.php , если там нет вообще этого ????
картинку не поставишь.... angry запретили чтоль ставить скрины?

вот какой файл
 Файл: index.php
-----------------------------------------------------
 Назначение: Главная страница
=====================================================
*/

@ob_start ();
@ob_implicit_flush ( 0 );

if( !defined( 'E_DEPRECATED' ) ) {

	@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
	@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );

} else {

	@error_reporting ( E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE );
	@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE );

}

@ini_set ( 'display_errors', true );
@ini_set ( 'html_errors', false );

define ( 'DATALIFEENGINE', true );
define ( 'ROOT_DIR', dirname ( __FILE__ ) );
define ( 'ENGINE_DIR', ROOT_DIR . '/engine' );

require_once ROOT_DIR . '/engine/init.php';

?>


это теперь тут: \engine\modules\main.php

4

djrogoff

Посетители 26 мая 2015 19:19
после $tpl->set ( '{stats_month}', $stats_month )
автор забыл поставить точку с запятой >> ;

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.