14.11.13, 13:53
0 комментарий
  DLE Хаки

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

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







Не хочется мне писать отдельную инструкцию, упаковывать его в архив, поэтому придется вам поработать самостоятельно, ручками.
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

Реклама

Напишите своё мнение

  • acuteaggressiveair_kissangel
    badbbbeachbeee
    biggrinbig_bossblumblush
    boastbombboredombye
    clappingcraycrazycurtsey
    dancedashdeclarediablo
    diroldon-t_mentiondownloaddrinks
    first_moveflirtfocusfool
    friendsgive_heartgive_rosegood
    hangheartheathelp
    hihunterhystericireful
    kingkisslaughlazy
    lolmail1mambaman_in_love
    mdamega_shokmoilmosking
    musicneanegativenew_russian
    okon_the_quietpardonparting
    partypilotpioneerpleasantry
    popcormpranksterprevedpunish
    roflrtfmrussiansad
    sarcasticscarescratchsearch
    secretsensoredshokshout
    slowsmilesmokesoldier
    soldier_girlsorryspitefulspruce_up
    stinkersuicidesunsuperstition
    swoonteasetenderthanks
    thisto_pick_ones_noseto_take_umbragetreaten
    umnikunknwvampirevava
    victorywackowhistlewink
    wizardyahooyesyu
    e101e102e103e104
    e105e106e107e108
    e109e110e111e112
    e113e114e115e116
    e117e118e119e120
    e121e122e123e124
    e125e126e127e128
    e129e130e131e132
    e133e134e135e136
    e137e138e139e140
    e141e142e143e144
    e145e146e147e148
    e149e150e151e152
    e153e154e155e156
    e157e158e159e160
    e161e162e163e164
    e165e166e167e168
    e169e170e171e172
    e173e174e175e176
    e177e178e179e180
    e181e182e183e184
    e185e186e187e188
    e189e190e191e192
    e193e194e195e196
    e197e198e199e200
    e201e202e203e204