Хаки и Скрипты Next Generation CMS

Скрипт - счетчик кликов или скачиваний для внешних ссылок

irbees2008 irbees2008 Опубликовано - 12 - сентября Текст и ссылки
6876 - 3
  • Автор: Sander
  • Адаптировал: irbees2008
  • Источник:
  • Уровень сложности исполнения: это делается простым копированием и нажиманием кнопки
  • Демо:

На конец то я нашел рабочий скрипт счетчика кликов или скачивания,и долго ломал голову почему он у меня не работает
С подсказки и помощи infinity237 ,скрипт заработал,теперь делюсь с вами.
Итак приступим
1. Создаем в корне сайта папку с названием click_counter, задаем ей права на запись 777(в некоторых случаях 755,так было у меня и поэтому не работал скрипт).
Ну можете скачать Вы не можете скачивать файлы с нашего сайта ,рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем. ,распаковать и залить готовую папку с содержимым.
2. В нашей папке создаем файл 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.Также там создаём пустой файл stats.txt

4.Теперь нам надо заменить нашу ссылку
Код:
{% if (p.xfields.download.value) %}
<a href="{{ p.xfields.download.value }}" target="blank">Скачать</a>
{% endif %}
На такую
Код:
{% if (p.xfields.download.value) %}
<a href="{{ p.xfields.download.value }}" class="click_count" target="blank">Скачать</a>
{% endif %}
Как вы заметили сам адрес ссылки добавляем через дополнительное поле "download" в плагине xfields,а в самой ссылке мы добавили class="click_count",по этому классу и работает скрипт

5. Подключаем js, в main.tpl перед закрытием тега body :
Код:
<script>
$(function(){
function get_counter(a,b){
$.get('{{home}}/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');
});
})
</script>
6.Вот и все ,посмотрите демо,ну и вам останется только настроить стиль для самого числа счетчика.
P.S. Как вы видели в скрипте , пока скрипт выполняет запрос в качестве заглушки использую изображение /click_counter/loading.gif, можете либо залить свою картинку загрузки либо убрать картинку из кода, на ваше усмотрение.

Можешь почитать и вот эту статейку "Иконка у внешней ссылки"

Опрос

Ваше мнение

На каком движке ваш сайт?
Результаты

Последние комментарии

Теги

Anything in here will be replaced on browsers that support the canvas element

Статистика

  • Caйту: 4624 дня
  • Новостей: 568
  • Комменты: 257
  • Зарегистрированно : 673
  • Онлайн всего: [21]
  • Гости: [21]
  • Были сегодня : [1] Google
  • SQL запросов: 34
  • Генерация страницы: 0.347сек
  • Потребление памяти: 5.177 Mb 
  •   Яндекс.Метрика