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

Опубликовал: Дмитрий, 24-12-2018, 13:16, Dle улучшения, 571, 0


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

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 Счетчик кликов на кнопку или количество скачиваний по нажатию
. Счетчик кликов на кнопку или количество скачиваний по нажатию - скриншот{short-story limit="120"}
Во время вашего ожидания Зарегистрированные пользователи уже качают!
Подождите, сейчас файл будет подготовлен, через
секунд Вы получите ссылку на скачивание
Оценивая файлы вы помогаете другим пользователям! 0 Рейтинг: 0 (0 голосов)
Похожие публикации
Игровой баннер 468x60 в формате psd Игровой баннер 468x60 в формате psd Игровой баннер 468x60 в формате psd Игровой баннер 468x60 в формате psd
У данной публикации еще нет комментариев . Хотите начать обсуждение?

Имя
E-Mail
Кликните на изображение чтобы обновить код, если он неразборчив
Copyright © 2018 | Проект 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.