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

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

Счетчик кликов на кнопку или количество скачиваний.
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
Автор: Sander
Внимание! Данный материал предоставлен сайтом исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Нет комментариев. Гость, не желаешь оставить первый комментарий?

Перед публикацией, советую ознакомится с правилами!

Наш Тelegram
Подписка залог успеха ;)
Бесплатный игровой хостинг
Только для жителей Украины
6 посетителей на сайте. Из них:
Гости5
Роботы1
Список пользователей
kirill56036 Был(a) в сети 6 минут назад
Natashauxx Был(a) в сети 17 минут назад
anislavple Был(a) в сети 30 минут назад
Natashaqoh Был(a) в сети 1 час назад
GregoryGeafe Был(a) в сети 1 час назад
Natashaare Был(a) в сети 1 час назад
bookioGet Был(a) в сети 2 часа назад
JamesAlifs Был(a) в сети 2 часа назад
DannyTat Был(a) в сети 2 часа назад
Donnagax Был(a) в сети 3 часа назад
Natashaklv Был(a) в сети 3 часа назад
liroeasbal Был(a) в сети 3 часа назад
Natashaofg Был(a) в сети 3 часа назад
imRhype Был(a) в сети 3 часа назад
Natashapxh Был(a) в сети 4 часа назад
Remydelm Был(a) в сети 5 часов назад
Natashanhp Был(a) в сети 5 часов назад
omg зеркало Был(a) в сети 5 часов назад
bookmheGet Был(a) в сети 6 часов назад
rtyompak Был(a) в сети 7 часов назад
Samantaytx Был(a) в сети 8 часов назад
Danielpealo Был(a) в сети 9 часов назад
Samantaiuq Был(a) в сети 10 часов назад
Samantaqnf Был(a) в сети 10 часов назад
Chinaobset Был(a) в сети 11 часов назад
Samantacqw Был(a) в сети 11 часов назад
Earnestvap Был(a) в сети 12 часов назад
GeorgePlevy Был(a) в сети 13 часов назад
Thomastek Был(a) в сети 13 часов назад
EdwardCrose Был(a) в сети 13 часов назад
christiCon Был(a) в сети 13 часов назад
khailfnvt Был(a) в сети 14 часов назад
Natashaagi Был(a) в сети 15 часов назад