Новости 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 Гость просматривают эту тему.
  • 33 Ответов
  • 7663 Просмотров
*

deni4ka

  • Осваиваюсь на форуме
  • 40
  • 3 / 0
Подскажите, надо  убрать кнопку  "Уведомлять меня!". она высвечивается когда нулевое кол-во товара.
Где и как ее можно убрать что бы не было этой надписи и изображения под ней?

P.S.
где то видел решение, но тогда не обратил внимаения, а сейчас поиском не могу найти ((
Спасибо! 
*

kpk17

  • Захожу иногда
  • 257
  • 2 / 0
никто так и не нашел решение?
подскажите, очень нужно
*

kpk17

  • Захожу иногда
  • 257
  • 2 / 0
уберите в настройках проверку количества остатка на складе
в том то и дело хотелось чтобы осталась стоимость товара, но не было кнопки купить и кнопки уведомить меня!
чтобы не ковыряться и не удалять надпись "Позвоните, чтобы уточнить цену" и Подробнее если у товара нет цены
*

xCoReLx

  • Захожу иногда
  • 243
  • 7 / 0
ап теме, тоже ищу ответ
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
эээ, есть такая галка "VM работает в режиме каталога"  ^-^
*

xCoReLx

  • Захожу иногда
  • 243
  • 7 / 0
Да причем тут каталог! был товар, закончися указана цена, но мне не нужно, чтоб оставляли заявки, уведомения, вопросы, звонии! чтоб было пусто или надпись нет в наличии, потом товар появился и появлялась кнопочка купить
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
изи изи, люди понимают проблему исходя из объяснений человека, у кого эти проблемы.
Для этого служит переменная "Проверять наличие на складе?", которая находится в настройках VM
*

xCoReLx

  • Захожу иногда
  • 243
  • 7 / 0
Вы хоть пробовали, то что говорите? если убрать галочку "Проверять наличие на складе?" то человек может заказывать товар которого нет в наличии,
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
После того как выставлена эта переменная, если нет на складе необходимого кол-ва товара, то вместо купить появляется кнопка "уведомлять меня", которую можно поменять на все что угодно, нет на складе, никогда не будет, забудьте про этот товар. Я не пойму Вам что надо? Может уже стоит определиться?
*

xCoReLx

  • Захожу иногда
  • 243
  • 7 / 0
Подскажите, надо  убрать кнопку  "Уведомлять меня!". она высвечивается когда нулевое кол-во товара.
Где и как ее можно убрать что бы не было этой надписи и изображения под ней?


что из этого поста не ясно? где найти и как изменить
*

xCoReLx

  • Захожу иногда
  • 243
  • 7 / 0
ни кто не знает где и как?
*

arrow

  • Осваиваюсь на форуме
  • 10
  • 2 / 0
Я ковырял похожую ситуацию в файлах:
components\com_virtuemart\themes\default\templates\browse\includes\addtocart_form.tpl.php
components\com_virtuemart\themes\default\templates\product_details\includes\addtocart_form.tpl.php
Можно еще поизвращаться с классом .notify_button в components\com_virtuemart\themes\default\theme.css
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Правильно выше написали
1) /administrator/components/com_virtuemart/languages/common/
'VM_CART_NOTIFY' => 'Уведомлять меня!',
2) /components/com_virtuemart/themes/default/templates/browse/includes/addtocart_form.tpl.php
$button_lbl = $VM_LANG->_('VM_CART_NOTIFY');
3) /components/com_virtuemart/themes/default/templates/product_details/includes/
$button_lbl = $VM_LANG->_('VM_CART_NOTIFY');
« Последнее редактирование: 31.08.2010, 06:42:09 от Infosakh »
*

xCoReLx

  • Захожу иногда
  • 243
  • 7 / 0
спасибо за помощь, знаю тепрь где корырять.
Так, осталась загвоздка, ковырял я и чет зашел в тупик, как надпись оставить в ссылка на уведомить меня удалиась вместе
« Последнее редактирование: 31.08.2010, 11:58:19 от xCoReLx »
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Может проще вместо "уведомлять меня" написать товара нет, нет в наличии и т.д.? Думаю не будут кликать и подписываться на емэйл
*

xCoReLx

  • Захожу иногда
  • 243
  • 7 / 0
ну не все такие умные, бараны то найдутся, по этому требуется исключить лишнее :(
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
попробуйте так, например в файле /components/com_virtuemart/themes/default/templates/browse/includes/addtocart_form.tpl.php
17 строка, <input type="submit" class="<?php echo $button_cls ?>" value="<?php echo $button_lbl   ?>" title="<?php echo $button_lbl ?>" />
вместо submit - вставьте text
*

xCoReLx

  • Захожу иногда
  • 243
  • 7 / 0
да тоже приметил эту сторчку, попробовал этот вариант, к сожалению тогда не работет покупка, может стоит копать совершено в другом месте ...

вот нашел файлик отвечающий за форму подачи заявки shop.waiting_list.php не могу найти в каком файле на него идет ссылка в случае если нет товара :( можно конечно написать в нем типо Извините товара нет и бла бла бла) но не вставляет этот вариант чет
« Последнее редактирование: 31.08.2010, 17:48:31 от xCoReLx »
*

xCoReLx

  • Захожу иногда
  • 243
  • 7 / 0
ку ку, :( нет идей?
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
попробуйте так, например в файле /components/com_virtuemart/themes/default/templates/browse/includes/addtocart_form.tpl.php
17 строка, <input type="submit" class="<?php echo $button_cls ?>" value="<?php echo $button_lbl   ?>" title="<?php echo $button_lbl ?>" />
вместо submit - вставьте text
да тоже приметил эту сторчку, попробовал этот вариант, к сожалению тогда не работет покупка, может стоит копать совершено в другом месте ...

Тогда все просто = добавляем условие и крутим вертим код, как хотим:

Цитировать
if( CHECK_STOCK == '1' && !$product_in_stock ) {
   $button_lbl = $VM_LANG->_('VM_CART_NOTIFY');
   $button_cls = 'notify_button';
   $notify = true;
   
   $typepp = text;
} else {
   $notify = false;
   $typepp = submit;
}
?>

<form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="addtocart<?php echo $i ?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>
    <?php echo $ps_product_attribute->show_quantity_box($product_id,$product_id); ?><br />
   <input type="<?php echo $typepp ?>" class="<?php echo $button_cls ?>" value="<?php echo $button_lbl   ?>" title="<?php echo $button_lbl ?>" />

Cтавим в условии, что если у нас Уведомить, то тип = тексту, а если Купить, то тип = сабмиту.
*

xCoReLx

  • Захожу иногда
  • 243
  • 7 / 0
Вы гений действительно работает, но как всегда с первого раза не получается :( при сохранении FrontPage говорит "страница содиржит список повторяющихся форм: addtocart и в итоге на стринице покупки возникает каша из данных кокупки :( сам чет ни че ни разбиру
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
Вы гений действительно работает, но как всегда с первого раза не получается :( при сохранении FrontPage говорит "страница содиржит список повторяющихся форм: addtocart и в итоге на стринице покупки возникает каша из данных кокупки :( сам чет ни че ни разбиру
Не понял, что за ошибки... У меня все отлично прошло - то, что указал выше.
*

xCoReLx

  • Захожу иногда
  • 243
  • 7 / 0
всё разобрался шаблон глюканул, и каша была но как и говорил FrontPage


вот весь вайл
Код
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>

<div class="vmCartContainer">
    
<?php
mm_showMyFileName(__FILE__);
// This function lists all product children ( = Items)
// or, when not children are defined, the product_id
// SO LEAVE THIS IN HERE!
list($html,$children) = $ps_product_attribute->list_attribute( ( $product_parent_id > 0 )  ? $product_parent_id : $product_id );

if ($children != "multi") {

    if( CHECK_STOCK == '1' && !$product_in_stock ) {
     $notify = true;
    } else {
     $notify = false;
    }

?>
    <form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="<?php echo uniqid('addtocart_')?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>

<?php
}
echo $html;

if (USE_AS_CATALOGUE != '1' && $product_price != "" && !stristr( $product_price, $VM_LANG->_('PHPSHOP_PRODUCT_CALL') )) {
?>
        <?php if ($children != "multi") { ?>
    <div style="float: right;vertical-align: middle;"> <?php
    if ($children == "drop") {
     echo $ps_product_attribute->show_quantity_box($product_id,$product_id);
    }
    if ($children == "radio") {
echo $ps_product_attribute->show_radio_quantity_box();
    }
    $button_lbl = $VM_LANG->_('PHPSHOP_CART_ADD_TO');
    $button_cls = 'addtocart_button';
if( CHECK_STOCK == '1' && !$product_in_stock ) {
   $button_lbl = $VM_LANG->_('VM_CART_NOTIFY');
   $button_cls = 'notify_button';
   $notify = true;
  
   $typepp = text;
} else {
   $notify = false;
   $typepp = submit;
}
?>

<form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="addtocart<?php echo $i ?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>
    <?php echo $ps_product_attribute->show_quantity_box($product_id,$product_id); ?><br />
   <input type="<?php echo $typepp ?>" class="<?php echo $button_cls ?>" value="<?php echo $button_lbl   ?>" title="<?php echo $button_lbl ?>" />
    </div>
    <?php  } ?>    
    <input type="hidden" name="flypage" value="shop.<?php echo $flypage ?>" />
<input type="hidden" name="page" value="shop.cart" />
    <input type="hidden" name="manufacturer_id" value="<?php echo $manufacturer_id ?>" />
    <input type="hidden" name="category_id" value="<?php echo $category_id ?>" />
    <input type="hidden" name="func" value="cartAdd" />
    <input type="hidden" name="option" value="<?php echo $option ?>" />
    <input type="hidden" name="Itemid" value="<?php echo $Itemid ?>" />
    <input type="hidden" name="set_price[]" value="" />
    <input type="hidden" name="adjust_price[]" value="" />
    <input type="hidden" name="master_product[]" value="" />
    <?php
}
if ($children != "multi") { ?>
</form>
<?php
}
    if($children == "radio") { ?>
    
    <script language="JavaScript" type="text/javascript">//<![CDATA[
    function alterQuantity(myForm) {
        for (i=0;i<myForm.selItem.length;i++){
            setQuantity = myForm.elements['quantity'];
            selected = myForm.elements['selItem'];
            j = selected[i].id.substr(7);
            k= document.getElementById('quantity' + j);
            if (selected[i].checked==true){
                k.value = myForm.quantity_adjust.value; }
            else {
                k.value  = 0;
            }
        }
    }
//]]>  
</script>
<?php } ?>
</div>
*

xCoReLx

  • Захожу иногда
  • 243
  • 7 / 0
не поможете решить?
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
всмысле глюканул, кол-во два раза выводит?
*

xCoReLx

  • Захожу иногда
  • 243
  • 7 / 0
заменяю родной код вашим и вот такое. Как на виртуалке так и на рабочем сервере
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
приведенный скрин товара - случайно не дочерний товар?  ^-^
еще тут наверно надо поправить:
if ($children != "multi") {

    if( CHECK_STOCK == '1' && !$product_in_stock ) {
        $notify = true;
    } else {
       $notify = false;
    }
*

xCoReLx

  • Захожу иногда
  • 243
  • 7 / 0
и на моем товаре так же показывает если вы об этом.Не понял что в этом коде править.
я говорю про файл \components\com_virtuemart\themes\vmtheme001\templates\product_details\includes\addtocart_form.tpl.php
Я вставил этот:
Код
if( CHECK_STOCK == '1' && !$product_in_stock ) {
   $button_lbl = $VM_LANG->_('VM_CART_NOTIFY');
   $button_cls = 'notify_button';
   $notify = true;
  
   $typepp = text;
} else {
   $notify = false;
   $typepp = submit;
}
?>

<form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="addtocart<?php echo $i ?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>
    <?php echo $ps_product_attribute->show_quantity_box($product_id,$product_id); ?><br />
   <input type="<?php echo $typepp ?>" class="<?php echo $button_cls ?>" value="<?php echo $button_lbl   ?>" title="<?php echo $button_lbl ?>" />
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
всё разобрался шаблон глюканул, и каша была но как и говорил FrontPage


вот весь вайл
Код
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>

<div class="vmCartContainer">
   
<?php
mm_showMyFileName(__FILE__);
// This function lists all product children ( = Items)
// or, when not children are defined, the product_id
// SO LEAVE THIS IN HERE!
list($html,$children) = $ps_product_attribute->list_attribute( ( $product_parent_id > 0 )  ? $product_parent_id : $product_id );

[b]if ($children != "multi") {

    if( CHECK_STOCK == '1' && !$product_in_stock ) {
      $notify = true;
    } else {
    $notify = false;
    }

?>[/b]
    <form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="<?php echo uniqid('addtocart_')?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>

<?php
}
echo $html;

if (USE_AS_CATALOGUE != '1' && $product_price != "" && !stristr( $product_price, $VM_LANG->_('PHPSHOP_PRODUCT_CALL') )) {
?>
        <?php if ($children != "multi") { ?>
    <div style="float: right;vertical-align: middle;"> <?php
    if ($children == "drop") {
    echo $ps_product_attribute->show_quantity_box($product_id,$product_id);
    }
    if ($children == "radio") {
echo $ps_product_attribute->show_radio_quantity_box();
    }
    $button_lbl = $VM_LANG->_('PHPSHOP_CART_ADD_TO');
    $button_cls = 'addtocart_button';
if( CHECK_STOCK == '1' && !$product_in_stock ) {
   $button_lbl = $VM_LANG->_('VM_CART_NOTIFY');
   $button_cls = 'notify_button';
   $notify = true;
   
   $typepp = text;
} else {
   $notify = false;
   $typepp = submit;
}
?>

<form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="addtocart<?php echo $i ?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>
    <?php echo $ps_product_attribute->show_quantity_box($product_id,$product_id); ?><br />
   <input type="<?php echo $typepp ?>" class="<?php echo $button_cls ?>" value="<?php echo $button_lbl   ?>" title="<?php echo $button_lbl ?>" />
    </div>
    <?php  } ?>   
    <input type="hidden" name="flypage" value="shop.<?php echo $flypage ?>" />
<input type="hidden" name="page" value="shop.cart" />
    <input type="hidden" name="manufacturer_id" value="<?php echo $manufacturer_id ?>" />
    <input type="hidden" name="category_id" value="<?php echo $category_id ?>" />
    <input type="hidden" name="func" value="cartAdd" />
    <input type="hidden" name="option" value="<?php echo $option ?>" />
    <input type="hidden" name="Itemid" value="<?php echo $Itemid ?>" />
    <input type="hidden" name="set_price[]" value="" />
    <input type="hidden" name="adjust_price[]" value="" />
    <input type="hidden" name="master_product[]" value="" />
    <?php
}
if ($children != "multi") { ?>
</form>
<?php
}
    if($children == "radio") { ?>
   
    <script language="JavaScript" type="text/javascript">//<![CDATA[
    function alterQuantity(myForm) {
        for (i=0;i<myForm.selItem.length;i++){
            setQuantity = myForm.elements['quantity'];
            selected = myForm.elements['selItem'];
            j = selected[i].id.substr(7);
            k= document.getElementById('quantity' + j);
            if (selected[i].checked==true){
                k.value = myForm.quantity_adjust.value; }
            else {
                k.value  = 0;
            }
        }
    }
//]]>   
</script>
<?php } ?>
</div>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Количество просмотров товара VirtueMart Существует?

Автор grishin

Ответов: 38
Просмотров: 13338
Последний ответ 22.08.2020, 08:44:29
от rsn
VirtueMart. Вывести названия дополнительных изображений в карточке товара

Автор Delik

Ответов: 3
Просмотров: 5152
Последний ответ 04.09.2018, 10:42:46
от Eholov
Как убрать список категорий с главной страницы virtuemart 1.1.3?

Автор SynVelesa

Ответов: 6
Просмотров: 10380
Последний ответ 07.06.2018, 00:21:52
от iGatto
Модуль авторизации пользователей убрать лишнее

Автор pautina

Ответов: 22
Просмотров: 12126
Последний ответ 20.01.2018, 06:08:46
от ElenaD
Как сделать импорт товара на VirtueMart?

Автор Усач911

Ответов: 0
Просмотров: 1230
Последний ответ 07.11.2017, 22:03:18
от Усач911