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

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

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

Не хочется мне писать отдельную инструкцию, упаковывать его в архив, поэтому придется вам поработать самостоятельно, ручками :)
В корне сайта создать папку с названием click_counter задать ей права на запись 777.
В ней создать 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];
?>

Основная часть сделана :)
Теперь перейдем к шаблону и JS обработчику.
В качестве триггера, для желаемой кнопки добавляем имя класса click_count.
Пример:
<a href="[xfields_download]">скачать</a>

Нужно сделать так:
<a href="[xfields_download]" class="click_count">скачать</a>

Осталось подключить 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, вы можете либо залить свою картинку загрузки либо вообще убрать картинку из кода, на ваше усмотрение.
Вот собственно и все :)

С уважением,
Олег Александрович a.k.a. Sander
Внимание!
Для просмотра скрытого текста, Вам необходимо Войти или Зарегистрироваться.
  • Полезные статьи
  • 17-11-2013, 20:02
  • 1721
Вернуться назад
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.