Главная » 2013 » Январь » 31 » Подсчет скачанного пользователем в его профиле
19:31
Подсчет скачанного пользователем в его профиле


Хак позволяет подсчитать сколько мегабайт скачал пользователь с сайта,
количество скачанного выводится в профиле каждого пользователя.

Установка:
1) Делаем SQL запрос:
ALTER TABLE `dle_users` ADD`download` varchar(10) NOT NULL DEFAULT '0';

2) Открываем engine/modules/profile.php
Находим:
$tpl->set( '{news-num}', $row['news_num'] );

Ниже вставляем:
$tpl->set( '{download}', formatsize($row['download']));

3) Открываем engine/download.php
Находим:
$db->query ( "UPDATE " . PREFIX . "_static_files SET dcount=dcount+1 WHERE id ='$id'" );

Ниже вставляем:
$size = @filesize( FILE_DIR . $row['onserver'] );
    $dl = $member_id['user_id'];
    $db->query ( "UPDATE " . PREFIX . "_users SET download=download+'$size' WHERE user_id ='$dl'" );

Находим:
$db->query ( "UPDATE " . PREFIX . "_files SET dcount=dcount+1 WHERE id ='$id'" );

Ниже вставляем:
$size = @filesize( FILE_DIR . $row['onserver'] );
    $dl = $member_id['user_id'];
    $db->query ( "UPDATE " . PREFIX . "_users SET download=download+'$size' WHERE user_id ='$dl'" );

4) В шаблоне userinfo.tpl в нужном месте вставить:
Скачано с сервера: {download}

Если кому нужно вставить вывод в комментариях то делаем следующее.
Открываем engine/classes/comments.class.php
Находим:
$tpl->set( '{comm-num}', intval( $row['comm_num'] ) );

Ниже добавляем:
$tpl->set( '{download}', formatsize($row['download']));

Теперь в шаблоне comments.tpl в нужном месте вписываем:
Скачано с сервера: {download}

Что бы в профиле постоянно не висело пустое значение "Скачал", делаем так:
Пропускаем шаг №2 в инструкции выше.

Ищем в engine/modules/profile.php (примерно 522 строка)

$tpl->set( '[/not-news-num]', "" );
    }

Ниже вставляем:

if( $row['download'] ) {
        $tpl->set( '[download]', "" );
        $tpl->set( '[/download]', "" );
        $tpl->set( '{download}', formatsize( $row['download'] ) );
        $tpl->set_block( "'\[not-download\](.*?)\[/not-download\]'si", "" );
    
    } else {
        $tpl->set_block( "'\[download\](.*?)\[/download\]'si", "" );
        $tpl->set( '{download}', "" );
        $tpl->set( '[not-download]', "" );
        $tpl->set( '[/not-download]', "" );
    }

Теперь в профиле пользователя всё это дело можно выводить так:

[download]Скачал - {download}[/download]
[not-download]Бездельничает[/not-download]
Категория: Заметки вебмастреа | Просмотров: 449 | Добавил: kalashnikov_by | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]