Новости Joomla

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

👩‍💻 Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1. Это релиз, в который включены уже проверенные изменения, но ещё очень многие исправления и улучшения ждут своей очереди. Joomla следит за качеством и безопасностью своего кода и каждое изменение должно быть успешно протестировано как минимум ещё двумя участниками сообщества. Разработка Joomla ведётся на платформе GitHub.Филипп Уолтон (Philip Walton) - один из разработчиков, кто активно вносит свой вклад в ядро Joomla. Он уже несколько месяцев посвящает свои послеполуденные часы пятницы работе с Joomla и предлагает присоединиться к нему. 📆 Пятница, 30 мая 2025, с 15:00 до 17:00 по UTC (Лондон) - с 18:00 до 20:00 по Москве.В чате Google Meet Филипп готов помочь с тестированием тем, кто будет делать это в первый раз. А так же он подготовил список лёгких Pull Request, которые можно протестировать довольно быстро. Чем больше тестов будет проведено сейчас, тем меньше ошибок вылезет потом. На данный момент 148 (уже 147 на момент написания заметки) PR на GitHub Joomla ждут тестирования.👩‍💻 Open to all. All together.Также вам поможет сделать первые шаги это видео.GitHub JoomlaДа, это вечер пятницы. Но тестирование занимает порой минут 15, а доброе дело сделано. Просто убедитесь, что разработчик чего-то не пропустил и всё работает как ожидается.#joomla #joomla6 #community

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

x-render

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
Здравствуйте, уважаемые знатоки VirtueMart. Ломаю себе голову как сделать такой вариант: если товар уже есть в корзине, то в карточке товара изменить внешний вид кнопки "Добавить в корзину" или вообще не выводить кнопку эту кнопку. Подскажите пожалуйста как сделать такую проверку на странице товара. Заранее огромное спасибо.
VirtueMart 2.0.20b

Решение:
Как оказалось все очень просто.

1.  В файле /components/com_virtuemart/views/productdetails/tmpl/default.php после
Код
defined('_JEXEC') or die('Restricted access');
вставляем
Код
if(!class_exists('VirtueMartCart')) require(JPATH_VM_SITE.DS.'helpers'.DS.'cart.php');
$cartProducts = VirtueMartCart::getCart(false)->products;
foreach($cartProducts as $cartProduct){
$inCart = ($cartProduct->virtuemart_product_id==$this->product->virtuemart_product_id);
if ($inCart) break;
}
Если класс 'VirtueMartCart' не определен, то подключаем хелпер 'cart.php'. Потом получаем массив продуктов которые есть в корзине. Проверяем совпадение ID нашего продукта с ID продуктов из корзины, если есть совпадение останавливаем цикл.
2. Мне для оформления кнопки достаточно было поменять ее стиль, т.к. надпись кнопки на картинке фона, а не в input'е. Поэтому в файле /components/com_virtuemart/views/productdetails/tmpl/default.php вот это:
Код
<?php
// Add To Cart Button
// if (!empty($this->product->prices) and !empty($this->product->images[0]) and $this->product->images[0]->file_is_downloadable==0 ) {
//if (!VmConfig::get('use_as_catalog', 0) and !empty($this->product->prices['salesPrice'])) {
   
echo $this->loadTemplate('addtocart');
//}  // Add To Cart Button END
?>
я завернул в <div> и в классе сделал проверку если было совпадение ID то пишем этому диву класс, вот что получилось:
Код
<div class="<? if($inCart){echo "in_cart";} ?>">
<?php echo $this->loadTemplate('addtocart');?>
</div>
3. Осталось только оформить в CSS кнопку внутри div'а .in_cart.
Вот и все решение этой загагулины.
Будут вопросы спрашивайте, постараюсь ответить.

Большое спасибо Fedor Vlasenko за упрощение данного решения.
« Последнее редактирование: 22.05.2013, 11:46:48 от x-render »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Цитировать
Будут вопросы спрашивайте, постараюсь ответить.
Сразу вопрос. Зачем эти все лишние движения. Насколько я понимаю данные корзины и соответственно id товара в корзине можно вытащить из сессии прямо в карточке товара. Или я ошибаюсь?
*

x-render

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
Можно вытащить напрямую из сессии Joomla, только в каждой сессии тысяча переменных. Зачем нам обрабатывать всю сессию если в классе "VirtueMartCart" формируется массив переменных только для корзины? К тому же проверка класса "VirtueMartCart" это чисто формальность, т.к. практически всегда он уже будет определен. Да и если брать напрямую из сессии, то все равно надо использовать обработчик сессий Joomla. Если у Вас есть решение проще(хотя куда еще проще) поделитесь возможно оно будет правильнее.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
У меня нет VirtueMart. Все про ... *DRINK*
Я к тому, что править /components/com_virtuemart/helpers/cart.php не совсем хорошо. Так как затрется при обновлении
*

x-render

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
Цитировать
Я к тому, что править /components/com_virtuemart/helpers/cart.php не совсем хорошо. Так как затрется при обновлении
С этим согласен. Будет время попробую обойти это.  ^-^
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
файл /components/com_virtuemart/views/productdetails/tmpl/default.php
Код: php-brief
<?php
if(!class_exists('VirtueMartCart')) require(JPATH_VM_SITE.DS.'helpers'.DS.'cart.php');
$cartProducts = VirtueMartCart::getCart(false)->products;
foreach($cartProducts as $cartProduct){
$inCart = ($cartProduct->virtuemart_product_id==$this->product->virtuemart_product_id);
if ($inCart) break;
}
// А далее проверяем значение $inCart
if($inCart){
echo 'товар в корзине';
} else {
//товара нет в корзине
}
?>
Без хаков ^-^
*

x-render

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
 ^-^ Спасибо. Как появится возможность проверю и отпишусь.
*

x-render

  • Осваиваюсь на форуме
  • 25
  • 2 / 0
Огромное спасибо, работает. В теме решение поправил. С меня +1.
*

xlite

  • Захожу иногда
  • 65
  • 5 / 0
 А данный метод что то не получается прикрутить к категории .. мне там это более важно
Разобрался для категории рецепт такой
после
Код
defined ('_JEXEC') or die('Restricted access');
добавляем
Код
if(!class_exists('VirtueMartCart')) require(JPATH_VM_SITE.DS.'helpers'.DS.'cart.php');

когда начинается цикл продуктов после

Код
// Start the Output
foreach ($this->products as $product) {

вносим
Код
$cartProducts = VirtueMartCart::getCart(false)->products;
foreach($cartProducts as $cartProduct){
$inCart = ($cartProduct->virtuemart_product_id==$product->virtuemart_product_id);
if ($inCart) break;
}

в моем случае я просто добавляю стиль в контейнер с продуктом

<div class="product-cont  <?php if($inCart){ ?> in_cart <?php } ?>">
« Последнее редактирование: 16.07.2013, 14:33:03 от xlite »
*

Ilyailti

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
файл /components/com_virtuemart/views/productdetails/tmpl/default.php
Код: php-brief
<?php
if(!class_exists('VirtueMartCart')) require(JPATH_VM_SITE.DS.'helpers'.DS.'cart.php');
$cartProducts = VirtueMartCart::getCart(false)->products;
foreach($cartProducts as $cartProduct){
$inCart = ($cartProduct->virtuemart_product_id==$this->product->virtuemart_product_id);
if ($inCart) break;
}
// А далее проверяем значение $inCart
if($inCart){
echo 'товар в корзине';
} else {
//товара нет в корзине
}
?>
Без хаков ^-^


Всем, привет.
Подскажите, как правильно вставить этот код в файл /components/com_virtuemart/views/productdetails/tmpl/default.php
в какое место и что еще нужно изменить, поробывал добавлять в разные места, просто исчезает вся страница.
очень необходимо чтобы после нажатия на кнопку "купить" в карточке товара, надпись менялась на "в корзине"
Чтобы надпись менялась сразу без обновления страницы.
Люди добрые помогите.
Спасибо.
« Последнее редактирование: 27.08.2013, 16:54:47 от Ilyailti »
*

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

  • Давно я тут
  • 837
  • 35 / 0
Чтобы надпись менялась сразу без обновления страницы.
Скриншот со стрелкой где нужна меняющаяся надпись, пожайлуста.
*

Ilyailti

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
вот скрин
помогите пожалуйста


нужно чтобы при нажатии "купить" товар соответственно падал в корзину и появлялась надпись в "корзине" место надписи "купить" 
« Последнее редактирование: 15.09.2013, 18:28:25 от Ilyailti »
*

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

  • Давно я тут
  • 837
  • 35 / 0
Тогда покажите ваши правки для PHP, определение вашего стиля для CSS. Где конкретно в этих инструкциях у вас неясности?
2. Мне для оформления кнопки достаточно было поменять ее стиль, т.к. надпись кнопки на картинке фона, а не в input'е. Поэтому в файле /components/com_virtuemart/views/productdetails/tmpl/default.php вот это:
Код
<?php    
echo $this->loadTemplate('addtocart');
//}  // Add To Cart Button END
?>
я завернул в <div> и в классе сделал проверку если было совпадение ID то пишем этому диву класс, вот что получилось:
Код
<div class="<? if($inCart){echo "in_cart";} ?>">
<?php echo $this->loadTemplate('addtocart');?>
</div>
3. Осталось только оформить в CSS кнопку внутри div'а .in_cart.
Разобрался для категории рецепт такой...

в моем случае я просто добавляю стиль в контейнер с продуктом
<div class="product-cont  <?php if($inCart){ ?> in_cart <?php } ?>">
*

Ilyailti

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
/productdetails/default.php

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

что нужно заменить чтобы корректно все работало, спасибо.
« Последнее редактирование: 16.09.2013, 12:50:51 от fsv »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Ilyailti, уберите вашу простыню под спойлер. Так ее никто читать не будет.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Ilyailti

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
пожалуйста, помогите)!
*

quhget

  • Новичок
  • 7
  • 0 / 0
Ребят, подскажите пожалуйста, как сделать, чтобы иконка Добавить в Корзину исчезала, когда товара нет в наличии? Либо вместо неё появлялась Предзаказ ?
*

kok

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Привет!

Я так понял, что Решение работает только при принудительном обновлении страницы с карточкой товара?
*

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

  • Давно я тут
  • 837
  • 35 / 0
Ребят, подскажите пожалуйста, как сделать, чтобы иконка Добавить в Корзину исчезала, когда товара нет в наличии? Либо вместо неё появлялась Предзаказ ?
Ваша версия VM? Ссылка?
*

Ilyailti

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
Друзья, помогите пожалуйста по моему вопросу! ! ! ! ! :'( *DRINK*
*

Ilyailti

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
*

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

  • Давно я тут
  • 837
  • 35 / 0
Это не ссылка. Рекомендую обновить версию.
*

vantal

  • Осваиваюсь на форуме
  • 46
  • 0 / 1
Стоит компонент K2 Store. Корзинаи алгоритм добавления в корзину такой же. Нужен сделать такой же функционал, чтобы добавить товар можно было только один раз. Кто нибудь может помочь? Готов заплатить.
*

Garyk01

  • Осваиваюсь на форуме
  • 22
  • 1 / 0
Нужна помощь - как этот же функционал добавить в родной Модуль VirtueMart Товары [mod_virtuemart_product]?
Пробовал вставлять код в default.php модуля - не срабатывает
*

Eholov

  • Захожу иногда
  • 170
  • 14 / 0
А для VirtueMart 3 есть подобное решение? Этот код не работает. В virtuemart3 нет файла cart.php
*

SolopoV

  • Давно я тут
  • 576
  • 16 / 0
  • зеленею...
// А далее проверяем значение $inCart
if($inCart){
echo 'товар в корзине';
} else {
//товара нет в корзине
}
В 3 VirtueMart получить данные в карточке товара можно так:

Код
$session = JFactory::getSession();
$cartSession = $session->get('vmcart', 0, 'vm');
$cartProducts = json_decode($cartSession);
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как добавить полную ссылку в canonical?

Автор art22

Ответов: 9
Просмотров: 2594
Последний ответ 02.08.2021, 08:48:23
от sivers
Как в RSS ленту VirtueMart 3 добавить дополнительные изображения товара?

Автор Slava77

Ответов: 2
Просмотров: 2852
Последний ответ 06.06.2021, 01:12:01
от Slava77
Добавить ссылку на товар вместо 'Выбрать Вариант' на странице категории

Автор Akeksandr

Ответов: 0
Просмотров: 2260
Последний ответ 21.02.2021, 19:18:44
от Akeksandr
[Решено] Список товаров на главной VirtueMart

Автор vitoxa_ya

Ответов: 6
Просмотров: 10076
Последний ответ 21.10.2020, 23:27:08
от alfa212
Отключение всплывающего окна и перехода в корзину при добавлении товара

Автор calashnikov

Ответов: 15
Просмотров: 12731
Последний ответ 03.02.2020, 16:07:06
от zrkyuseo