Добрый день, Из-за того что файл можно скачать сразу по ссылке, глубина просмотра страниц равна 1,2, и тем самым увеличиваются отказы, скачал и ушел. Можно ли сделать так, чтобы при клике на "скачать" открывалась другая страница этого-же сайта, где уже окончательная ссылка на скачивание файла. Знаю что там переменная стоит file url но может как то можно? Мне нужно сделать так, чтобы при нажатии на скачать перебрасывало на лендинг на котором также будет кнопка скачать и только тогда уже скачивался файл но у каждого материала своя ссылка а лендинг то один. Заранее спасибо за ответ.
На сайте ура сделано в окне а не на другой страницы если нужно в окошке то тут нет проблем так как окно находится на той же страницы где и материал и условный оператор отлично в нём работает
А что бы сделать на отдельной странице нужно получить данные из этого оператора и передать их кнопки на нужной странице а это ужн другое
kyznetsov12200, они дали пример материала, где просто атрибутом target="_blank" пользуются - это не создание отдельной страницы-прокладки, где будет выводиться кнопка на скачивание.
Можно переписать шаблон страницы материала и комментариев к нему, пользуясь системным оператором $REQUEST_URI$ (но, как я понимаю, оно вам не совсем подходит - исходя из написанного в шапке темы). В этом случае участки шаблона помечать под условие:
Код
<?if(substr($REQUEST_URI$,-9)='?download'))?> Тут код вывода кнопки на скачивание и прочее <?endif?>
На странице материала и комментария к нему ставиться просто ссылка, которая ведёт на страницу с ключом (в нашем случае - ?download). Такие "виртуальные" страницы не будут индексироваться поисковиком (если robots.txt содержит то, что в нём по умолчанию от системы идёт - Disallow: /*? + можно нашей ссылке поставить атрибут rel="nofollow" и target). Чтобы был свой шаблон на этой странице, то потребуется страницу материала и комментариев переписать, все ненужные участки поставить под <?if!(substr($REQUEST_URI$,-9)='?download'))?> (тогда на странице скачивания не будет того самого шаблона, что на странице материала).
Есть и другие способы, как waak написал уже выше. Можно сделать страницу-прокладку для скачивания через отдельную страницу, вот (не реклама, а в качестве примера сайт, где так сделано) и вот тему разбирал ранее (ваша ссылка с перенаправлением через u.to - тоже почти что пример). Недостаток в том, что так ссылки на скачивания сразу видны (можно просто поправить ссылку и получить доступ). Ну и вот это тоже никуда не делось (то, что идут всем известные системные ссылки на скачивание, а чтобы без них - тогда нужно пользоваться дополнительными полями и заполнять туда ... но тогда уже мы возвращаемся к первоначальной проблеме, а именно как "выудить" данные из доп. поля и передать на отдельную страницу, это уже в ход идут скрипты с куки, как понимаю, или пользоваться uAPI, если там можно через него вытащить содержимое).
UPD.: waak, про это же выше написал. Можно вообще без параметров в ссылке сделать, что на странице материала и комментариев к нему всегда будет просто ссылка на страницу-прокладку, уже на странице-прокладке "реферальная" ссылка, так сказать (сначала узнать с какой страницы материала пришли) и там же скрипт на запрос поставить (как выше написал)... область в шаблоне со ссылкой на скачивание (и прочими данными, которые нужно на страницу скачивания вывести) всё равно нужно под ключ прятать (или пользоваться uAPI и get-ить через него, а не страницу материала "прочёсывать" полностью). Тут всё в нагрузку упирается и то, хочет ли админ сразу видимой ссылку на скачивание делать (типо её кидать сходу в параметр... вот у меня, допустим, идёт несколько полей для ссылок на скачивание)... и нужно ли делать подсчёт количества скачиваний (только если идёт через системные ссылки на скачивание с сервера и удалённое скачивание, если по прямым - тогда не будет считать).
Помог? Скажи спасибо в виде "+" - вам мелочь, а мне приятно. Бесплатное оказание помощи в ответах на "Вопросы про uCoz".
Сообщение отредактировал -SAM- - Среда, 17 Июля 2019, 23:30
На страницы материала в место кнопки скачать прописать ссылку на вашу страницу а в её параметрах указать нужную информацию такую как название материала ссылка на скачивание и тд
в примере покажу только с ссылкой на скачивания материала
как видим я просто указал параметр sslink в который поместил ссылку на скачивание файла
talantlev.ucoz.ru/index/status_sajta/0-157 - ссылка на страницу где будет скачивание ( лендинг ) sslink=talantlev.ucoz.ru/load/zakladki_polzovatelja_iz_modulja_katalog_sajtov/1-1-0-36 - параметр содержащий в себе ссылку на скачивания файла
как я говорил выше можно так же добавить название материала его вес и тд
а на странице лендинга получить данные параметры и вывести их
примерно как то так
Код
<script> var regexp = /sslink=([^&]+)/i; var GetValue = ''; if (!!regexp.exec(document.location.search)) GetValue = regexp.exec(document.location.search)[1]; $('.Класс блока в который поместить нужно ссылку').html('<a href="'+GetValue+'">Скачать</a>'); </script>
вот и всё
данный вариант работает нормально проверил на своём сайте
Сообщение отредактировал waak - Среда, 17 Июля 2019, 18:47
Выше уже давал ссылку на аналогичную тему с разобранным вопросом, для тех кому лень по ссылке идти и читать - распишу и здесь, пусть будет (в той теме выложено без таймера, а тут будет таймер).
В содержимом страницы скачивания ставиться скрипт, в данном случае просто взять можно скрипт перехода по внешней ссылке, поменять текст сообщения:
Код
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Переход по внешней ссылке</title> <script type="text/javascript"> var domain = self.location.host,url=self.location.search,url=url.substring(1, url.length); function _go(){window.location.replace(url);} function timer(){ var t=document.getElementById('timerSec'),c=document.getElementById('timerWrapp'),s=parseInt(t.innerHTML-1); if(t.innerHTML==0){ var anch = 'Нажмите здесь, чтобы скачать'; c.innerHTML='<a class="go" href="javascript://" onClick="_go()">'+ anch + '<\/a>'; }else{ t.innerHTML=s; setTimeout(function(){timer()},1000); }}; </script> <script src="/.s/src/jquery-1.12.4.min.js"></script> </head>
<body style="padding:20px 180px;margin:0;vertical-align:baseline;font: 12px/200% Verdana,Geneva,sans-serif;"> <h2>Переход по внешней ссылке</h2> <p>Вы покидаете сайт <script type="text/javascript">document.write('<b>'+ domain +'<\/b>');</script> по внешней ссылке.</p> <p>Администрация <script type="text/javascript">document.write('<b>'+ domain +'<\/b>');</script> не несет ответственности за содержимое сайта и настоятельно рекомендует <b>не указывать</b> никаких своих данных, имеющих отношение к <script type="text/javascript">document.write('<b>'+ domain +'<\/b>');</script> <em>(особенно <b>e-mail</b>, <b>пароль</b> и <b>cookies</b>)</em>, на сторонних сайтах.</p> <p>Кроме того, сайт может содержать вирусы, трояны и другие вредоносные программы, опасные для Вашего компьютера. Если у Вас нет серьезных оснований доверять этому сайту, лучше всего на него не переходить, даже если Вы якобы получили эту ссылку от одного из Ваших друзей.</p> <p>Если Вы еще не передумали, нажмите сюда:</p> <p id="timerWrapp">Подождите <strong id="timerSec">15</strong> секунд. Ваша ссылка подготавливается.</p> <script type="text/javascript">timer();</script> </body> </html>
А в шаблоне страницы материала и комментариев к нему вместо ссылки на скачивание ставиться: Ссылка на страницу скачивания (сделана через редактор страниц или html-файл залит в файловый менеджер)?$FILE_URL$(или $RFILE_URL$) - то есть перед ссылками на скачивание прописывается ссылка на страницу-прокладку.
Помог? Скажи спасибо в виде "+" - вам мелочь, а мне приятно. Бесплатное оказание помощи в ответах на "Вопросы про uCoz".
Сообщение отредактировал -SAM- - Пятница, 19 Июля 2019, 20:12