Новости Joomla

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6.2PageBuilder Toolkit - это специализированный плагин для конструктора страниц Yootheme Pro, содержит набор различных утилит для ускорения процесса работы и отладки макета, множественные улучшения в интерфейсе, включая поддержку dark mode, подсказки, быстрая смена разрешения в окне просмотра и много чего еще.v.1.6.2 Что нового?- Индикатор статусов: теперь не просто показывает состояние запросов, но и делает автоматические попытки их отправки при кратковременных сбоях в сети, а если это не помогло, то переводит конструктор в ручной режим, что позволяет сохранит макет и настройки темы прежде чем вы потеряете все, что было сделано с момента последнего сохранения- Подсветка ошибок в макете: плагин анализирует код страницы и может автоматически подсвечивать data атрибуты с кучей мусора, которые попадают в код страницы при копипасте из Figma в TinyMCE (пригодится для старых макетов, в текущей работе плагин сам очищает код мусора). Также есть подсветка семантических ошибок сборки - дубли h1 тега на странице и вложенных друг в друга заголовков.- Улучшена поддержка будущего релиза Yootheme Pro 5 и редактора CodeMirror 6Плагин для русскоязычных пользователей доступен в каталоге расширений SovMart и распространяется за символическую плату (100р). Разработчики Joomla расширений и партнеры автора могут получить плагин бесплатно.Для работы плагина необходим конструктор страниц Yootheme Pro.Разработчик плагина - участник нашего сообщества Александр Судьбинов (@alexrevo), член официальной группы поддержки Yootheme Pro. Страница расширенияОписание на сайте автора@joomlafeed#joomla #yootheme

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

Yastrebov

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Как сделать единую кнопку обновления количества товара у все позиций в корзине?
По-умолчанию: рядом с каждой позицией, в столбце количество, отображается своя кнопка. Убрать ее оттуда - не проблема.
Проблема сделать в shop.cart.tpl.php, рядом с кнопкой оформить - кнопку "обновить все товары".

Гуглил усиленно, и на забугорных форумах - ничего нет.
*

Yastrebov

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

orchanin

  • Захожу иногда
  • 172
  • 3 / 0
Как сделать единую кнопку обновления количества товара у все позиций в корзине?
По-умолчанию: рядом с каждой позицией, в столбце количество, отображается своя кнопка. Убрать ее оттуда - не проблема.
Проблема сделать в shop.cart.tpl.php, рядом с кнопкой оформить - кнопку "обновить все товары".

Гуглил усиленно, и на забугорных форумах - ничего нет.

Нашел решение? Если да поделись тоже ищу!
*

Yastrebov

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Нет решения как не было - так и нет.
*

VetaJI

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
Поднимаю вопрос! Неужели никто такого не делал?  Я не верю! Скорее всего просто влом поделиться.
*

avers_inc

  • Новичок
  • 9
  • 2 / 0
А где вообще изменить вид этой формы обновления количества товаров и удаления из корзины?
*

Perla

  • Новичок
  • 8
  • 1 / 0
Ребята, посмотрите вот это обсуждение, возможно это поможет: http://php.su/forum/topic.php?forum=28&topic=121
*

Heian

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Выложу здесь свое решение (для остальных, ну и чтобы самому не забыть) :)
Алгоритм прост - по очереди сабмиттим все кнопки для каждого товара. Через AJAX, конечно.

1. Качаем плагин JQuery Form Plugin для отправления формы через AJAX.
2. Подключаем к шаблону. Далее в шаблоне корзины делаем кнопку для обновления всех товаров сразу. У меня это так:
Код: html4strict
<input class="submitButton fleft" type="button" value="Пересчитать" id="updateAllButton" />
3. Привязываем событие при щелчке на нее.
Код: javascript
jQuery('#updateAllButton').bind('click',function(i) {
var total=0; // Итоговая сумма всех товаров
jQuery('.updateform').each(function(i) { // updateform - класс стандартной формы для обновления количества одного товара
jQuery(this).ajaxSubmit(); // обновляем один товар за другим
var tid=jQuery(this).find('input[name=product_id]').val();
var price=jQuery('#pfo'+tid).text()*1; // я модернизировал вывод цен в шаблоне так, чтобы числовое значение и идентификатор валюты выводились двумя разными значениями, вы можете сделать как вам более по душе.
var count=jQuery('#quantity'+tid).val();
var subtotal=price*count; // считаем изменение суммы
jQuery('#price'+tid).html(subtotal); // меняем стоимость за товар
total+=subtotal;
});
jQuery('.totalPriceLabel').html(total); // меняем итоговое значение
});
4. Небольшие правки в шаблоне корзины. Проставьте класс updateform или любой другой у стандартной формы обновления товара. Также обратите внимание, что вам понадобится изменить либо вывод цен (для миникорзины это меняется в shop.basket_short.php, например), либо js-код для парсинга необходимого значения.

Вот и все :)
*

gelx

  • Осваиваюсь на форуме
  • 42
  • 1 / 1
Heian,
Можно поглядеть на реализацию в файле basket_b2c.html.php ?

Я так понимаю, надо править еще basket.php?

Распишите, пожалуйста, для "чайников"
*

Heian

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
gelx,
да, вам потребуется дописать еще одно значение в массиве товара для вывода только значимой части цены (чтобы можно было скриптом достать). У меня в basket.php этот момент (строка $product_rows[$i]['price']) была на 120~ строчке. Рядом с ней добавляем строки
Код: php
$product_price = round( $product_price, 2 ); //чтобы хранить цену в числовом формате
$product_rows[$i]['price_one_raw'] = $product_price; //Цена за 1 единицу товара, только цифры
$product_rows[$i]['price_raw'] = $product_price * $cart[$i]["quantity"]; //Цена за все заказанные товары в позиции, только цифры
После этого в шаблоне (basker_b2c.html.php) можно использовать эти значения. У меня так:
Код: html4strict
<input class="quantityfield" name="quantity" id="quantity_<?=$product['product_id']?>" value="<?=$product['quantity']?>" />
<span class="priceforoneLabel" id="pfo<?=$product['product_id']?>"><?php echo $product['price_one_raw'];?></span> руб.
<span class="priceLabel" id="price<?=$product['product_id']?>"><?php echo $product['price_raw'];?></span> руб.
Я, таким образом, снивелировал своим костылем возможность менять валюту, но в моем случае нужны только рубли. Вам же, скорее всего, потребуется дописать вышеуказанные инпуты и span в тело цикла foreach шаблона корзины и сделать их невидимыми (css класс display:none).

Полный код basket_b2c.php (начиная с цикла):
Код: php
<?php foreach( $product_rows as $product ) {
      $basepath='./components/com_virtuemart/shop_image/product/';    ?>
    <tr>
        <td>
            <div class="goodThumbBlock">
                <div>
                <?php echo '<img src="'.$basepath.$product['product_thumb'].'" />';?>
                </div>
                <?php echo $product['product_name'] ?>
            </div>
        </td>
        <td>
            <input class="quantityfield" name="quantity" id="quantity_<?=$product['product_id']?>" value="<?=$product['quantity']?>" />
        </td>
        <td>
            <span class="priceforoneLabel" id="pfo<?=$product['product_id']?>"><?php echo $product['priceforone'];?></span> руб.
        </td>
        <td>
            <span class="priceLabel" id="price<?=$product['product_id']?>"><?php echo $product['price'];?></span> руб.
        </td>
        <td>
            <?php echo $product['update_form'] ?>
            <?php echo $product['delete_form'] ?>
        </td>
    </tr>
<?php } ?>

    <tr>
        <td colspan="5"> </td>
    </tr>
    <tr>
        <td class="va_top">
            <span class="shippingLabel">Доставка:</span>
        </td>
        <td colspan="4" class="va_top">
            <div class="shipmBlock">
                <input value="1" type="radio" id="shipmethod1" name="shipmethod" class="shiptohash" checked />
                <label for="shipmethod1">Доставка по городу (300 руб.)</label>
            </div>
            <div class="shipmBlock">
                <input value="2" type="radio" id="shipmethod2" class="shiptohash" name="shipmethod" />
                <label for="shipmethod2">Самовывоз (бесплатно)</label>
            </div>
        </td>
    </tr>
    <tr>
        <td colspan="5"> </td>
    </tr>

    <tr>
        <td>
            <input class="submitButton fleft" type="button" value="Пересчитать" id="updateAllButton" />
        </td>
        <td colspan="3"> </td>
        <td>
            <form action="http://<?=$_SERVER['HTTP_HOST']?>/basket" method="post" id="delete" name="delete" style="display: inline;">
            <input type="hidden" name="option" value="com_virtuemart" />
            <input type="hidden" value="shop.cart" name="page">
            <input type="hidden" name="Itemid" value="<?=$Itemid?>" />
            <input type="hidden" name="func" value="deleteAllCart" />
            <input type="submit" id="delete" name="delete" class="submitButton fright" value="Очистить" title="Удалить все товары" />
            </form>
        </td>
    </tr>
</table>
<div class="wide-separator mtb4"></div>

<div class="allsumBlock mtb10">
    Итого к оплате: <span class="totalPriceLabel"><?=$order_total_display?></span> руб.
</div>
<div class="separator"></div>
<form method="post" class="adminForm" action="http://<?=$_SERVER['HTTP_HOST']?>/checkout?page=checkout.index&ssl_redirect=0&option=com_virtuemart&Itemid=<?=$Itemid?>">
    <input class="submitButton fright" type="submit" value="Оформить заказ" />
</form>
</div>
*

gelx

  • Осваиваюсь на форуме
  • 42
  • 1 / 1
Не работает, при нажатии на "Пересчитать" ничего не происходит...

У вас, видимо, еще в <?php echo $product['update_form'] ?> и <?php echo $product['delete_form'] ?> правки были - т.к. у меня появляются 2 input, в
<input class="quantityfield" name="quantity" id="quantity_<?=$product['product_id']?>" value="<?=$product['quantity']?>" />

значение не присутствует, в стандартной update_form значение верное.

*

Heian

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
gelx, верните все назад и попробуйте просто выполнить первые три шага в моем первом сообщении. Более нигде ничего менять не надо пока.
1. Качаем плагин JQuery Form Plugin для отправления формы через AJAX.
2. Подключаем к шаблону. Далее в шаблоне корзины делаем кнопку для обновления всех товаров сразу.
3. Привязываем событие при щелчке на нее. Создаете отдельный js файл (наприме, config.js) и подключаете его в шаблон. Там пишем
Код: javascript
jQuery(document).ready(function() {
jQuery('#updateAllButton').bind('click',function(i) {
jQuery('.updateform').each(function(i) {
alert('Форма №'+i+' опрошена'); //Проверка
jQuery(this).ajaxSubmit(); // обновляем один товар за другим
});
});
});
Далее ищете строку $product[$i]['update_form'] в basket.php и ставите у каждой формы класс updateform.
Далее тест, если alert выводит сообщения для всех кнопочек с надписью "обновить" в корзине, значит, первый этап ок и можно пытаться поменять некоторые значения в полях и обновить страницу вручную. Если все обновилось, можно уже дописать изменение цены.
*

gelx

  • Осваиваюсь на форуме
  • 42
  • 1 / 1
У меня нет такой строки $product[$i] в basket.php.  :dry: Может дело в различии версий? VM 1.1.9


[вложение удалено Администратором]
*

Heian

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Возможно, я делал на VM 1.2.0b (для Joomla 2.5).
Впрочем, суть все равно не меняется. У вас там в любом случае должно быть место, где собираются параметры продукта, чтобы выводить их в шаблоне корзины. Посмотрите, как выглядят переменные, которые выводятся в шаблоне корзины, и ищите по их названию в basket.php.
*

gelx

  • Осваиваюсь на форуме
  • 42
  • 1 / 1
Возможно, я делал на VM 1.2.0b (для Joomla 2.5).
Впрочем, суть все равно не меняется. У вас там в любом случае должно быть место, где собираются параметры продукта, чтобы выводить их в шаблоне корзины. Посмотрите, как выглядят переменные, которые выводятся в шаблоне корзины, и ищите по их названию в basket.php.
Я так понимаю, это вот этот кусок:
Код
	$tpl->set_vars( Array(
'product_rows' => $product_rows,
'subtotal_display' => $subtotal_display,
'discount_before' => $discount_before,
'discount_after' => $discount_after,
'coupon_display' => $coupon_display,
'shipping' => $shipping,
'shipping_display' => $shipping_display,
'show_tax' => $show_tax,
'tax_display' => $tax_display,
'weight_total' => $weight_total,
'order_total_display' => $order_total_display,
));

Что-то как-то ничего не разобрал... я не нашел в коде basket.php блока, отвечающего за обновление кол-ва
Спойлер
[свернуть]
« Последнее редактирование: 18.12.2012, 17:34:32 от gelx »
*

niggatub

  • Захожу иногда
  • 205
  • 2 / 3
Немножко не по теме, но близко.
Каким образом можно реализовать автоматический пересчет цены при изменении количества товара в корзине. То есть избавиться от кнопки "Обновить количество в корзине"? Я уже обгулился..(
*

niggatub

  • Захожу иногда
  • 205
  • 2 / 3
Я себе сделал вот так http://itmoskvin.ru/blog/2011/10/ajax-obnovlenie-korziny-virtuemart/
Имхо намного удобней, чем обновление по нажатию кнопки.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart 1.1.4 и https дополнительные фото товаров

Автор Sergey1984

Ответов: 0
Просмотров: 3375
Последний ответ 23.10.2018, 19:58:44
от Sergey1984
JComments + VirtueMart (решение проблемы рейтинга товаров)

Автор Oleksii

Ответов: 9
Просмотров: 5774
Последний ответ 13.09.2018, 23:26:17
от bgg87
Перенесено: ошибка корзина VirtueMart 3.2.4

Автор fsv

Ответов: 0
Просмотров: 1228
Последний ответ 01.10.2017, 23:55:12
от fsv
VMExport YML - Компонент для управления экспортом товаров из VirtueMart 1.1.x на Яндекс.Маркет

Автор jeka5555

Ответов: 5
Просмотров: 3957
Последний ответ 02.07.2017, 21:25:46
от vipiusss
VirtueMart каталог не показывает все категории товаров

Автор vasyun

Ответов: 1
Просмотров: 1376
Последний ответ 14.06.2017, 20:30:51
от vasyun