Счетчик кликов на кнопку или количество скачиваний по нажатию

Счетчик кликов на кнопку или количество скачиваний по нажатию

Счетчик кликов на кнопку или количество скачиваний по нажатию Sander" />
Иногда бывают случаи, когда нужен отдельный счётчик который будет подсчитывать какое-либо действие пользователя и хранить их в дальнейшем. Данный хак поможет вам отрегулировать ситуацию в том плане, что допустим "удалённые" материалы хранятся на облачных хранилищах, а что бы знать сколько человек решила всё же перейти и ознакомиться с материалом, то в данном случае нам поможет данное решение.

1. В корне сайта создать папку с названием click_counter задать ей права на запись 777.

2. В ней создать PHP файл index.php с содержимым:
<?PHP
@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'display_errors', true );
@ini_set ( 'html_errors', false );
define ( 'ROOT_DIR', dirname ( __FILE__ ) );

if(!$_GET['href']) die('Undefinded href');
$href = md5($_GET['href']);
$stat = unserialize(file_get_contents(ROOT_DIR."/stats.txt"));
if(!$stat[$href]) $stat[$href] = 0;
if($_GET['type']=='set'){
    $stat[$href]++;
    file_put_contents(ROOT_DIR. "/stats.txt", serialize($stat), LOCK_EX);
}
echo $stat[$href];
?>
3. Теперь перейдем к шаблону и JS обработчику. В качестве триггера, для желаемой кнопки добавляем имя класса click_count.
Например было:
<a href="[xfields_download]">скачать</a>
А нужно сделать так:
<a href="[xfields_download]" class="click_count">скачать</a>
4. Осталось подключить js, для этого в принципе в любой подключенный к шаблону JS файл можно вставить такой код:
$(function(){
    function get_counter(a,b){
        $.get(dle_root+'click_counter/index.php',{type:b,href:a.attr('href')},function(d){
            a.find('.click_counter').html(d);
        });
    }
    var click_trigger = ".click_count";
    $(click_trigger).each(function(){
        $(this).append(" <span class='click_counter' title='Количество кликов'><img src='/click_counter/loading.gif' alt=''/></span>");
        get_counter($(this),'');
    });
    $('body').on("click",click_trigger,function(){
        get_counter($(this),'set');
    });
})
Готово!

Отдельно стоит отметить - где и как будет отображаться само число счетчика. На примере того же html кода, что я приводил выше, мы получим:
<a href="[xfields_download]" class="click_count">скачать<span class='click_counter' title='Количество кликов'>0</span></a>
Вам останется только настроить стиль для самого числа счетчика.
Ну и еще, как видно в коде, пока скрипт не обработался в качестве заглушки используется изображение /click_counter/loading.gif, вы можете либо залить свою картинку загрузки либо вообще убрать картинку из кода, на ваше усмотрение.

Версия DLE: 9.x-10.x
CMS: DLE
Категория: Модули
Автор: Sander
Опубликовал: Дмитрий

Подождите, сейчас файл будет подготовлен...

Через
секунд Вы получите ссылку.

А пока может Зарегистрируемся? wink Это быстро!


Имя:*
E-Mail:

ТОП 7 Недели

Самое просматриваемое
Weed Supermarket Simulator

Weed Supermarket Simulator

Симулятор
31
Dragon's Dogma 2 - Deluxe Edition

Dragon's Dogma 2 - Deluxe Edition

Action; RPG
23
Mineral Mining Simulator

Mineral Mining Simulator

Симулятор
18

Copyright © 2025 | Проект GiG-LiFe.ru
Материалы на этом сайте взяты из общедоступных источников и могут быть удалены по просьбе авторов, при наличии доказательства авторства.
Materials on this site are taken from public sources and may be deleted at the request of their authors when there is evidence of authorship.