Новости Joomla

Вышли релизы безопасности Joomla 6.0.4 и Joomla 5.4.4

Релиз безопасности Joomla 6.0.4 и Joomla 5.4.4

Проект Joomla! рад сообщить о выходе Joomla 6.0.4 и Joomla 5.4.4. Это релизы безопасности и исправления ошибок для серий 5.x и 6.x.

0 Пользователей и 1 Гость просматривают эту тему.
  • 13 Ответов
  • 3279 Просмотров
*

nazgul0071

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Всем доброго времени суток. Joomla 2.5, VirtueMart 2. Проблема следующая: при нажатии кнопки "Купить" на странице категории товаров, товар добавляется в корзину, всё корректно отрабатывает, но если сделать ту же операцию на странице товара, браузер вешается намертво.. Любой браузер. Mozilla выдаёт такое сообщение:

Цитировать
"Похоже, исполняемый на этой странице сценарий занят или не отвечает. Вы можете остановить его сейчас или продолжить и посмотреть, сможет ли он завершить свою работу.

Сценарий: http:// stakanoff.com/index.php/igristoe-vino/martini-rose-detail:104"

После нажатия кнопки "Остановить сценарий" появляется пустой lightbox и товар в корзину таки попадает. Что я ковырял до этого: пытался избавиться от появления этого самого lightbox'a при добавлении товара в корзину, каким именно способом избавился уже не помню (одним из тех что здесь же на форуме был написан). Помню что закомментил какие то строчки. Вобщем прошу помощи, т.к. ошибка где то в JS, в чём я совсем не силён :( Если кто подскажет какой нить инструмент, которым можно отследить на какой строчке и какого конкретно скрипта вешается сайт, буду тоже признателен!

Сайт - stakanoff.com
« Последнее редактирование: 11.11.2013, 12:03:40 от nazgul0071 »
*

Максим Пишняк

  • Давно я тут
  • 837
  • 35 / 0
Будьте точны в указании ваших версий.

Сравните при помощи программ сравнения файлов текущую версию сайта и то что было до.

И кстати есть FireBug Console для отладки js.
*

nazgul0071

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Версия Joomla!, 2.5.16. , VirtueMart 2.0.24, я бы приложил скрин того что показывает FireBug, но не могу понять как тут добавлять картинки)) Про программы для сравнения файлов, можно поподробней?
*

rogerru

  • Захожу иногда
  • 64
  • 6 / 0
1. На станице категории при нажатии кнопки "Купить" у Ваш jquery.fancybox-1.3.4.pack.js выдает ошибку TypeError: d.onCleanup is not a function. Эта ошибка говорит о том, что Вы забыли присоединить CSS файл
плагина fancybox. Поэтому Lightbox там тоже коряво отображается, хотя в корзину добавляет. Добавьте CSS и все будет ок.

2. А по второму вопросу вот что:
у Вас в карточке товара на кнопку Купить повешен скрипт, который генерит бесконечный цикл (я выделил жирным шрифтом где именно)
 
$('.addtocart-button').click(function() {
var el = $(this);
var imgtodrag = $('.product-image:first');
if (!imgtodrag.length) {
elparent = el.parent();
while (!elparent.hasClass('spacer')) {
elparent = elparent.parent();
}
imgtodrag = elparent.find('img.browseProductImage');
}
if (imgtodrag.length) {
var imgclone = imgtodrag.clone()
.offset({ top: imgtodrag.offset().top, left: imgtodrag.offset().left })
.css({'opacity': '0.7', 'position': 'absolute'})
.appendTo($('body'))
.animate({
'top': vmcartck.top+10,
'left': vmcartck.left+10
},240, 'linear');
imgclone.animate({
'width': 0,
'height': 0
});
}
});

Вот и вся проблема собственно. :)
Что этот скрипт делает, я не разбирался, похоже просто анимация добавления в корзину. При этом товар тоже похоже добавляет.
Как исправить? Надо малек посидеть с дебаггером или вообще его вырезать, похоже вы пользуете какой то плагин для красивого добавления товара в корзину, при этом в категории и в карточке
товара у Вас у кнопки Купить один и тот же класс "addtocart-button", а скрипт вешается на класс, поэтому в категории он отрабатывает нормально, а в карточке подвисает.
« Последнее редактирование: 12.11.2013, 22:59:35 от rogerru »
*

nazgul0071

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Большое спасибо за подробный ответ!) Разберусь теперь думаю, о результате напишу)
P.S. Как плюсануть тут?)
*

nazgul0071

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
1. На станице категории при нажатии кнопки "Купить" у Ваш jquery.fancybox-1.3.4.pack.js выдает ошибку TypeError: d.onCleanup is not a function. Эта ошибка говорит о том, что Вы забыли присоединить CSS файл
плагина fancybox. Поэтому Lightbox там тоже коряво отображается, хотя в корзину добавляет. Добавьте CSS и все будет ок.


Первая ошибка видимо вылазит потому что скрипт добавления товара странно себя ведёт.. А именно: если добавить один товар на странице категории, корзина интерактивно не обновится и не покажет что туда добавился товар, при том все последующие товары добавленные не этой же страницы, нормально падают и корзина обновляется и показывает все товары туда добавленные без перезагрузки страницы (в том числе и первый товар) и ошибка в консоли больше не появляется. С чем это связано не знаю, но думаю тут так же проблема в том что я как то коряво избавился от fancybox'a при добавлении товара :(
*

rogerru

  • Захожу иногда
  • 64
  • 6 / 0
От fancybox не надо избавляться надо в область head  index.php вашего шаблона добавить
 <link rel="stylesheet" href="/components/com_virtuemart/assets/css/jquery.fancybox-1.3.4.css" type="text/css" />
Фишка в том, что избавиться от выскакивания Lightbox при добавлении в корзину без хака ядра VM невозможно (нужно править vmprices.js). Можно убрать опцию в настройках,
но тогда при нажатии кнопки купить будет жесткий редирект в корзину.
*

nazgul0071

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
От fancybox не надо избавляться надо в область head  index.php вашего шаблона добавить
 <link rel="stylesheet" href="/components/com_virtuemart/assets/css/jquery.fancybox-1.3.4.css" type="text/css" />
Фишка в том, что избавиться выскакивания Lightbox при добавлении в корзину без хака ядра VM невозможно (нужно править vmprices.js). Можно убрать опцию в настройках,
но тогда при нажатии кнопки купить будет жесткий редирект в корзину.

В том то и дело, что редирект в корзину не устраивает. По этому нашёл решение, как скрыть fancybox, им и воспользовался, закомментировав, какую то строчку кода, в результате в категории всё красиво стало добавляться и без fancybox'a, а на странице товара, виснуть :( Сейчас отключил модуль красивого "скольжения" товара, виснуть перестало, но появляется изуродованный fancybox :( Может подскажет кто решение как избавиться от него, не сильно ломая ядро?
*

rogerru

  • Захожу иногда
  • 64
  • 6 / 0
Ок. Ядро нельзя сломать чуть чуть, как нельзя быть чуть чуть беременной  :laugh:
Просто вся проблема хака ядра в том, что очередной апдейт потрет все изменения, за этим конечно можно следить, но как показывает опыт обязательно забудешь.

Так. Берете файл vmprices.js и находите там конструкцию
               
    if(usefancy){
//                        $.fancybox({
//                                "titlePosition" :    "inside",
//                                "transitionIn"   :   "elastic",
//                                "transitionOut"   :   "elastic",
//                                "type"         :   "html",
//                                "autoCenter"    :   true,
//                                "closeBtn"      :   false,
//                                "closeClick"    :   false,
//                                "content"       :   txt
//                            }
//                        );

                    $(".addtoCartNotify").css('visibility','visible');
                    $(".addtoCartNotify").delay(300).css('visibility','hidden');
                    } else {
//                        $.facebox.settings.closeImage = closeImage;
//                        $.facebox.settings.loadingImage = loadingImage;
//                        //$.facebox.settings.faceboxHtml = faceboxHtml;
//                        $.facebox({ text: txt }, 'my-groovy-style');
                    }

и комментите все что относится к fancybox, как у меня сделано. Или просто меняете блок на тот что я здесь привел, следите за скобками.
Обращаю Ваше внимание на такие простые вещи, ибо не знаю Вашего уровня в программировании на JS
*

nazgul0071

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Ваш способ работает! :) но есть ещё один мини-fancybox который изображает загрузку (с крутящимся диском имеет Id fancybox-loading), он остаётся при добавлении товара из страницы товара, и крутится до тех пор пока его не закрыть, как его тоже убрать?
P.S. Товар при этом корректно добавляется
*

rogerru

  • Захожу иногда
  • 64
  • 6 / 0
Ща гляну...
*

rogerru

  • Захожу иногда
  • 64
  • 6 / 0
Пардон, забыл
в файле vmprices.js чуть выше находите

//                if(usefancy){
//                    $.fancybox.showActivity();
//                }

и тоже соответственно комментите.
*

nazgul0071

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Работает! Спасибо огромное!)))
*

rogerru

  • Захожу иногда
  • 64
  • 6 / 0
Работает! Спасибо огромное!)))
Не за что, если что обращайтесь, чем смогу тем помогу
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться