1. Уважаемый Гость, в связи с нехваткой свободного времени наш форум продается. Форум богат своими плагинами и различными шаблонами как платными, которые трудно где достать бесплатно так и бесплатными. Если Вас заинтересовал форум, то, обращаемся по почте: administrator_ps@rambler.ru.
Скрыть объявление
Мы рады Вас видеть на нашем форуме! Надеюсь тебе у нас понравится и ты станешь вместе с нами активным и постоянным пользователем)

Подсчет скачанного пользователем в его профиле- хак для DLE 9.x-11.x

Тема в разделе "Хаки", создана пользователем MaxiRubo, 23 окт 2016.

  1. TopicStarter Overlay
    MaxiRubo

    MaxiRubo Команда форума Основатель

    1.432
    2
    1
    pic01.jpg

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

    Установка:

    1) Делаем SQL запрос:


    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]