dle.in.ua » Хаки » Хак министатистики

Хак министатистики

Автор: Dioxis от 23-03-2009, 17:12
Собственно решил все-же выложить этот хак, так как много просьб было.

Хак министатистики
Собственно решил все-же выложить этот хак, так как много просьб было. Итак, что мы имеем:
- Вывод числа зарегистрированных посетителей и изменение за сутки
- Количество новостей и изменение
- Количество файлов для Архива и Обменника
- Количество активных посетителей
- Текущее время (Сверяется со временем сервера)
- Возможно внедрение дополнительных хаков

-- Поддержка и консультация
-- Подобный хак стоит 15 WMZ, но для DLE.in.ua как всегда бесплатно. В то же время буду очень
благодарен за любую материальную помощь. Реквизиты внизу страницы.
==========
Итак приступим:

Для начала качаем файл:
ministat.zip [2.04 Kb] (cкачиваний: 532)
ministat.php

Кладем его в engine/modules

1. Открываем в корне index.php и ищем:

[quote]$tpl->set ( '{speedbar}', $tpl->result['speedbar'] );[/quote]


После этого вставляем код:


/////////////////////////////////////////////////////////
//////////////////ХАК ОТ DIOXIS//////////////////////////
/////////////////////////////////////////////////////////

$tpl->set("{date}",  date("H:i"));

$tpl->set( '{user_num}', $stats_users );
$tpl->set( '{user_day}', $user_day );

$tpl->set( '{news_num}', $stats_news );
$tpl->set( '{news_day}', $stats_day );

$tpl->set( '{files_num}', $files_num );
$tpl->set( '{files_day}', $files_day );

$tpl->set( '{uploads_num}', $uploads_num );
$tpl->set( '{uploads_day}', $uploads_day );

$tpl->set( '{online_num}', $online_num );



//////////////////ХАК ОТ DIOXIS END//////////////////////



2. открываем templates//templates/qwertys/main.tpl и вставляем в любом удобном месте:



<!-- Часы и министатистика от Dioxis -->

<td align="right" valign="bottom" style="color: gray;padding-right: 10px;">
<table><td>
Нас уже: [b]{user_num} (+{user_day})[/b]

Новостей на сайте: [b]{news_num} (+{news_day})[/b]

Файлов в Архиве: [b]{files_num} (+{files_day})[/b]

Файлов в Обменнике: [b]{uploads_num} (+{uploads_day})[/b]


Активно: [b]{online_num}[/b]

Текущее время (МСК): <font color="color" ="">[b]{date}[/b]</font>
  
</td></table>
</td>


<!-- Часы и министатистика от Dioxis-->



=======================================================

Все, установка закончена.
--
Демо сайт/сайт поддержки: http://symbiware.org
Реквизиты:
WMU: U348718141742
WMR: R131160182108
WMZ: Z301964866638
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • спс, сейчас протестим
    ^
  • Группа: User
  • Icq: 6254377
  • Комментариев: 73
  • Публикаций: 13
  • no 9 запросов....без кэширования бд разорвет

    могу на symbiware.org показать.тыщ 5 трафа спущу и бд труп.если хочешь проверить отпиши тут

    "файлов в архиве" и "обменнике" без модов или наличия таблиц в БД будут вызывать ерроры.

    --------------------
    • Kursor
    • Регистрация: 22.10.2008
    • Репутация: (0|0|0)
    • 23 марта 2009 20:45
    • 2
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • На счет кэширования - делаю, будет обновление. Кстати, многим нет нужды в в архиве или обменнике, по этому вырезайте

    Кстати, забыл добавить: В index.php после:
    require_once ROOT_DIR . '/engine/init.php';


    Вставить

    include ROOT_DIR.'/engine/modules/ministat.php';


    З.Ы. Почему нет редактирование новомти автором?(
    Через час выложу с кэшированием
    • Dioxis
    • Регистрация: --
    • Репутация: (||)
    • 23 марта 2009 21:03
    • 3
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • болышое спасиво! за модули
    • MaRZOCHi
    • Регистрация: --
    • Репутация: (||)
    • 23 марта 2009 21:55
    • 4
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Итак пробуем кэширование:
    Заменяем Весь текст в ministat.php

    Обновлено в 23:15


    <?php
    /*
    =====================================================
    Министатистика в шапке от Dioxis v.1.1 (с Кэшированием)
    -----------------------------------------------------
    http://symbiware.org/
    =====================================================
    Файл: ministat.php
    -----------------------------------------------------
    Назначение: Главная страница
    =====================================================
    */

    ///////////////Количество юзверей///////////////

    $stats_users = dle_cache("stats_users");
    if (!$stats_users) {
    $time = time() - 3500;

    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users" );
    $stats_users = $row['count'];

    create_cache("stats_users", $stats_users);
    }

    $user_day = dle_cache("user_day");
    if (!$user_day) {
    $time = time() - 3500;

    $temp_date = $_TIME - (3600 * 24);
    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users WHERE reg_date > '$temp_date'" );
    $user_day = $row['count'];

    create_cache("user_day", $user_day);
    }

    ///////////////Количество статей///////////////

    $stats_news = dle_cache("stats_news");
    if (!$stats_news) {
    $time = time() - 3500;

    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post" );
    $stats_news = $row['count'];

    create_cache("stats_news", $stats_news);
    }

    $stats_day = dle_cache("stats_day");
    if (!$stats_day) {
    $time = time() - 3500;

    $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);
    }

    ///////////////Количество файлов///////////////

    $files_num = dle_cache("files_num");
    if (!$files_num) {
    $time = time() - 3500;

    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_downloads" );
    $files_num = $row['count'];

    create_cache("files_num", $files_num);
    }

    $files_day = dle_cache("files_day");
    if (!$files_day) {
    $time = time() - 3500;

    $temp_date = date( 'Y-m-d H:i', $_TIME - (3596 * 24) );
    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_downloads WHERE date >= '$temp_date'AND date <= '$temp_date' + INTERVAL 24 HOUR AND approve ='1'" );
    $files_day = $row['count'];

    create_cache("files_day", $files_day);
    }

    ///////////////Количество файлов в обменнике///////////////

    $uploads_num = dle_cache("uploads_num");
    if (!$uploads_num) {
    $time = time() - 3500;

    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_uploads" );
    $uploads_num = $row['count'];

    create_cache("uploads_num", $uploads_num);
    }

    $uploads_day = dle_cache("uploads_day");
    if (!$uploads_day) {
    $time = time() - 3500;

    $temp_date = date( 'Y-m-d H:i', $_TIME - (3596 * 24) );
    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_uploads WHERE date >= '$temp_date'AND date <= '$temp_date' + INTERVAL 24 HOUR AND approve ='1'" );
    $uploads_day = $row['count'];

    create_cache("uploads_day", $uploads_day);
    }

    ///////////////Количество активных юзверей///////////////

    $online_num = dle_cache("online");
    if (!$online_num) {
    $time = time() - 3500;

    $result_online = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_users WHERE lastdate > $time ORDER BY lastdate DESC");

    $online_num = $result_online['count'];

    create_cache("online", $online_num);
    }

    ?>
    • Dioxis
    • Регистрация: --
    • Репутация: (||)
    • 23 марта 2009 22:04
    • 5
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Цитата: Dioxis
    Итак пробуем кэширование:
    Вставляем текст ниже в ministat.php

    так заменить или нижевставить по конкретней =))
    • qiq.or.kz
    • Регистрация: --
    • Репутация: (||)
    • 23 марта 2009 23:14
    • 6
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Заменить конечно)) Смотри теперь, обновлено
    • Dioxis
    • Регистрация: --
    • Репутация: (||)
    • 23 марта 2009 23:21
    • 7
    ^
  • Группа: User
  • Icq: 899978
  • Комментариев: 230
  • Публикаций: 112
  • Гы

    MySQL Error!
    ------------------------

    The Error returned was:
    Table 'u172560_2.dle_downloads' doesn't exist

    Error Number:
    1146

    --------------------
    • Boroda
    • Регистрация: 16.10.2008
    • Репутация: (0|0|0)
    • 24 марта 2009 07:02
    • 8
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Я же написал, что у кого нету Обменника и Архива удаляем кусок. Кстати лучше качайте по этой ссылке:
    http://symbiware.org/FTP/ministat.zip

    Там немного еще доработан, и описание поправл, а то здесь парсер кушает. Админы просьба добавить этот файл и коммент Н4 в описание
    • Dioxis
    • Регистрация: --
    • Репутация: (||)
    • 24 марта 2009 09:16
    • 9
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Пасибо учитель!
    • 123456
    • Регистрация: --
    • Репутация: (||)
    • 24 марта 2009 19:33
    • 10
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • работает! спасибо, оставил только

    Нас уже:

    Новостей на сайте

    Текущее время:
    • M1croSoft
    • Регистрация: --
    • Репутация: (||)
    • 25 марта 2009 17:35
    • 11
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • M1croSoft - пожалуйста
    • Dioxis
    • Регистрация: --
    • Репутация: (||)
    • 25 марта 2009 22:18
    • 12
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Количество комментариев допишите пжста
    • XuT
    • Регистрация: --
    • Репутация: (||)
    • 26 марта 2009 06:24
    • 13
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • XuT лови:

    в ministat.php вставь:

    ///////////////Количество комменов///////////////

    if (!$count_comments) {
    $time = time() - $cached;

    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_comments" );
    $count_comments = $row['count'];

    create_cache("count_comments", $count_comments);
    }

    if (!$comments_day) {
    $time = time() - $cached;

    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_comments WHERE date >= '$temp_date'AND date <= '$temp_date' + INTERVAL 24 HOUR" );
    $comments_day = $row['count'];

    create_cache("comments_day", $comments_day);
    }


    В index.php допиши:

    $tpl->set( '{comm_day}', $comments_day );
    $tpl->set( '{comm_num}', $count_comments );


    В main вставь:

    Количество комментариев: {comm_num} (+{comm_day})




    Kursor - твое предложение по проверке еще в силе?
    • Dioxis
    • Регистрация: --
    • Репутация: (||)
    • 26 марта 2009 11:20
    • 14
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Цитата: Dioxis
    XuT лови:

    в ministat.php вставь:

    ///////////////Количество комменов///////////////

    if (!$count_comments) {
    $time = time() - $cached;

    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_comments" );
    $count_comments = $row['count'];

    create_cache("count_comments", $count_comments);
    }

    if (!$comments_day) {
    $time = time() - $cached;

    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_comments WHERE date >= '$temp_date'AND date <= '$temp_date' + INTERVAL 24 HOUR" );
    $comments_day = $row['count'];

    create_cache("comments_day", $comments_day);
    }


    В index.php допиши:

    $tpl->set( '{comm_day}', $comments_day );
    $tpl->set( '{comm_num}', $count_comments );


    В main вставь:

    Количество комментариев: {comm_num} (+{comm_day})




    Kursor - твое предложение по проверке еще в силе?

    УЧИТЕЛЬ ПАСИБО!!
    • 123456
    • Регистрация: --
    • Репутация: (||)
    • 26 марта 2009 16:37
    • 15
    ^
  • Группа: Гости
  • Icq: 767792
  • Комментариев: 414
  • Публикаций: 19
  • MaRZOCHi,
    оО, ты говориш по русски?!
    you speak in russian.. oO
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • -=ZLoY=-,
    Еще и как))
    • Dioxis
    • Регистрация: --
    • Репутация: (||)
    • 28 марта 2009 13:29
    • 17
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • дак что делать если ошибка как в 8ом коменте?
    • HiTrAy
    • Регистрация: --
    • Репутация: (||)
    • 8 апреля 2009 16:56
    • 18
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • У меня на 8.2 не работает, всяко перепробывал, не фурычит sad
    • TaBBaT
    • Регистрация: --
    • Репутация: (||)
    • 10 сентября 2009 16:17
    • 19
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 4
  • Публикаций: 0
  • MySQL Error!
    ------------------------

    The Error returned was:
    Table 'admin.dle_downloads' doesn't exist

    Error Number:
    1146
    SELECT COUNT(*) as count FROM dle_downloads

    Нихрена невыходит. Кто подскажет в чём проблема? У меня 8.3 версия.

    Кстати, убираю всё в index.php и всё нормально фурычит, значит проблема там.
    • vinnston
    • Регистрация: 31.12.2009
    • Репутация: (0|0|0)
    • 11 января 2010 00:42
    • 20
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Мод фигня не работает
    • bts
    • Регистрация: --
    • Репутация: (||)
    • 17 февраля 2010 13:36
    • 21
    ^
  • Группа: User
  • Icq: 819585
  • Комментариев: 102
  • Публикаций: 11
  • Цитата: bts
    Мод фигня не работает

    а может это просто руки не тем концом вставлены?

    --------------------
    • SKDzR
    • Регистрация: 1.08.2008
    • Репутация: (0|0|0)
    • 17 февраля 2010 13:44
    • 22
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • MySQL Error!
    ------------------------

    The Error returned was:
    Table 'admin.dle_downloads' doesn't exist

    Error Number:
    1146
    SELECT COUNT(*) as count FROM dle_downloads

    Вот такая ошибка на dle 8.3 там он вроде не стыкуесть с модом DownPage for DLE но его я не хочу уюирать, как это можно обойти
    • tunar
    • Регистрация: --
    • Репутация: (||)
    • 6 марта 2010 09:32
    • 23
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 208
  • Публикаций: 14
  • tunar,
    вообщето таблицы не хватает так и пишет что таблица admin.dle_downloads не правильна или не найдена

    --------------------
    • demon
    • Регистрация: 26.04.2008
    • Репутация: (1|1|0)
    • 6 марта 2010 11:04
    • 24
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • даже на денвере установил всё равно также пишет на dle 8.3 уже без понятия что делать

    dle_downloads и патом не хватает таблицы dle_uploads как их можно под него подогонать

    без этих

    $tpl->set( '{files_num}', $files_num );
    $tpl->set( '{files_day}', $files_day );

    $tpl->set( '{uploads_num}', $uploads_num );
    $tpl->set( '{uploads_day}', $uploads_day );

    всё работает но мне хотелосьбы чтоб хоть чтоб файлов в архиве показывало аа для него нету таблицы как это всё можно наворотить
    • tunar
    • Регистрация: --
    • Репутация: (||)
    • 6 марта 2010 14:52
    • 25
    ^
  • Группа: User
  • Icq: 373624275
  • Комментариев: 71
  • Публикаций: 0
  • vinnston

    Table 'admin.dle_downloads' doesn't exist

    таблица не создана

    --------------------
    • lika004
    • Регистрация: 13.02.2010
    • Репутация: (0|0|0)
    • 6 марта 2010 15:27
    • 26
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Ну я это уже понел а какой запрос в бд сделать чтоб она создалась я уже инет перевернул не нашол
    • tunar
    • Регистрация: --
    • Репутация: (||)
    • 6 марта 2010 16:01
    • 27
    ^
  • Группа: User
  • Icq: 373624275
  • Комментариев: 71
  • Публикаций: 0
  • а млин выше написано
    $tpl->set( '{files_num}', $files_num );
    $tpl->set( '{files_day}', $files_day );

    $tpl->set( '{uploads_num}', $uploads_num );
    $tpl->set( '{uploads_day}', $uploads_day );

    Файлов в Архиве: {files_num} (+{files_day})

    Файлов в Обменнике: {uploads_num} (+{uploads_day})


    удалить эти строки если у вас нет файлов в обменике и архиве

    если вы хотите чтобы отображались сначала залейте файлы

    --------------------
    • lika004
    • Регистрация: 13.02.2010
    • Репутация: (0|0|0)
    • 6 марта 2010 17:25
    • 28
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 17
  • Публикаций: 1
  • у комментов всегда +0 !!! ( только когда добавляешь коммент, пишет реальное число добавленных за день, но при обновлении страницы число снова на 0 сбрасывается. DLE 8.3
    • qwerty
    • Регистрация: 4.03.2008
    • Репутация: (0|0|0)
    • 26 марта 2010 03:10
    • 29
    ^
  • Группа: User
  • Icq: 557572849
  • Комментариев: 62
  • Публикаций: 14
  • удаляем код в ministat и всё работает, только без обменника

    • lucefeel
    • Регистрация: 22.04.2009
    • Репутация: (0|0|0)
    • 14 января 2011 06:13
    • 30
    ^
    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.