X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

> Помощь по Dle Forum
silva
silva
Topic Starter сообщение 26.4.2010, 22:17; Ответить: silva
Сообщение #1


Здравствуйте!
Как известно, в DLE Forum 2.5 была улучшена статистика форума (по сравнению с предыдущими версиями). Но чтоб уменшить нагрузку она кэшируется, а кэш обновляется раз в сутки.

На их официальном сайте написано как отключить кэш:

/engine/forum/sources/modules/stats.php

$stats_array = $fcache->get('stats');

Замените на:
$stats_array = '';

+4 MySQL запроса на главной форума.

Вопрос: Как сделать чтоб статистика кэшировалась, но кэш обновлялся например каждый час?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
 
Открыть тему
Ответов (1 - 6)
Electric
Electric
сообщение 27.4.2010, 1:21; Ответить: Electric
Сообщение #2


Выложите исходник этого файла: /engine/forum/sources/modules/stats.php


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
silva
silva
Topic Starter сообщение 27.4.2010, 9:10; Ответить: silva
Сообщение #3


Вот

<?php
/*
=====================================================
DLE Forum - by DLE Files Group
-----------------------------------------------------
http://dle-files.ru/
-----------------------------------------------------
File: stats.php
-----------------------------------------------------
md5: 998c814c76c5e0ed84a48cde6ca8380d
=====================================================
Copyright © 2008,2010 DLE Files Group
=====================================================
*/

if(!defined('DATALIFEENGINE'))
{
die("Hacking attempt!");
}
$act = $_REQUEST['act'];

if ($forum_config['stats'] AND !$act)
{
$stats_array = array();

$today_date = date('d');;

$stats_array = $fcache->get('stats');

if (!$stats_array OR $stats_array['date'] != $today_date)
{
$stats_array = FALSE;

$stats_array = array();

$row_post = $db->super_query("SELECT COUNT(pid) as count FROM " . PREFIX . "_forum_posts");

$stats_array['posts'] = $row_post['count'];

$row_topic = $db->super_query("SELECT COUNT(tid) as count FROM " . PREFIX . "_forum_topics");

$stats_array['topics'] = $row_topic['count'];

$row_users_reg = $db->super_query("SELECT COUNT(user_id) as count FROM " . PREFIX . "_users");

$stats_array['users_reg'] = $row_users_reg['count'];

$row_users = $db->super_query("SELECT COUNT(user_id) as count FROM " . PREFIX . "_users WHERE forum_post");

$stats_array['users'] = $row_users['count'];

$result_users = $db->query("SELECT * FROM " . PREFIX . "_users WHERE forum_post ORDER BY forum_post DESC LIMIT 10");

while ($row = $db->get_row($result_users))
{
$top_count++;

if ($top_count > 1)
{
$symbol = ", ";
}

$group_span = $forum_groups[$row['user_group']]['group_colour'];

if ($forum_config['mod_rewrite'])
{
$a_top_users = "{$config['http_home_url']}user/".urlencode($row['name'])."/";
} else
{
$a_top_users = "{$config['http_home_url']}?subaction=userinfo&user=".urlencode($row['name'])."";
}
$stats_array['top_users'] .= $symbol."<a href=\"{$a_top_users}\"><span style=\"color:{$group_span}\">$row[name]</span></a>";
}

if (!$stats_array['top_users'])
{
$stats_array['top_users'] = "--";
}

$stats_array['date'] = $today_date;

$last_user_row = $db->super_query("SELECT * FROM " . PREFIX . "_users ORDER BY user_id DESC LIMIT 1");

$stats_array['last_user'] = link_user($last_user_row['name']);

$stats_array['max_online'] = $max_online['count'];
$stats_array['max_online_time'] = langdate('j F Y, H:i', $max_online['time']);

$fcache->set('stats', $stats_array);
}

// tpl compile //
$tpl->load_template($tpl_dir.'stats.tpl');

if ($forum_config['online'] and $forum_config['sessions_log'])
{
get_forum_online();

$tpl->set('[online-stats]','');
$tpl->set('[/online-stats]','');
}
else
{
$tpl->set_block("'\\[online-stats\\](.*?)\\[/online-stats\\]'si","");
}

$tpl->set('{post-num}', $stats_array['posts']);
$tpl->set('{topic-num}', $stats_array['topics']);
$tpl->set('{all-users}', $stats_array['users_reg']);
$tpl->set('{forum-users}', $stats_array['users']);
$tpl->set('{top-users}', $stats_array['top_users']);

$tpl->set('{online-num}', $forum_online['all_count']);
$tpl->set('{member_count}', $forum_online['member_count']);
$tpl->set('{guest_count}', $forum_online['guest_count']);
$tpl->set('{online_time}', $forum_config['session_time']);

if (!$forum_online['member_list'])
{
$forum_online['member_list'] = ""; // default value: --
}

$tpl->set('{member_online}', $forum_online['member_list']);

$tpl->set('{last_user}', $stats_array['last_user']);
$tpl->set('{max_online}', $stats_array['max_online']);
$tpl->set('{max_online_time}', $stats_array['max_online_time']);

$tpl->compile('forum_stats');
$tpl->clear();
}
?>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MeTaTRoN
MeTaTRoN
сообщение 27.4.2010, 12:49; Ответить: MeTaTRoN
Сообщение #4


а ты покупал или ты используешь null?


--------------------
Программист: PHP, JavaScript, HTML5, HTML5 canvas, CSS, AJAX, jquery, SQL.
Реклама на аниме сайте
Услуги программиста, тема на форуме
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Electric
Electric
сообщение 27.4.2010, 19:35; Ответить: Electric
Сообщение #5


Сделайтей бекап этого файла потом замените строчку:
$today_date = date('d');

на такую:
$today_date = date('H');

Не уверен на все 100%, но должно по идее работать. wink.gif


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
silva
silva
Topic Starter сообщение 27.4.2010, 23:05; Ответить: silva
Сообщение #6


а ты покупал или ты используешь null?

покупал, но их саппорт просто убивает...

Сделайтей бекап этого файла потом замените строчку:
Код
$today_date = date('d');
на такую:
Код
$today_date = date('H');
Не уверен на все 100%, но должно по идее работать.

спасибо, щас попробую


вроде все нормально работает, но почему то число гостей после этих изменений выросло во много раз... такое ощущения что счетчик гостей только добавляет сесии, и не сбрасывает их.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Electric
Electric
сообщение 28.4.2010, 15:33; Ответить: Electric
Сообщение #7


Хорошо что работает. Возможно, нужно ковырять глубже в чем там прикол. rolleyes.gif

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Требуется помощь по сайту на "ВордПресс"
Закрылся доступ в панель администратора
15 Tia2 2345 17.4.2024, 0:54
автор: diviner99
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыСостояние после ампутации - нужна помощь
благотворительный топик
49 vitvirtual 5873 1.4.2024, 5:23
автор: vitvirtual
Открытая тема (нет новых ответов) требуется помощь с themasoftware (Темапостером)
0 Taylor 623 16.3.2024, 18:41
автор: Taylor
Открытая тема (нет новых ответов) DLE xProtect
2 xoopw 5977 15.1.2024, 21:06
автор: Diana_Wesley
Открытая тема (нет новых ответов) Обновить сайт на CMS DLE
1 Sawich 1661 2.9.2023, 10:10
автор: WoWeb


 



RSS Текстовая версия Сейчас: 19.4.2024, 8:51
Дизайн