Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Модуль "баннер". Открытие ссылки в новом окне.


Recommended Posts

Понадобилось реализовать следующий функционал: если ссылка в баннере ведет на внутренний сайт - страница открывается в текущем окне, если ссылка внешняя - открывается в новом окне.

Остановилась на следующем решении:

В админке 'Система -> Дизайн -> Баннеры -> Изменить' в поле 'Ссылка' после ссылки через пробел добавляем '_blank', если требуется открывать ссылку в новом окне.

Т.е. 'http://www.mysite.ru _blank'

Пишем простой парсер:

Файл catalog/view/theme/default/template/module/banner.tpl

Находим:

<div id="banner<?php echo $module; ?>" class="banner">
  <?php foreach ($banners as $banner) { ?>
  <?php if ($banner['link']) { ?>
  <div><a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a></div>
  <?php } else { ?>
  <div><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></div>
  <?php } ?>
  <?php } ?>
</div>
меняем на:
<div id="banner<?php echo $module; ?>" class="banner">
  <?php foreach ($banners as $banner) { ?>
  <?php if ($banner['link']) {
	$myhref = $banner['link'];
	if (substr($myhref, -6) == '_blank') { // Ссылка в админке заканчивается на "_blank"?
	  $myhref = 'href="'. substr($myhref, 0, -7) . '" target="_blank"';	// Отрезаем " _blank" (с пробелом) и ставим target="_blank"
	} else {
	  $myhref = 'href="'. $myhref . '"';
	}
	  ?>
  <div><a <?php echo $myhref; ?>><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a></div>
  <?php } else { ?>
  <div><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></div>
  <?php } ?>
  <?php } ?>
</div>

Создаем шпаргалку для манагеров.

Файл admin/language/russian/design/banner.php

Найти:

$_['entry_link']		 = 'Ссылка:';
Заменить на:
$_['entry_link']		 = 'Ссылка: <span style="font-size: smaller; font-style: normal;">чтобы ссылка открывалась в новом окне, добавьте через пробел " _blank", например, "http://mysite.ru _blank"</span>';

Может кому-то пригодится :-)

З. Ы. По моему я не в ту ветку запостила, переместите, плиз, в соответствующий раздел. ((

  • +1 7
Надіслати
Поділитися на інших сайтах


  • 5 months later...
  • 1 month later...
  • 3 months later...
  • 4 weeks later...

Понадобилось реализовать следующий функционал: если ссылка в баннере ведет на внутренний сайт - страница открывается в текущем окне, если ссылка внешняя - открывается в новом окне.

Остановилась на следующем решении:

В админке 'Система -> Дизайн -> Баннеры -> Изменить' в поле 'Ссылка' после ссылки через пробел добавляем '_blank', если требуется открывать ссылку в новом окне.

Т.е. 'http://www.mysite.ru _blank'

Пишем простой парсер:

Файл catalog/view/theme/default/template/module/banner.tpl

Находим:

<div id="banner<?php echo $module; ?>" class="banner">
  <?php foreach ($banners as $banner) { ?>
  <?php if ($banner['link']) { ?>
  <div><a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a></div>
  <?php } else { ?>
  <div><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></div>
  <?php } ?>
  <?php } ?>
</div>
меняем на:
<div id="banner<?php echo $module; ?>" class="banner">
  <?php foreach ($banners as $banner) { ?>
  <?php if ($banner['link']) {
	$myhref = $banner['link'];
	if (substr($myhref, -6) == '_blank') { // Ссылка в админке заканчивается на "_blank"?
	  $myhref = 'href="'. substr($myhref, 0, -7) . '" target="_blank"';	// Отрезаем " _blank" (с пробелом) и ставим target="_blank"
	} else {
	  $myhref = 'href="'. $myhref . '"';
	}
	  ?>
  <div><a <?php echo $myhref; ?>><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a></div>
  <?php } else { ?>
  <div><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></div>
  <?php } ?>
  <?php } ?>
</div>
Создаем шпаргалку для манагеров.

Файл admin/language/russian/design/banner.php

Найти:

$_['entry_link']		 = 'Ссылка:';
Заменить на:
$_['entry_link']		 = 'Ссылка: <span style="font-size: smaller; font-style: normal;">чтобы ссылка открывалась в новом окне, добавьте через пробел " _blank", например, "http://mysite.ru _blank"</span>';
Может кому-то пригодится :-)

З. Ы. По моему я не в ту ветку запостила, переместите, плиз, в соответствующий раздел. ((

 

 

 

 

А МОЖНО ТОТ ЖЕ ФУНКЦИОНАЛ только для карусели брендов на главной, а то при нажатии на бренд ссылка открывается не в новом, а в текущем окне!

 

Заранее благодарен!)

Надіслати
Поділитися на інших сайтах


  • 9 months later...

А МОЖНО ТОТ ЖЕ ФУНКЦИОНАЛ только для карусели брендов на главной, а то при нажатии на бренд ссылка открывается не в новом, а в текущем окне!

 

Заранее благодарен!)

 

 

Ребят, подскажите решение с такой же проблемой в модуле "Слайдшоу

 

 

Файл catalog/view/theme/папка с темой/template/module/carousel.tpl     

Например для дефолтной темы  

Файл catalog/view/theme/default/template/module/carousel.tpl   

 

Заменяем все содержимое на:

 

 

<div id="carousel<?php echo $module; ?>">

  <ul class="jcarousel-skin-opencart">
  <?php foreach ($banners as $banner) { ?>
  <?php if ($banner['link']) {
$myhref = $banner['link'];
if (substr($myhref, -6) == '_blank') { // Ссылка в админке заканчивается на "_blank"?
 $myhref = 'href="'. substr($myhref, 0, -7) . '" target="_blank"'; // Отрезаем " _blank" (с пробелом) и ставим target="_blank"
} else {
 $myhref = 'href="'. $myhref . '"';
}
 ?>
 <li><a <?php echo $myhref; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a></li>
  <?php } else { ?>
  <li><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></li>
  <?php } ?>
  <?php } ?>
</div>
<script type="text/javascript"><!--
$('#carousel<?php echo $module; ?> ul').jcarousel({
vertical: false,
visible: <?php echo $limit; ?>,
scroll: <?php echo $scroll; ?>
});
//--></script>
 
Просто, если данная проблема для кого то актуальна.

Думаю она до сих пор для всех актуальна, так как в релизе данная проблема так и не решилась. Обычно нужно ставить баннера с ссылкой на внешние сайты и чтобы пользователи не покидали ваш сайт нужно перенаправлять их в отдельное окно, что в ОкСторе это не предусмотрено. 

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...
  • 11 months later...

Понадобилось реализовать следующий функционал: если ссылка в баннере ведет на внутренний сайт - страница открывается в текущем окне, если ссылка внешняя - открывается в новом окне.

Остановилась на следующем решении:

В админке 'Система -> Дизайн -> Баннеры -> Изменить' в поле 'Ссылка' после ссылки через пробел добавляем '_blank', если требуется открывать ссылку в новом окне.

Т.е. 'http://www.mysite.ru _blank'

Пишем простой парсер:

Файл catalog/view/theme/default/template/module/banner.tpl

Находим:

<div id="banner<?php echo $module; ?>" class="banner">
  <?php foreach ($banners as $banner) { ?>
  <?php if ($banner['link']) { ?>
  <div><a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a></div>
  <?php } else { ?>
  <div><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></div>
  <?php } ?>
  <?php } ?>
</div>
меняем на:
<div id="banner<?php echo $module; ?>" class="banner">
  <?php foreach ($banners as $banner) { ?>
  <?php if ($banner['link']) {
	$myhref = $banner['link'];
	if (substr($myhref, -6) == '_blank') { // Ссылка в админке заканчивается на "_blank"?
	  $myhref = 'href="'. substr($myhref, 0, -7) . '" target="_blank"';	// Отрезаем " _blank" (с пробелом) и ставим target="_blank"
	} else {
	  $myhref = 'href="'. $myhref . '"';
	}
	  ?>
  <div><a <?php echo $myhref; ?>><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a></div>
  <?php } else { ?>
  <div><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></div>
  <?php } ?>
  <?php } ?>
</div>
Создаем шпаргалку для манагеров.

Файл admin/language/russian/design/banner.php

Найти:

$_['entry_link']		 = 'Ссылка:';
Заменить на:
$_['entry_link']		 = 'Ссылка: <span style="font-size: smaller; font-style: normal;">чтобы ссылка открывалась в новом окне, добавьте через пробел " _blank", например, "http://mysite.ru _blank"</span>';
Может кому-то пригодится icon_e_smile.gif

З. Ы. По моему я не в ту ветку запостила, переместите, плиз, в соответствующий раздел. ((

 

Не работает, где то ошибка. Ссылка не открывается вообще пишет в адресной строке после ссылки %20

Делаю как вы и сказали, можете посмотреть:

 

<div id="banner<?php echo $module; ?>" class="banner">

  <?php foreach ($banners as $banner) { ?>

  <?php if ($banner['link']) {

 $myhref = $banner['link'];

 if (substr($myhref, -6) == '_blank') {

   $myhref = 'href="'. substr($myhref, 0, -7) . '" target="_blank"'; 

 } else {

   $myhref = 'href="'. $myhref . '"';

 }

   ?>

  <div><a <?php echo $myhref; ?>><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a></div>

  <?php } else { ?>

  <div><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></div>

  <?php } ?>

  <?php } ?>

</div>

<script type="text/javascript"><!--

$(document).ready(function() {

 $('#banner<?php echo $module; ?> div:first-child').css('display', 'block');

});

var banner = function() {

 $('#banner<?php echo $module; ?>').cycle({

  before: function(current, next) {

   $(next).parent().height($(next).outerHeight());

  }

 });

}

setTimeout(banner, 2000);

//--></script>

Надіслати
Поділитися на інших сайтах


  • 2 years later...
  • 1 year later...
В 31.03.2019 в 11:17, Crash1997 сказал:

Там только 1 файл -  d_quickcheckout.twig

потому что,  судя по расширению фала(twig)), у вас 3 версия движка

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.