Новости Joomla

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

animos

  • Новичок
  • 8
  • 1 / 0
  • https://www.n1site.com/
За помощь спасибо, но увы после клика снова перебрасывает на страницу с корзиной. (
я ошибся, все делается намного проще: Настройки - Оформление заказа - Отображать всплывающее окно 'Добавлено в корзину'
Насчет редиректа - VirtueMart 2 не должен перекидывать на страницу с корзиной, должно появляться всплывающее окно. Скорее всего какие-то файлы были изменены.
« Последнее редактирование: 17.01.2013, 21:00:54 от animos »
*

artmasterpro

  • Осваиваюсь на форуме
  • 44
  • 9 / 0
отвечаю по существу на вопрос в названии темы.

Чтоб изменить содержимое всплывающего окошка при добавлении заказа в VM2 нужно редактировать файл:
components/com_virtuemart/controllers/cart.php
 в нем функцию public function addJS() 98 строка.

в этой функции в раене 120 строки есть такая переменная $this->json->msg .=
вот в нее и нужно дописать что вам нужно.

например было так:

    $this->json->msg = '<a class="continue" href="' . $continue_link . '" >' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING'). '</a>';
    $this->json->msg .= '<a class="showcart floatright" href="' . JRoute::_("index.php?option=com_virtuemart&view=cart"). '">' . 


а вы делаете так:

    $this->json->msg = 'Ваш HTML код';
    $this->json->msg .= 'Ваш код' .


Так же вверху можно править сообщение о добавлении товара в корину $errorMsg = JText::_('COM_VIRTUEMART_CART_PRODUCT_ADDED');
*

jetonz

  • Захожу иногда
  • 154
  • 9 / 3
  • Помог ответ? Не ленись, ставь [+] !
 После мучительных поисков и проб, мне удалось вывести картинку товара в всплывающем окне после надписи "бла-бла-бла добавлен в корзину".


 Хотел написать мануал как это делать, но понял что это не так просто. Если кому интересно, могу поднапрячся...
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
После мучительных поисков и проб, мне удалось вывести картинку товара в всплывающем окне после надписи "бла-бла-бла добавлен в корзину".


 Хотел написать мануал как это делать, но понял что это не так просто. Если кому интересно, могу поднапрячся...
Ну конечно интересно, но вот бы все это делать и не ломать всякие контролеры и хелперы, а то потом обновляться тяжело))А так интересно конечно же как ты вывел картинку)
*

jetonz

  • Захожу иногда
  • 154
  • 9 / 3
  • Помог ответ? Не ленись, ставь [+] !
Вот мое сочинение на тему "Как я провел выходные" =)

Немного теории:
1. Везде где присутствует кнопка "Добавить в корзину" присутствуют невидимые <input>. Они нужны что бы определять какой товар ты положил к розину, сколько положил, какое название и т.д. Без них кнопка "Добавить в корзину" работать не будет. Вот одним из полей я и воспользовался, а если быть поточнее то тем, которое носит имя "virtuemart_product_id[]". virtuemart_product_id - уникальный, обязательно присутствующий номер товара.
2. Каждому товару присвоена своя картинка, и у каждой картинки свой URL (SRC). Что бы узнать его я воспользовался javascript методом getElementByID. Эта функция находит на странице тег с тем id, который указан в передаваемом параметре. Для этого необходимо тегу <img> добавить уникальный id... Догадываетесь откуда он береться? Да-да, именно тот самый "virtuemart_product_id". Делается это для ПРИМЕРНО так <img src="..." id='<?php $produc->virtuemart_product_id ?>'>.
3. Выводимый текст в facebox формируется в файле components/com_virtuemart/assets/js/vmprices.js и components/com_virtuemart/assets/js/facebox.js. Но нас интересует первый. Если к выводимому тексту добавить тег <img> с SRC нужным адресом. Этот адрес мы берем при помощи вышеописанного метода.

Надеюсь мысль мою уловили...

 Итак, переделывать нам прийдется немало. Начнем пожалуй с этого самого vmprices.js

В нем, примерно в строках 61-84 находится функция с 3 условиями - if(datas.stat ==1), if(datas.stat ==2) и else , тобишь все остальные варианты, когда  stat !=1 или 2. Переменная stat указывает какой именно тип сообщения будет выводится - количество товаров обновлено (2) или просто товар добавлен (2) (это если в первый раз добавляешь), при других вариантах выводится окно ошибки. Вот к этим двум условимя добавляем свой код...

После строк 
if(datas.stat ==1){
//var value = form.find('.quantity-input').val() ;
var txt = form.find(".pname").val()+' '+vmCartText;


и

else if(datas.stat ==2){
var value = form.find('.quantity-input').val() ;
var txt = form.find(".pname").val();


добавляем это:
var this_prod = form.find(".item_id").val() ;
var img_url = document.getElementById('Img_to_Js_'+this_prod).src;


Что б было понятно, то 1 строка берет из того самого скрытого <input>, про которое я рассказывал в п. значение, которое равняется уникальному product_id.

Вторая строка находит картинку, у которой id равняется "Img_to_Js_" + значение уникального id , и берет из этого тега значение SRC. Осталось этот SRC подставить в нашу картинку, выводимую в сплывающем окне. Для этого находим эту строку, где-то через 5 строчек после нашего добавленного кода.

$.facebox({ text: datas.msg +"<H4>"+txt+"</H4><br />" }, 'my-groovy-style');

и меняем на

$.facebox({ text: datas.msg +"<H4>"+txt+"</H4><br /><br /><img src='"+img_url+"' />" }, 'my-groovy-style')

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

На этом с vmprices.js всё. Конечно вы можете подредактировать нводобавляемый тег <img> задав для него парамметры width и height, но это дело сугубо личное.

Теперь что бы скрипт брал значения product_id и путь из картинки на прийдется перелопатить все стр. , где встречается "Добавить в корзину". У кого-то это mod_virtuemart_product, у когото и в категориях кнопка (как например у меня), также есть "Главная" для VirtueMart и конечно же детальный просмотр (productdetail)... Это опять же сугубо индивидуальная работа.

Вот что собственно мы будем менять на этих страницах.

<input type="hidden" name="virtuemart_product_id[]" value="<?php echo $this->product->virtuemart_product_id ?>"/>

меняем на

<input type="hidden" class="item_id" name="virtuemart_product_id[]" value="<?php echo $this->product->virtuemart_product_id ?>"/>

Разница в тогм, что в измененнном коде дописан парамметр class="item_id" благодаря которому скрипт возьмёт парамметр.

Теперь необходимо поменять вывод картинки, добавив (или поменяв) парамметр "id" с уникальным значением.

Находим это:
echo $product->images[0]->displayMediaThumb ('class="browseProductImage" border="0" title="' . $product->product_name . '" ', TRUE, 'class="modal"');

меняем на
$image = $product->images[0]->displayMediaThumb('class="featuredProductImage" border="0" id="Img_to_Js_'.$product->virtuemart_product_id.'"',false) ;

для детального просмотра (productdetails) эта строка выглядит так
<?php echo $this->product->images[0]->displayMediaFull('class="medium-image" id="medium-image"', false, "class='modal'", true); ?>

меняем на
$image = $product->images[0]->displayMediaThumb('class="featuredProductImage" border="0" id="Img_to_Js_'.$product->virtuemart_product_id.'"',false) ;

Вот собственно и все. Для тех кто не знает, то строки где мы меняли код картинки нужно искать здесь:
components/com_virtuemart/views/productdetails/tmpl/default_images.php - детальный просмотр
components/com_virtuemart/views/category/tmpl/default.php - категория (для тех кто хакал)
components/com_virtuemart/views/virtuemart/tmpl/default_products.php -главная стр. VirtueMart
modules/mod_virtuemart_product/tmpl/default.php  - модуль "Товары"

Вроде все объяснил, старался как можно доходчивее изложить. В спойлере прикреплю готовый файл  vmprices.js

Как работает вся эта система при включенном увеличении картинки ( я имею ввиду, когда наживаешь на картинку и в всплывающем окне появляется этаже картинка в полном ее размере) не проверял. Кто проверит скажите. Тестить лучше, сами понимаете, на копии сайта.

Кто проверит, отпишитесь. Интересно как у других это заработает.
Спойлер
[свернуть]
*

sash44

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Сделай так:
    $('#facebox_overlay').hide().addClass("facebox_overlayBG")
      .css('opacity', $.facebox.settings.opacity)
      .click(function() { $(document).trigger('close.facebox') })
      .fadeIn(200)
    setTimeout(function () { $(document).trigger('close.facebox')}, 3000);
Так то работает, только другие выплывающие окна тоже держаться 3 сек и закрываются. Например Задать вопрос по товару.
*

srrcomua

  • Новичок
  • 7
  • 1 / 0
Где конкретно (путь к странице) это вставить
<input type="hidden" class="item_id" name="virtuemart_product_id[]" value="<?php echo $this->product->virtuemart_product_id ?>"/>
*

jetonz

  • Захожу иногда
  • 154
  • 9 / 3
  • Помог ответ? Не ленись, ставь [+] !
Где конкретно (путь к странице) это вставить
<input type="hidden" class="item_id" name="virtuemart_product_id[]" value="<?php echo $this->product->virtuemart_product_id ?>"/>

Вот собственно и все. Для тех кто не знает, то строки где мы меняли код картинки нужно искать здесь:
components/com_virtuemart/views/productdetails/tmpl/default_images.php - детальный просмотр
components/com_virtuemart/views/category/tmpl/default.php - категория (для тех кто хакал)
components/com_virtuemart/views/virtuemart/tmpl/default_products.php -главная стр. VirtueMart
modules/mod_virtuemart_product/tmpl/default.php  - модуль "Товары"

У вас в категоряих товаров кнопка "Купить" выведена?
*

vitrot

  • Новичок
  • 8
  • 0 / 0
Подскажите как исправить неправильную кодировку во всплывающем окне, кодировка неправильная только в названии товара.   Уже перепробовал все что смог.
*

jetonz

  • Захожу иногда
  • 154
  • 9 / 3
  • Помог ответ? Не ленись, ставь [+] !
Подскажите как исправить неправильную кодировку во всплывающем окне, кодировка неправильная только в названии товара.   Уже перепробовал все что смог.
У меня такое было. Помогло обновление до более новой версии. Кажется на версии 2,0,10 была такая беда.
*

vitrot

  • Новичок
  • 8
  • 0 / 0
Версия стоит последняя. Так что это явно не то. Причем, с главной страницы сайта если нажать купить в рекомендуемых товарах - то все ок, а если нажать купить из карточки товара, то кодировка в окне неверная. Уже не знаю в каких файлах и смотреть кодировку.
*

vitrot

  • Новичок
  • 8
  • 0 / 0
Не могу отправлять личные сообщения. :(
*

vitrot

  • Новичок
  • 8
  • 0 / 0
jetonz, огромное спасибо за помощь. Без тебя бы не справился.
*

sash44

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Сделай так:
    $('#facebox_overlay').hide().addClass("facebox_overlayBG")
      .css('opacity', $.facebox.settings.opacity)
      .click(function() { $(document).trigger('close.facebox') })
      .fadeIn(200)
    setTimeout(function () { $(document).trigger('close.facebox')}, 3000);
Работает, но на другие окна тоже распространяется. Подскажите пожалуйста как сделать чтоб другие окна "Задать вопрос по товару", "Условия обслуживания" не закрывались через 3 сек.?
*

painterok

  • Новичок
  • 9
  • 0 / 0
2 vitrot:
Подскажите как решили проблему с кодировкой во всплывающем окне? У меня тоже кодировка неправильная только в названии товара. Спасибо!
*

tkm

  • Захожу иногда
  • 69
  • 0 / 0
Это не проблема с кодировкой. Решение вопроса с такими нечитаемыми символами было выложено для VM1.1.8. http://virtuemaster.com/tyuning-virtuemarta/lightbox-window-codepage-trouble-fix.html. И когда такая проблема вылезла в VM2 то изменение кодировки не помогло. Не претендуя на знание программирования, путем и методом тыка, решил для себя проблему таким образом.
В файле /com_virtuemart/productdetails/default_addtocart.php находим строчку с кодом где-то в районе 128 строки

<input type="hidden" class="pname" value="<?php echo htmlentities($this->product->product_name, ENT_QUOTES, 'utf-8')?>"/>

и меняем ее на

<input type="hidden" class="pname" value="<?php echo ($this->product->product_name)?>"/>

По крайней мере, у меня подобная проблема больше не проявлялась.
*

Xavibeat

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Joomla 2.5.14
VirtueMart 2.0.22a
код не работает, при замене vmprices.js из вложенного, никуда не перебрасывает и не нажимается кнопка купить

Спойлер
[свернуть]
-->
[свернуть]
*

jetonz

  • Захожу иногда
  • 154
  • 9 / 3
  • Помог ответ? Не ленись, ставь [+] !
Joomla 2.5.14
VirtueMart 2.0.22a
код не работает, при замене vmprices.js из вложенного, никуда не перебрасывает и не нажимается кнопка купить

Возможно к версии 2.0.22 код поменялся. Я делал под версию 2.0.15
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Возможно к версии 2.0.22 код поменялся. Я делал под версию 2.0.15
Точно поменялся.Надо сравнивать и подставлять твой код.Заменять нельзя.Туговато все с этими обновлениями у вирта))
*

ZAIRA

  • Захожу иногда
  • 120
  • 2 / 0
  • буду благорарна за +
Это не проблема с кодировкой. Решение вопроса с такими нечитаемыми символами было выложено для VM1.1.8. http://virtuemaster.com/tyuning-virtuemarta/lightbox-window-codepage-trouble-fix.html. И когда такая проблема вылезла в VM2 то изменение кодировки не помогло. Не претендуя на знание программирования, путем и методом тыка, решил для себя проблему таким образом.
В файле /com_virtuemart/productdetails/default_addtocart.php находим строчку с кодом где-то в районе 128 строки

<input type="hidden" class="pname" value="<?php echo htmlentities($this->product->product_name, ENT_QUOTES, 'utf-8')?>"/>

и меняем ее на

<input type="hidden" class="pname" value="<?php echo ($this->product->product_name)?>"/>

По крайней мере, у меня подобная проблема больше не проявлялась.

После такого решения - и всего что описано в этой теме - меняли и в cart.php и в default_addtocart.php - ничего не помогло. Есть ли еще варианты решения проблемы? Решение, чувствую на поверхности но никак не дойду... помогите пожалуйста... вот сайт - если поможет... http://fandom.com.ua/
« Последнее редактирование: 19.08.2013, 17:22:42 от ZAIRA »
*

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

  • Давно я тут
  • 837
  • 35 / 0
Вид всплывающего окна теперь можно переопределять с помощью шаблона Joomla (новая фишка VM2)
Использовать можно для такого переопределения файл отсюда
com_virtuemart.2.0.22\components\com_virtuemart\views\cart\tmpl\padded.php
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
У тех у кого грузит полный jquery UI вообще можно  заменить на dialog UI Прикольно получается
это окошко всплывает в файле vmprace.js
переопределяем его в своем шаблоне только перед этим не забудьте отключить родное
Ну а уже там пихаем диалог в место этого окошка ))
*

CyDb6a

  • Захожу иногда
  • 124
  • 0 / 0
  • От меня не уйдешь =)
А что надо прописать, чтобы окошко оставалось посередине экрана при его прокрутке, а не уползало вместе со страницей? Окошко Facebox. Сенкс, за помощь.
« Последнее редактирование: 17.10.2013, 18:44:01 от CyDb6a »
*

xlite

  • Захожу иногда
  • 65
  • 5 / 0
Кто нибудь решил вывод картинок во всплывающее окно в  новой версии VirtueMart.
*

mrs_Di

  • Новичок
  • 1
  • 0 / 0
А что надо прописать, чтобы окошко оставалось посередине экрана при его прокрутке, а не уползало вместе со страницей? Окошко Facebox. Сенкс, за помощь.
#facebox{
position: fixed;
top: 50%;
}
*

kotmar

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Сделай так:
    $('#facebox_overlay').hide().addClass("facebox_overlayBG")
      .css('opacity', $.facebox.settings.opacity)
      .click(function() { $(document).trigger('close.facebox') })
      .fadeIn(200)
    setTimeout(function () { $(document).trigger('close.facebox')}, 3000);

У меня получилось. Правда, хотелось бы изменить сам внешний вид этого всплывающего окна. Например, чтобы выплывала только надпись: "Добавлено в корзину" или что-то в этом роде.
*

Siberex

  • Захожу иногда
  • 66
  • 0 / 0
jetonz, не пробовал сделать вывод картинки под последнюю версию VM? Я вот смотрю 2.0.26 там совсем по-другому.
*

testaross

  • Захожу иногда
  • 70
  • 1 / 0
а как убрать сопутствующие товары во всплывающем окне при добавлении в корзину?
*

testaross

  • Захожу иногда
  • 70
  • 1 / 0
а, понял, удалить кусок кода в файле padded.php в папке components/com_virtuemart/views/cart/tmpl
Спойлер
[свернуть]
*

kira

  • Захожу иногда
  • 155
  • 0 / 3
для версии 2,6 кто-нибудь знает решение вывода картинки?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Решено: Валютный знак рубля в VirtueMart 2

Автор frostwar

Ответов: 10
Просмотров: 10054
Последний ответ 07.04.2020, 15:50:54
от liberator
[РЕШЕНО]Всплывашка после добавления в корзину

Автор lexxbry

Ответов: 9
Просмотров: 1073
Последний ответ 06.12.2018, 14:57:38
от lexxbry
[Решено] VirtueMart 2 Товаров в строке по умолчанию или Количество товаров в строке

Автор bhakta

Ответов: 2
Просмотров: 5080
Последний ответ 24.07.2018, 14:55:38
от Akeksandr
[Решено] Как настроить отображение миниатюр в карточке товара?

Автор Strelok760

Ответов: 1
Просмотров: 1284
Последний ответ 07.04.2018, 00:33:08
от Strelok760
Достойный шаблон VirtueMart 3, готов купить

Автор Terlovoy

Ответов: 5
Просмотров: 1136
Последний ответ 19.03.2018, 14:40:07
от lexxbry