• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Хак Как? Вывод в main шаблон количества новостей

Статус
В этой теме нельзя размещать новые ответы.

toxass

Постоялец
Регистрация
24 Июл 2007
Сообщения
114
Реакции
15
Сабж. Нужно для каталога файлов.
 
  • Заблокирован
  • #2
Нужно тупо количество новостей на сайте?
 
скорее всего ... список категорий следующего вида

- категория (12)
--суб категория (3)
--суб категория (3)
--суб категория (3)
- категория (12)
--суб категория (3)
 
скорее всего ... список категорий следующего вида

- категория (12)
--суб категория (3)
--суб категория (3)
--суб категория (3)
- категория (12)
--суб категория (3)

нет, нет...надо просто вывести сколько новостей во всех разделах в main шаблоне, такой тэг есть в stats, но в main он не пашет(
 
  • Заблокирован
  • #6
Да. Еще вопрос, это дает +1 запрос к базе каждый раз при рефреше странички?
Да, +1 запрос к бд Вот, лови.
Открываем index.php
Находим
PHP:
$tpl->load_template ( 'main.tpl' );
Ниже добавляем
PHP:
$all_col_news = $db->super_query("SELECT COUNT(*) as count from ".PREFIX."_post");
$tpl->set("{all_col_news}", $all_col_news['count']);

как вариант можно сделать кеширование.

PS если помог - кнопка спасибо внизу справа ;)
 
Мой вариант статистики сайта:
Выводит общее количество новостей тег {allnews}
Выводит общее количество пользователей тег {allusers}
Выводит количество новостей за день тег {todaynews}
Выводит количество пользователей зарегистрированных за день тег {todayusers}
P.s> с кэшем на 12 часов, и так сказать 1 запрос без кэша.

найти:
PHP:
require_once ROOT_DIR.'/engine/init.php';
добавить ниже:
PHP:
function get_vars_prev_next ($file, $time_minute = 1440){
	$filename = ENGINE_DIR.'/cache/system/'.$file.'.php';
	if (file_exists($filename)){
		$cr_time = filemtime($filename);
		// 86400 - если кэш больше дня, удалить...
		if ((time() - $cr_time) > ($time_minute * 60)) {
			@unlink($filename);
			return false;
		}
	}
	return unserialize(@file_get_contents(ENGINE_DIR.'/cache/system/'.$file.'.php'));
}

$site_stats = get_vars_prev_next('site_stats', 720);
if(!$site_stats){

	$row = $db->super_query("SELECT SUM(c1) count_statsusers, SUM(c2) count_statsnewusers, SUM(c3) count_statsnews, SUM(c4) count_daynews FROM ((SELECT 0 c1,0 c2, COUNT(*) c3, COUNT(IF(date>(NOW() - INTERVAL 1 DAY),1,NULL)) c4  FROM ". PREFIX ."_post WHERE approve = '1')  UNION  (SELECT COUNT(*) c1, COUNT(IF(FROM_UNIXTIME(reg_date) > (NOW() - INTERVAL 1 DAY),1,NULL)) c2, 0 c3,0 c4 FROM ". USERPREFIX ."_users)) as t1 ;");
	
	$site_stats['news'] = $row['count_statsnews'];
	$site_stats['daynews'] = $row['count_daynews'];
	$site_stats['users'] = $row['count_statsusers'];
	$site_stats['newusers'] = $row['count_statsnewusers'];
	set_vars('site_stats', $site_stats);
	$db->free();
}
найти:
PHP:
$tpl->load_template('main.tpl');
Добавить ниже:
PHP:
// ------- статистика по сайту ------------------
	$tpl->set('{allnews}', $site_stats['news']);
    $tpl->set('{allusers}', $site_stats['users']);
	$tpl->set('{todaynews}', $site_stats['daynews']);
    $tpl->set('{todayusers}', $site_stats['newusers']);


// ------- статистика по сайту ------------------
 
  • Нравится
Реакции: lift
DemanZ
Воркает, но есть косяк: показывает суммарное количество новостей а не новости прошедшие модерацию. Можно это как то вправить?
И можно как то еще и выводить общее количество категорий/подкатегорий?
 
DemanZ
Воркает, но есть косяк: показывает суммарное количество новостей а не новости прошедшие модерацию. Можно это как то вправить?
И можно как то еще и выводить общее количество категорий/подкатегорий?

Косяк подправил...
Я думаю можно, гляну на досуге...
если отдельным запросом то вот он:
Код:
select  COUNT(*) as all_cat, COUNT(IF(parent_id='0',1,NULL)) as count_root, COUNT(IF(parent_id != 0,1,NULL)) as count_parent from dle_video_category
выведет:
all_cat - количество всех категорий
count_root - количество "главных категорий (не подкатегории)"
count_parent - количество подкатегорий
P.s> гляну как объединить...
 
  • Нравится
Реакции: lift
Косяк подправил...
И всеравно оющее количество новостей вывело сейчас включая не прошедших модерацию.
Слушай, если ты все подправиш, то может докрутиш и последнюю фишку стат-странички - размер базы? :) чтоб в майне можно было сразу всю стату выводить и по юзерам и по статьям и по размеру БД.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху