Форум русской поддержки Joomla!® CMS
04.12.2016, 20:24:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Кнопка "Продолжить покупки", во всплывающем окне

 (Прочитано 2751 раз)
0 Пользователей и 1 Гость смотрят эту тему.
dynamit
Практически профи
*******

Репутация: +264/-0
Offline Offline

Пол: Мужской
Сообщений: 1748


Winter Is Coming


« : 08.02.2014, 10:04:54 »

Многих пользователей раздражает поведение кнопки "Продолжить покупки" во всплывающем окне 2-го VirtueMart. внятного решения я не увидел, хотя тема у нас вроде есть. Многие хотят что бы пользователь оставался на той же странице где и была нажата кнопка купить.
решение
components/com_virtuemart/views/cart/tmpl/padded.php 23 стр.
Код:
echo '<a class="continue" href="' . $this->continue_link . '" >' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</a>';
убираем адрес ссылки
Код:
echo '<a class="continue" href="#">' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</a>';
и над этой строкой вставляем скрипт закрывающий окно
Код:
?>
<script>
jQuery(document).ready(function() {
jQuery('a.continue').click(function() { jQuery(document).trigger('close.facebox') });
});
</script>
<?php

 
« Последнее редактирование: 08.02.2014, 11:27:09 от dynamit » Записан
fsv
Moderator
*****

Репутация: +330/-2
Offline Offline

Пол: Мужской
Сообщений: 2236


« Ответ #1 : 08.02.2014, 15:16:51 »

Есть где посмотреть? Просто предполагаю, что или окно дернется, или js не сработает, т.к. пойдет по href.
Возможно, надо или href="#" вообще из <a> убрать, или
Код
jQuery(document).ready(function() {
 jQuery('a.continue').click(function(event) {
   event.preventDefault();
   jQuery(document).trigger('close.facebox') });
});
Записан
dynamit
Практически профи
*******

Репутация: +264/-0
Offline Offline

Пол: Мужской
Сообщений: 1748


Winter Is Coming


« Ответ #2 : 08.02.2014, 15:32:40 »

тогда проще убрать ее вообще и событие вызывать на span, к примеру.
Код:
?>
<script>
jQuery(document).ready(function() {
jQuery('.continue').click(function() { jQuery(document).trigger('close.facebox') });
});
</script>
<?php
echo '<span class="continue">' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</span>';
Записан
gartes
Живу я здесь
******

Репутация: +63/-3
Offline Offline

Сообщений: 826


Е = mс²


« Ответ #3 : 09.02.2014, 06:24:18 »

Я это переделывал с помощью Dialog-a в JqueryUI,
Событие там есть  сработает после открытия диалога
Код:
  open: function( event, ui ) {  } 
Ну и можно в скобки какой нить тайм - аут вставить!!
Или что бы к примеру в верх потихоньку полезло...
Но из за того что тайминги в браузерах по разному работают и анимация тоже то
Абсолютным решением тоже не является!

Хотя на мой взгляд диалог  UI намного приятней работает чем facebox
Можно даже секунды показывать до закрытия диалогового окна!
Либо закрываем через 5 секунд либо жмет и переходит в корзину!
В общем так где то Roll Eyes
Записан
ed-baum
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #4 : 05.03.2014, 16:27:15 »

Позвольте добавлю еще одно решение.
После долгих поисков сделал решение для себя, возможно кому-то еще пригодится.

Последний VirtueMart 2 рекомендует использовать FancyBox вместо FaceBox'a. Соответственно, хоть и незначительно, но меняется код для его закрытия.

Меня не устраивал переход по ссылке href="#", т.к. в таком случае страница листалась на самый верх, хотелсь просто закрытия окошка и все, поэтому я решил ссылки заменить кнопками и повесить на событие onClick кнопки "Продолжить покупки" функцию закрытия FancyBox. А ссылку на корзину просто завернул в кнопку. Получается красиво и функционально, кнопки заметнее и их вид можно настроить с помощью CSS.

Заменяем исходный код:
Код:
echo '<a class="continue" href="' . $this->continue_link . '" >' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</a>';

echo '<a class="showcart floatright" href="' . $this->cart_link . '">' . JText::_('COM_VIRTUEMART_CART_SHOW'). '</a>';

На следующий:
Код:
echo '<div class="popbox"><button onclick="jQuery.fancybox.close()">' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</button>';
echo '<a class="showcart floatright" href="' . $this->cart_link . '"><button style="background-color: #99cc00;">' . JText::_('COM_VIRTUEMART_CART_SHOW'). '</button></a></div>';

Я завернул это все в div и прописал стиль для popbox в CSS шаблона. Кнопка "Показать корзину" отличается по цвету, чтобы покупателю было легче ориентироваться.

Либо можно сделать все без этих излишеств и просто сделать кнопки. Тогда копируем этот код:
Код:
echo '<button onclick="jQuery.fancybox.close()">' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</button>';
echo '<a class="showcart floatright" href="' . $this->cart_link . '"><button>' . JText::_('COM_VIRTUEMART_CART_SHOW'). '</button></a>';

Кстати, на мой взгляд, удобнее, когда кнопки ниже текста "Товар добавлен в корзину", поэтому я переместил этот кусок кода вниз и вставил НАД строкой:
Код:
?><br style="clear:both">
Записан
kubjoomla
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« Ответ #5 : 15.03.2015, 18:14:20 »

Можно сделать это еще проще:

Заменяем исходный код:
Код:
echo '<a class="continue" href="' . $this->continue_link . '" >' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</a>';

На следующий:
Код:
echo '<a class="continue" href="javascript:void(0)" onclick="jQuery.fancybox.close()" >' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</a>';

href="javascript:void(0)" — задает “пустую” ссылку.
Записан
WooSuuP
Давно я тут
****

Репутация: +11/-1
Offline Offline

Пол: Мужской
Сообщений: 233


Ословед Интерсвязи


« Ответ #6 : 24.04.2015, 16:29:16 »

Я юзаю display:none;
Нет кнопки нет проблем =)
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet