Отдельная страница скачивания на WordPress.

sumshi
На сайте с 08.10.2011
Offline
40
2208

Здравствуйте. Скажите пожалуйста, как сделать, чтобы при клике "скачать" открывалась отдельная страница скачивания с 60-секундным ожиданием? Нужно сделать это на каждый файл. Может быть есть какие-то плагины или скрипты?

Пример реализации простой, во время ожидания показывать рекламу.

Всем заранее благодарен.

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#1

Обзываем файл download.php и кидаем в корень сайта.


<?php
$time = 60;//Задержка в секундах
$link = 'http://www.site.ru/file.rar';//Сюда надо каким-то макаром подставлять ссылку на скачивание файла
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Загрузка файла</title>
<script type="text/javascript" language="javascript">
function countdownRedirect()
{
var TARG_ID = "count_red";
var e = document.getElementById(TARG_ID);
var cTicks = parseInt(e.innerHTML);
var timer = setInterval(function()
{
if( cTicks > 0 )
{
e.innerHTML = cTicks--;
}
else
{
clearInterval(timer);
location.replace("<?php echo $link; ?>");
}
}, 1000);
}
</script>
</head>
<body onload="countdownRedirect();">
<div style="display:block;border:1px solid orange;margin:20px 5px;padding:10px;">
<center>
ТУТ ПОКАЗЫВАЕМ РЕКЛАМУ
</center>
</div>

<center>
<strong>Загрузка файла начнется через <span class="counter" id="count_red"><?php echo $time; ?></span> сек.</strong>
</center>
</body>
</html>

В .htaccess'e это дело надо как-то обрулить. Самое примитивное - добавить перед каждым RewriteRule следующий код


RewriteCond %{REQUEST_URI} !^/download\.php
#Если перед РеврайтРулями уже есть Конды, то возможно придется их объединить через [AND]

Принцип сего творения прост.

$time секунд показываем рекламу, а после перекидываем на URL $link.

Ваша задача каким-нить образом передавать в скрипт реальный адрес файла, ну например передавать в скрипт АйДишник УРЛа из таблицы URLs в БД. В самом скрипте взять этот УРЛ и подставить.

Надеюсь идея понятна:)

Подпись))
sumshi
На сайте с 08.10.2011
Offline
40
#2
Милованов Ю.С:


Надеюсь идея понятна:)

Идея понятна, но этот код у меня работать не хочет... Создаю страницу с этим кодом, подставляю урл, но сразу же выхожит 404 ошибка. В чём может быть проблема?

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#3

Проблема в htacess'e

Покажите весь htaccess, так будет проще.

sumshi
На сайте с 08.10.2011
Offline
40
#4
Милованов Ю.С:
Проблема в htacess'e
Покажите весь htaccess, так будет проще.

вот

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress


---------- Добавлено 13.02.2013 в 16:27 ----------

А что там именно надо прописать?
Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#5

# BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f [AND]

RewriteCond %{REQUEST_FILENAME} !-d [AND]

RewriteCond %{REQUEST_URI} !^/download\.php

RewriteRule . /index.php [L]

</IfModule>

# END WordPress

Попробуйте так.

sumshi
На сайте с 08.10.2011
Offline
40
#6
Милованов Ю.С:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f [AND]
RewriteCond %{REQUEST_FILENAME} !-d [AND]
RewriteCond %{REQUEST_URI} !^/download\.php
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Попробуйте так.

C такой петрушкой сайт вообще не работает. Выдаёт ошибку сервера. Internal Server Error.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий