Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Dedsec

Скачивание файла в новом окне в Downloads

Рекомендованные сообщения

Ребята, всем привет!

В общем, поставил себе IPS 4.5.3, сделал загрузку файлов в Downloads по ссылке, потому как требуется именно так. Но проблема в том, что не могу никак сделать, чтобы при клике на кнопку Скачать, сайт открывался в новом окне, а не в этом же.

Пробовал в код шаблона ставить на эту кнопку банальный target="_blank", так же пробовал через js onclick, ничего короче не работает. Посоветуйте гуру, как решить данную проблему? Заранее благодарен за помощь.

Поделиться сообщением


Ссылка на сообщение

target blank должен был сработать. Возможно не к тому элементу добавился. Нужно точно убедится в его наличие или в исходном коде или в инспекторе элементов. Можно попробовать также добавить rel="external" (если его нету).

  • Like 1

Поделиться сообщением


Ссылка на сообщение
1 минуту назад, siv1987 сказал:

target blank должен был сработать. Возможно не к тому элементу добавился. Нужно точно убедится в его наличие или в исходном коде или в инспекторе элементов. Можно попробовать также добавить rel="external" (если его нету).

Я, вроде как, хорошо знаю html, но вот тут никакие способы что-то не помогают(( может кусок кода мне скинуть сюда?

Поделиться сообщением


Ссылка на сообщение

Давайте код, показывайте скриншоты, давайте все детали что есть.

Нужно точно смотреть в исходном коде, разные форматы файлов могут генерироваться разными участками кода.

  • Like 1

Поделиться сообщением


Ссылка на сообщение

В общем, версия IPS 4.5.3, ниже код самой кнопки из Downloads

<ul class="ipsToolList ipsToolList_vertical ipsClearfix">
						{{if $file->canBuy()}}
							{{if $file->canDownload()}}
								{template="downloadButton" group="view" app="downloads" params="$file"}
							{{endif}}
							<li class='ipsToolList_primaryAction'>
								{{if !$file->isPurchasable( FALSE )}}
									<span class="ipsType_light ipsType_blendLinks ipsResponsive_hidePhone ipsResponsive_inline"><i class="fa fa-info-circle"></i> {lang="purchasing_disabled"}</span>
								{{else}}
									<a href='{$file->url('buy')->csrf()}' class='ipsButton ipsButton_fullWidth ipsButton_large ipsButton_important' {{if $file->container()->message('disclaimer') AND \in_array( $file->container()->disclaimer_location, [ 'purchase', 'both'])}}data-ipsDialog{{endif}}><i class='fa fa-shopping-cart'></i> &nbsp;{lang="buy_now"}{{if $price = $file->price()}} - {$price|raw}{{endif}}</a>
								{{endif}}
							</li>
						{{else}}
							{{if $file->canDownload() or !$file->downloadTeaser()}}
								{template="downloadButton" group="view" app="downloads" params="$file"}
							{{else}}
								{$file->downloadTeaser()|raw}
							{{endif}}
						{{endif}}
						{{if ( isset( $purchasesToRenew ) or $purchasesToRenew = $file->purchasesToRenew() ) and \count( $purchasesToRenew )}}
							<li class='ipsToolList_primaryAction'>
								{{if \count( $purchasesToRenew ) === 1}}
									{{foreach $purchasesToRenew as $purchase}}
										<a href='{$purchase->url()->setQueryString('do', 'renew')->csrf()}' class='ipsButton ipsButton_fullWidth ipsButton_large ipsButton_important'><i class='fa fa-refresh'></i> &nbsp;{lang="purchase_renew_now"} - {$purchase->renewals->cost}</a>
									{{endforeach}}
								{{else}}
									<a href='#elFileRenew_menu' id='elFileRenew' class='ipsButton ipsButton_fullWidth ipsButton_large ipsButton_important' data-ipsMenu><i class='fa fa-refresh'></i> &nbsp;{lang="purchase_renew_now"} <i class="fa fa-caret-down"></i></a>
									<ul id='elFileRenew_menu' class='ipsMenu ipsMenu_auto ipsHide'>
										{{foreach $purchasesToRenew as $purchase}}
											<li class='ipsMenu_item'><a href="{$purchase->url()->setQueryString('do', 'renew')->csrf()}">{$purchase->name}<br><span class='ipsType_light'>{$purchase->renewals}</span></a></li>
										{{endforeach}}
									</ul>		
								{{endif}}						
							</li>
						{{endif}}
					</ul>

 

Поделиться сообщением


Ссылка на сообщение

В шаблоне downloadButton видно что генерируется ссылка. Вы где именно добавляете атрибут?
Я ведь не даром упомянул что нужно смотреть есть атрибут в коде или нет, возможно вы его просто не к тому элементу добавляете.

Покажите исходный код из браузера вашей ссылки где есть атрибут target и ссылка не открывается в новом окне.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
17 минут назад, Dedsec сказал:

<a href='{$file->url('buy')->csrf()}' class='ipsButton ipsButton_fullWidth ipsButton_large ipsButton_important' {{if $file->container()->message('disclaimer') AND \in_array( $file->container()->disclaimer_location, [ 'purchase', 'both'])}}data-ipsDialog{{endif}}><i class='fa fa-shopping-cart'></i> &nbsp;{lang="buy_now"}{{if $price = $file->price()}} - {$price|raw}{{endif}}</a>

Вот сюда перед href ставлю target='_blank'

Поделиться сообщением


Ссылка на сообщение
15 минут назад, siv1987 сказал:

В шаблоне downloadButton видно что генерируется ссылка.

Очень Вас благодарю! Спасибо огромное! Всё реально получилось, проставил в этом шаблоне и гуд

Поделиться сообщением


Ссылка на сообщение

 

24 минуты назад, Dedsec сказал:

Всё реально получилось, проставил в этом шаблоне и гуд

Собственно как и подсказывали мои экстрасенсорные способности - там стопицот ссылок, легко ошибиться и вписать код не туда, даже с хорошим знанием html.

Поделиться сообщением


Ссылка на сообщение
04/02/24 12:48 (изменено)

Извиняюсь за поднятие старой темы, но у меня точно такая же проблема, и способ исправления указанный тут, не помогает. Версия IPS 4.7.12.

Вставляю target="_blank" как написано здесь, в шаблон downloadButton, но ссылки как открывались в текущем окне, так и открываются:

<a target="_blank" href='{{if settings.idm_antileech AND !$file->requiresDownloadConfirmation()}}{$file->url('download')->csrf()}{{else}}{$file->url('download')}{{endif}}' class='ipsButton ipsButton_fullWidth ipsButton_veryLarge ipsButton_positive' {{if $file->requiresDownloadConfirmation()}}data-ipsDialog{{endif}} data-datalayer-postfetch><i class="fa fa-download"></i> {lang="download_now"}</a>

В инспекторе элементов если просмотреть код, то атрибута target="_blank" нет. Не пойму в чем дело, когда-то на начальных билдах 4-ой версии все работало.

P.S. Частично обнаружил проблему: попробовал наудачу изменить код в стандартном шаблоне - заработало. А вот на стороннем (ipsfocus) не работает, хотя код шаблонов идентичен.

P.P.S. Нашел причину, и она очень странная) В общем, код в стандартном шаблоне:

<a target="_blank" href='{{if settings.idm_antileech AND !$file->requiresDownloadConfirmation()}}{$file->url('download')->csrf()}{{else}}{$file->url('download')}{{endif}}' class='ipsButton ipsButton_fullWidth ipsButton_large ipsButton_important' {{if $file->requiresDownloadConfirmation()}}data-ipsDialog{{endif}} data-datalayer-postfetch >{lang="download_now"}</a>

Код в шаблоне сторонней темы:

<a target="_blank" href='{{if settings.idm_antileech AND !$file->requiresDownloadConfirmation()}}{$file->url('download')->csrf()}{{else}}{$file->url('download')}{{endif}}' class='ipsButton ipsButton_fullWidth ipsButton_veryLarge ipsButton_positive' {{if $file->requiresDownloadConfirmation()}}data-ipsDialog{{endif}} data-datalayer-postfetch>{lang="download_now"}</a>

В стороннем шаблоне изменили кнопку, сделав ее больше и поменяли цвет. Я попробовал сменить ipsButton_veryLarge на ipsButton_large - и все заработало. Попробовал менять на все доступные значения от small до veryLarge - не работает только на veryLarge.

Изменено пользователем DevilDriver

Поделиться сообщением


Ссылка на сообщение
04/06/24 13:02 (изменено)

Рано радовался, как говорится 🙂

Нашел еще одну проблему: если для пользователя включен таймер ожидания перед скачиванием, то ссылка в новой вкладке не открывается. Не помогает и прописывание target="_blank" в шаблоне multipleFiles в строке 

<a href='{$fileObject->url('download')->setQueryString( array( 'r' => $k, 'confirm' => 1, 't' => 1, 'version' => isset( \IPS\Request::i()->version ) ? \IPS\Request::i()->version : NULL ) )->csrf()}' class='ipsButton ipsButton_positive ipsButton_large' data-action="download" {{if member.group['idm_wait_period']}}data-wait='true'{{endif}}><i class="fa-solid fa-download"></i> {lang="download"}</a>

Путем тестов было обнаружено, что если добавить в эту строку target="_blank" и удалить data-action="download", то ссылка открывается в новом окне, но при этом таймер ожидания не запускается, ссылка открывается сразу. Есть ли варианты как-то исправить это? Рабочий таймер ожидания к сожалению необходим.

Изменено пользователем DevilDriver

Поделиться сообщением


Ссылка на сообщение

А какой смысл в новом окне? пользователь все равно останется на текущей странице.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...