Уважаемые пользователи!
Напоминаем, что с 7 ноября 2020 года phpBB Group прекратила выпуск обновлений для phpBB версии 3.2.
С учетом этого, рекомендуется обновить конференции до версии 3.3.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до отдельного объявления.

Расширение скачивания с задержкой

У вас есть идея для расширения функциональности phpBB? Расскажите о ней здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
igorbond
phpBB 3.0.13
Сообщения: 2985
Стаж: 10 лет 7 месяцев
Благодарил (а): 634 раза
Поблагодарили: 134 раза

Расширение скачивания с задержкой

Сообщение igorbond »

Добрый вечер, было бы прикольно, сделать расширение скачивания с задержкой, например есть ссылка на яндекс диск с книгой, пользователь нажимает на нее, и его перебрасывает на страницу ожидания где например через 30 сек появляется реальная ссылка на скачивание. А реализовать это через бб-код чтобы не все ссылки так работали , а только в тех темах где это сделано специально.
Изображение
Аватара пользователя
SashaMinsky
phpBB 1.4.4
Сообщения: 114
Стаж: 9 лет 5 месяцев
Благодарил (а): 2 раза
Поблагодарили: 9 раз

Re: Расширение скачивания с задержкой

Сообщение SashaMinsky »

С ходу напишу возможное решение - без всякого расширения, просто пользовательский BB-код, назовем его delay:

Код: Выделить всё

[delay={URL}]{TEXT}[/delay]
Замена:
<a href="/delay.php?{URL}">{TEXT}</a>
В файле delay.php, расположенном в корневом каталоге, сделать через javascript нужную задержку и переадресацию на ссылку.
Аватара пользователя
igorbond
phpBB 3.0.13
Сообщения: 2985
Стаж: 10 лет 7 месяцев
Благодарил (а): 634 раза
Поблагодарили: 134 раза

Re: Расширение скачивания с задержкой

Сообщение igorbond »

SashaMinsky писал(а): через javascript нужную задержку и переадресацию на ссылку.
Знать бы как не спрашивал тут. Вот бы полное решение этого, было бы супер
Изображение
Аватара пользователя
SashaMinsky
phpBB 1.4.4
Сообщения: 114
Стаж: 9 лет 5 месяцев
Благодарил (а): 2 раза
Поблагодарили: 9 раз

Re: Расширение скачивания с задержкой

Сообщение SashaMinsky »

igorbond, например такой файл delay.php:

Код: Выделить всё

<?php
header("Content-Type: text/html; charset=utf-8");
$url = isset($_SERVER['QUERY_STRING']) ? urldecode($_SERVER['QUERY_STRING']) : '';
if(preg_match('#(http|https|ftp)://\S+[^\s.,>)\];\'\"!?]#i',$url)){
?>
<!DOCTYPE html">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="robots" content="noindex, nofollow" />
<title>Ожидание ссылки</title>
</head> 
<body onload="Func1()"><b><?php echo 'Ожидание ссылки - ждите 30 секунд...'; ?><br /><br />
<script type="text/javascript">
function Func()
{
document.location.href="<?php echo $url; ?>";
}
function Func1()
{
setTimeout("Func()", 30000);
}
</script>
</body></html>
<?php    exit();
}
?> 
Это без выводимых сменяющихся цифр, показывающих секунды, просто голый файл с надписью "Ожидание ссылки - ждите 30 секунд...".
Цифры можно доделать, если разобраться в javascript. Ну, что мог - предложил, если не подошло - может будут лучше варианты :oops:
Аватара пользователя
igorbond
phpBB 3.0.13
Сообщения: 2985
Стаж: 10 лет 7 месяцев
Благодарил (а): 634 раза
Поблагодарили: 134 раза

Re: Расширение скачивания с задержкой

Сообщение igorbond »

Работает, только желательно, чтобы это все открывалось на странице форума отдельной. Было бы супер, ну и отчет нужен точно
Изображение
Аватара пользователя
SashaMinsky
phpBB 1.4.4
Сообщения: 114
Стаж: 9 лет 5 месяцев
Благодарил (а): 2 раза
Поблагодарили: 9 раз

Re: Расширение скачивания с задержкой

Сообщение SashaMinsky »

igorbond, это решаемо, но за пару минут на ходу такую доработку не набросаю... Может у кого-то есть готовое решение, мне чтобы "довести до ума" нужно время на определенный кусок работы :)
Аватара пользователя
igorbond
phpBB 3.0.13
Сообщения: 2985
Стаж: 10 лет 7 месяцев
Благодарил (а): 634 раза
Поблагодарили: 134 раза

Re: Расширение скачивания с задержкой

Сообщение igorbond »

Да я не тороплю, лишь рассказываю как я это вижу.
Изображение
Аватара пользователя
SashaMinsky
phpBB 1.4.4
Сообщения: 114
Стаж: 9 лет 5 месяцев
Благодарил (а): 2 раза
Поблагодарили: 9 раз

Re: Расширение скачивания с задержкой

Сообщение SashaMinsky »

igorbond писал(а): рассказываю как я это вижу
В общем, можно так:

Файл delay.php, разместить в папке форума:

Код: Выделить всё

<?php
$url = isset($_SERVER['QUERY_STRING']) ? urldecode($_SERVER['QUERY_STRING']) : '';

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

if(preg_match('#(http|https|ftp)://\S+[^\s.,>)\];\'\"!?]#i',$url)){
$template->assign_vars(array(
	'U_DOWNLOAD_LINK'				=> $url,
));
}
page_header('Ожидание скачивания');

$template->set_filenames(array(
	'body' => 'delay_body.html')
);
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));

page_footer();
Файл delay_body.html , разместить в папке template используемого стиля или стилей:

Код: Выделить всё

<!-- INCLUDE overall_header.html -->

<h2>Ожидание скачивания</h2>

<!-- IF U_DOWNLOAD_LINK -->
<div class="panel bg1">
	<div class="inner">
		<div class="column1">
		<p style="text-align:center;">Ожидайте <span id="delay">30</span> секунд...</p>
		</div>
	</div>
</div>
<script type="text/javascript">
var time_to_download = 30;
function Func()
{
window.time_to_download = window.time_to_download - 1;
if (window.time_to_download < 1) {document.location.href="{U_DOWNLOAD_LINK}";}
else {
document.getElementById("delay").innerHTML = ''+window.time_to_download;
setTimeout("Func()", 1000);
}
}
setTimeout("Func()", 1000);
</script>
<!-- ELSE -->
<div class="panel bg1">
	<div class="inner">
		<div class="column1">
		<p style="text-align:center;">Неправильная ссылка!</p>
		</div>
	</div>
</div>
<!-- ENDIF -->
<!-- INCLUDE jumpbox.html -->
<!-- INCLUDE overall_footer.html -->
В замене пользовательского кода delay проверить путь к файлу delay.php - если не установлен SEO-мод, можно путь не указывать:

Код: Выделить всё

<a href="delay.php?{URL}">{TEXT}</a>
В противном случае указать жестко, например для случая, если форум в папке forum - так:

Код: Выделить всё

<a href="/forum/delay.php?{URL}">{TEXT}</a>
Если нужно, чтобы окно открывалось в новой вкладке, то в замену добавить target:

Код: Выделить всё

<a href="delay.php?{URL}" target="_blank">{TEXT}</a>
Вроде все что нужно ;) С красивостями не возился, темплейт можно переделать на свой вкус. Ну и вместо строк текста можно сделать языковые переменные, если вдруг захочется использовать на нескольких языках.

Для идеального решения еще стоило бы ссылку шифровать, чтобы не была видна в адресной строке. Но это уже отдельная задача, на чистом энтузиазме не возьмусь :)
Аватара пользователя
igorbond
phpBB 3.0.13
Сообщения: 2985
Стаж: 10 лет 7 месяцев
Благодарил (а): 634 раза
Поблагодарили: 134 раза

Re: Расширение скачивания с задержкой

Сообщение igorbond »

Спасибо почти то что нужно, но далее уже попробую сам допилить!!!

Отправлено спустя 24 минуты 4 секунды:
Да и еще вопросик, пытаюсь встроить код

Код: Выделить всё

<?php
 $textfile = "hСсылка";   //путь к файлу
 if ($quotes = @file("$textfile")) {
 $quote = rand(0, sizeof($quotes)-1);
 echo $quotes[$quote];   //вывод рандомного текста
 }else{
 echo ("Ошибка вывода");   //вывод сообщения, если файл не найден
 }
?>
Как его встроить, чтобы он делал вывод прямо на странице под текстом?
Изображение
Аватара пользователя
SashaMinsky
phpBB 1.4.4
Сообщения: 114
Стаж: 9 лет 5 месяцев
Благодарил (а): 2 раза
Поблагодарили: 9 раз

Re: Расширение скачивания с задержкой

Сообщение SashaMinsky »

igorbond, вставить можно в delay.php перед строчкой $template->assign_vars. При этом вместо вызова функции echo нужно сохранять выводимый текст в какой-нибудь переменной, то есть заменить в коде echo на $text_to_show = .
Потом в фунцкции $template->assign_vars присвоить эту переменную строковой константе, то есть добавить так:

Код: Выделить всё

$template->assign_vars(array(
   'U_DOWNLOAD_LINK'            => $url,
   'L_TEXTTOSHOW'            => $text_to_show
));
И в шаблоне в нужном месте поместить эту константу:

Код: Выделить всё

<p>{L_TEXTTOSHOW}</p>
И почистить кэш :)
Аватара пользователя
igorbond
phpBB 3.0.13
Сообщения: 2985
Стаж: 10 лет 7 месяцев
Благодарил (а): 634 раза
Поблагодарили: 134 раза

Re: Расширение скачивания с задержкой

Сообщение igorbond »

Получилось в итоге вот так

Изображение

видео показываются рандомно.

Код: Выделить всё

$textfile = "Ссылка";   //путь к файлу
 if ($quotes = @file("$textfile")) {
 $quote = rand(0, sizeof($quotes)-1);
 $text_to_show = $quotes[$quote];   //вывод рандомного текста
 }
 $template->assign_vars(array(
   'U_DOWNLOAD_LINK'            => $url,
   'L_TEXTTOSHOW'            => $text_to_show,
));
Правильно?
Изображение
Аватара пользователя
SashaMinsky
phpBB 1.4.4
Сообщения: 114
Стаж: 9 лет 5 месяцев
Благодарил (а): 2 раза
Поблагодарили: 9 раз

Re: Расширение скачивания с задержкой

Сообщение SashaMinsky »

igorbond писал(а): Правильно?
О, ну так вроде прекрасно, и работает правильно :)
Аватара пользователя
igorbond
phpBB 3.0.13
Сообщения: 2985
Стаж: 10 лет 7 месяцев
Благодарил (а): 634 раза
Поблагодарили: 134 раза

Re: Расширение скачивания с задержкой

Сообщение igorbond »

Спасибо огромное за помощь!!!
Изображение
Аватара пользователя
Perfecthus
phpBB 2.0.8
Сообщения: 661
Стаж: 11 лет 9 месяцев
Откуда: Оттуда
Благодарил (а): 42 раза
Поблагодарили: 63 раза

Re: Расширение скачивания с задержкой

Сообщение Perfecthus »

Ребята, подумайте о пользователях, а не о ботах! Лично Я ухожу сразу с таких сайтов, где нужно, что-то ждать или делать, чего мне не хочется. Есть другие способы, против ботов, думайте, читайте, ищите и обрящите! ;)
Аватара пользователя
igorbond
phpBB 3.0.13
Сообщения: 2985
Стаж: 10 лет 7 месяцев
Благодарил (а): 634 раза
Поблагодарили: 134 раза

Re: Расширение скачивания с задержкой

Сообщение igorbond »

Я например скачиваю сам много и много заливаю в сеть, причем того, чего там еще и нет. И поверьте когда мне что то нужно скачать я могу и подождать 30 сек, а чтобы не скучно было там есть видео по теме сайта ;)
Изображение

Вернуться в «Запросы расширений для phpBB»