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

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

irbees2008 irbees2008 Опубликовано - 12 - сентября Текст и ссылки
6724 - 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, можете либо залить свою картинку загрузки либо убрать картинку из кода, на ваше усмотрение.

Можешь почитать и вот эту статейку "Файл robots.txt для NG CMS"

Опрос

Ваше мнение

Какие темы вам интереснее?
Результаты

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

Теги

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

Статистика

  • Caйту: 4493 дня
  • Новостей: 566
  • Комменты: 257
  • Зарегистрированно : 671
  • Онлайн всего: [41]
  • Гости: [40]
  • Поисковики: [1] Google
  • Были сегодня : [5] Google, Яндекс, dankeanke, ????????? ?????, irbees2008
  • SQL запросов: 31
  • Генерация страницы: 1.321сек
  • Потребление памяти: 5.381 Mb 
  •   Яндекс.Метрика