Скрипты для uCoz. Счетчик загрузок для каталога файлов
14.06.2011, 22:06
В общем смутили меня нули в счетчиках загрузки. В принципе это довольно частое явление, что в материале выкладывают ссылки на несколько файлообменников, что бы посетители могли выбрать тот, который им больше нравится. Но вот беда, юкоз то предоставляет нам в распоряжение только одно поле, по которому учитываются загрузки с удаленных серверов. Потому ссылки приходится писать в тело материала. Вот я и решил написать простенький скриптик, который будет учитывать количество загрузок по всем ссылкам на файлообменники, которые написаны в пределах определенного блока.
Скрипт просто посылает запрос на адрес "адрес_материала-20", что на юкозе отвечает за ссылку на скачу с удаленного сервера. Юкоз по этому адресу возвращает ошибку (так как файла на скачку нету), но счетчик скачек при этом срабатывает. Единственный момент, что этот скрипт не срабатывает, при переходе по ссылке через контекстное меню (так как в этом случае не произойдет события клика по ссылке). Ну что ж, прийдется с этим смирится. Думаю не так много людей будет переходить по ссылке с помощью правой кнопки мишки. В общем хватит лирики, приступим к установке.
Установка скрипта
Вся установка производится в шаблоне "Страница материала и комментариев к нему". Для начала поместим код$MESSAGE$в блок, в котором будет происходить поиск ссылок:
<!-- Счетчик загрузок для каталога файлов --> <div id="files">$MESSAGE$</div> <!-- /Счетчик загрузок для каталога файлов -->
Теперь после этого кода добавим сам скрипт:
<!-- Счетчик загрузок для каталога файлов2 --> <script type="text/javascript"> var messageContainer = document.getElementById('files'); //Адреса файловиков var sites = new Array('depositfiles', 'letitbit', 'vip-file', 'turbobit', 'upload24', 'hotfile', 'uploadbox', 'ifolder', 'rapidshare', 'hitfile', 'shareflare');
var links = messageContainer.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) { for (var j = 0; j < sites.length; j++) { if (links[i].href.indexOf(sites[j]) != -1) { links[i].onclick = load_count; } } } function load_count(){ var counterLoc = location.pathname + '-20'; ajax(counterLoc); }
function ajax(url){ var xmlhttp = false; try { xmlhttp = new XMLHttpRequest(); } catch (trymicrosoft) { try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (othermicrosoft) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { xmlhttp = false; } } } xmlhttp.open("GET", url, true); xmlhttp.send(); } </script> <!-- /Счетчик загрузок для каталога файлов2 -->
Здесь для отправки запросов я использовал свою функцию ajax (только урезал ее по максимуму). Если кто хочет, можете использовать аналогичную функцию jQuery (так как jQuery всеравно подключен к юкозу это сократит вес cкрипта).
Код будет выглядеть так:
jQuery версия
<!-- Счетчик загрузок для каталога файлов3 --> <script type="text/javascript"> var messageContainer = document.getElementById('files'); //Адреса файловиков var sites = new Array('depositfiles', 'letitbit', 'vip-file', 'turbobit', 'upload24', 'hotfile', 'uploadbox', 'ifolder', 'rapidshare', 'hitfile', 'shareflare');
var links = messageContainer.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) { for (var j = 0; j < sites.length; j++) { if (links[i].href.indexOf(sites[j]) != -1) { links[i].onclick = load_count; } } } function load_count(){ var counterLoc = location.pathname + '-20'; $.get(counterLoc); } </script> <!-- Счетчик загрузок для каталога файлов3 -->
Теперь по поводу дополнительной настройки. Вам в этом скрипте может быть интересна следующая строка:
var sites = new Array('depositfiles', 'letitbit', 'vip-file', 'turbobit', 'upload24', 'hotfile', 'uploadbox', 'ifolder', 'rapidshare', 'hitfile', 'shareflare');
Это массив со списком файловиков, точнее части адресов этих файловиков. Скрипт проверяет наличие этих строк в ссылках. Так, что если вам понадобится добавить еще пару файлообменников, просто допишите часть их доменов в эту строку.
P.S. Кстати можно было бы сделать немного другой вариант. Можно было бы создать страницу-шлюз. Потом с помощью скрипта подставить ссылку на эту страницу вместо ссылок на поисковики. И уже на странице-шлюзе делать необходимые запросы для счетчика. В таком случае счетчик работал бы и при использовании правой кнопки. Но мне кажется, что это слишком круто для такой мелочи.
Приятного использования.
.
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вамзарегистрироваться либо зайти на сайт под своим именем.
Загрузить, скачать Скрипты для uCoz, Скрипты для uCoz. Счетчик загрузок для каталога файлов бесплатно.
Скачать Скрипты для uCoz. Счетчик загрузок для каталога файлов бесплатно
Скрипты для uCoz. Счетчик загрузок для каталога файлов бесплатно и без регистрации
Скрипты для uCoz. Счетчик загрузок для каталога файлов download free
ДРУЗЬЯ, ЕСЛИ ВЫ ВСТРЕТИЛИ БИТУЮ ССЫЛКУ СООБЩИТЕ ПОЖАЛУЙСТА ОБ ЭТОМ В КОММЕНТАРИЯХ (СПАСИБО)
Не стесняйтесь, высказывайте свое отношение к публикациям.
Этим вы поддержите авторов и хорошие материалы.
Всего комментариев: 7
Не работает! Помогите!!!
2. <!-- Счетчик загрузок для каталога файлов3 --> (jQuery версия). Вставил. Нашёл куда, чтобы не шло дублирование новости. Скачал для проверки файл. Как были нули, так и остались. Подскажи, пожалуйста, может я не туда поставил: Каталог файлов - Страница материала и комментариев к нему - вместо <tr><td class="eText" colspan="2">$MESSAGE$</td></tr> поставил <!-- Счетчик загрузок для каталога файлов --> <div id="files">$MESSAGE$</div> <!-- /Счетчик загрузок для каталога файлов --> ??? А в конце перед </body>
</html> поставил всё остальное: <!-- Счетчик загрузок для каталога файлов3 -->.......<!-- /Счетчик загрузок для каталога файлов3 --> и не работает. Подскажи, что не так. Спасибо.
<!-- Счетчик загрузок для каталога файлов3 --> вставлять вместо всего, что в Страница материала и комментариев к нему или в каком-то определённом месте?
95.52.92.120 " СПАМ! "
29.10.2011 08:30 ЦИТАТА: Здесь два скрипта: 1. <!-- Счетчик загрузок для каталога файлов2 --> 2. <!-- Счетчик загрузок для каталога файлов3 --> (jQuery версия) Какой не идёт? (вообще могу посоветовать только внимательность). Скрипт рабочий.
P.S. Вроде подробно описал. Шаг 2 - приехать самому и поставить
не получается вставить есть возможность подсказать как спасибо