На многих сайтах, например,
торрент-трекерах,
варезниках,
музыкальных есть отдельная страница для загрузки файлов. Обычно на такой странице владельцы сайтов размещают рекламу, тем самым увеличивая свой доход. В системе uCoz такой страницы нет ни в одном модуле. Данный скрипт предоставляет такую возможность, причем эту страницу можно оформить как угодно, дать ей любое имя и залить в любое место на сайте.
На странице материала и комментариев к нему скрипт получает ссылку на скачиваемый файл, далее он ее кодирует с помощью
Base64, и формирует новую ссылку. Кодировка нужна для того, чтобы в адресную строку можно было передать адрес ссылки на файл, а так же это обеспечивает "
секретность" ссылки.
При нажатии на новую сформированную ссылку пользователя перекинет на нашу отдельную страницу, где будет установлен таймер. Скрипт на этой странице считает нужные параметры из адресной строки и выведет после окончания таймера новую прямую ссылку на файл.
К материалу
прикреплен архив, в нем есть текстовый документ
Readme.txt (в нем указана краткая инструкция, если не хотите читать тут) и html-страница download.html. Заливаем в корень сайта страницу
download.html.
Далее на страницу
материала и комментариев к нему по месту ставим этот код:
Код
<div class="go-link"></div>
<script type="text/javascript">
var Base64 = {
_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
//метод для кодировки в base64 на javascript
encode : function (input) {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0
input = Base64._utf8_encode(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if( isNaN(chr2) ) {
enc3 = enc4 = 64;
}else if( isNaN(chr3) ){
enc4 = 64;
}
output = output +
this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
}
return output;
},
// метод для кодировки в utf8
_utf8_encode : function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if( c < 128 ){
utftext += String.fromCharCode(c);
}else if( (c > 127) && (c < 2048) ){
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}
}
fileurl = '$FILE_URL$' ;
fileurl = Base64.encode(fileurl);
$('.go-link').html('<a href="/download.html?'+fileurl+'" target="_blank">Скачать файл</a>');
</script>
где в строке
fileurl = '$FILE_URL$' ; вместо
$FILE_URL$ можете установить любое поле (
$OTHER1$,
$RILE_URL$,
$FILE_DIRECT_URL$ и т. д.), в котором есть ссылка на скачивание, так же тут будут работать и условные операторы.
Примечание: Страницу
download.html можно редактировать как угодно, но скрипт там должен присутствовать в том же виде, как есть сейчас. Имя страницы тоже можно изменять, но тогда стоит изменить его и в самом скрипте, который мы устанавливали на страницу материала и комментариев к нему, в этой строке:
Код
$('.go-link').html('<a href="/download.html?'+fileurl+'" target="_blank">Скачать файл</a>');