Новости Joomla

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

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

SnowMan

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Изменения цен в корзине
« : 12.09.2011, 16:05:50 »
Всем доброго времени суток. Столкнулся с такой проблемой:
Необходимо в корзине пересчитывать цену на товар в зависимости от того сколько штук товаров в упаковке и затем выводить покупателю сообщение что стоимость товара была изменена. Т.е. при выборе кол-ва товара, если его кол-во не кратно или меньше кол-ва в упаковке, нужно чтобы цена пересчитывалась цена = штуки*кол-во штук в упаковке. Помогите, пожалуйста.

Искал как формируется цена. промежуточная и т.д. куча разных переменных, так и не нашел :(

Joomla 1.5 VM 1.1.6



Красным выделено цена где должна меняться. Насчет сообщения для пользователя о том что цена поменялась посредством alert или же в верстке добавлю что цены изменены, пока не решил. Самое главное найти где правильно прописать формулы с правильными переменными для расчета цен?
*

SnowMan

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Re: Изменения цен в корзине
« Ответ #1 : 12.09.2011, 16:50:24 »
Пробовал вывести отдельно кол-во в упаковке переменной <?php echo $product['product_packaging']; ?> и так <?php echo $product_packaging ?> никаких результатов. Пробую в basket_b2c.html. Там же корзина выводится :) может неправильно переменную пишу или что то еще где то нужно дописать?
*

SnowMan

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Re: Изменения цен в корзине
« Ответ #2 : 12.09.2011, 17:16:31 »
народ, сделал сам :) В общем это как с добавлением картинки к корзине:

в basket.php добавляем строчку - $product_rows[$i]['product_packaging'] = $ps_product->get_field($cart[$i]["product_id"], "product_packaging");
далее в basket_b2c.html.php вставляем в нужном вам месте <?php echo $product['product_packaging'] ?>

Но сейчас пока не получается сделать так чтобы к цене валюта прибавлялась корректно. На данный момент цена считается, но пропадает валюта и получается одной цифрой выводит.
*

SnowMan

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Re: Изменения цен в корзине
« Ответ #3 : 12.09.2011, 17:58:46 »
на данный момент получилось вот что:



не найду как формируется:

$subtotal_display
$order_total_display

и т.д. Соответственно цены должны быть с валютой на конце и в корзине цена суммироваться по промежуточному итогу. Помогите, пожалуйста, разобраться
*

SnowMan

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Re: Изменения цен в корзине
« Ответ #4 : 13.09.2011, 09:39:53 »
не ужели никто не знает? :) Разбирающиеся в VM и php, помогите, пожалуйста!)
*

SnowMan

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Re: Изменения цен в корзине
« Ответ #5 : 13.09.2011, 11:27:52 »
Возможен такой вариант еще, чтобы меньше кода править:


Код
$html .= '<input type="text" class="inputboxquantity" size="4" id="quantity'.$prod_id.'" name="quantity[]" value="'.$quantity.'" />
<input type="button" class="quantity_box_button quantity_box_button_up" onclick="var qty_el = document.getElementById(\'quantity'.$prod_id.'\'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++;return false;" />
<input type="button" class="quantity_box_button quantity_box_button_down" onclick="var qty_el = document.getElementById(\'quantity'.$prod_id.'\'); var qty = qty_el.value; if( !isNaN( qty ) &amp;&amp; qty > 0 ) qty_el.value--;return false;" />
';

qty_el.value++ исправить это чтобы прибавлялось кол-во в упаковке сразу, а не по одному увеличивалось. переменная за кол-во упаковки - $product_packaging.

Пока не соображу как это сделать. Может кто и по короче способ посоветует? :) Отзавитесь кто нить!)
*

SnowMan

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Re: Изменения цен в корзине
« Ответ #6 : 13.09.2011, 16:36:20 »
Всем еще раз привет. Вопрос решил сам :)

Кому интересно, решение:

для начала идем в файл ps_product.php

там 2641 строка

Код
function &get_quantity_options( $product_id )

может быть и коряво смотрится, но все же. добавляем
 
Код
$st = ps_product::get_field( $product_id, 'product_packaging', true );
 $quantity_options = array('quantity_start' => 0, 'quantity_end' => 0, 'quantity_step' => $st-1 );
 

далее идем в файл quantity_box_general.tpl.php

там ищем
Код
$html .= '<input type="text" class="inputboxquantity" size="4" id="quantity'.$prod_id.'" name="quantity[]" value="'.$quantity.'" />
<input type="button" class="quantity_box_button quantity_box_button_up" onclick="var qty_el = document.getElementById(\'quantity'.$prod_id.'\'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++;return false;" />
<input type="button" class="quantity_box_button quantity_box_button_down" onclick="var qty_el = document.getElementById(\'quantity'.$prod_id.'\'); var qty = qty_el.value; if( !isNaN( qty ) &amp;&amp; qty > 0 ) qty_el.value--;return false;" />
';

qty_el.value++ и qty_el.value-- меняем соответственно на qty_el.value=Number(qty_el.value)+Number('.$quantity_step.') и qty_el.value=qty_el.value=Number(qty_el.value)-Number('.$quantity_step.')

Вот вроде и все. По крайней мере у меня считает все отлично. Joomla 1.5 VM 1.1.6
*

SnowMan

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Re: Изменения цен в корзине
« Ответ #7 : 13.09.2011, 17:10:16 »
Осталось решить вопрос чтобы стартовал с минимального числа в упаковке список перед кнопками и добавлялся минимум в корзину 1 пачка. это пока не получается решить. Кто может, подскажите :)
*

SnowMan

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Re: Изменения цен в корзине
« Ответ #8 : 14.09.2011, 09:51:29 »
Решил вопрос добавив в массив свое значение:

ps_product.php

2643 строка: $quantity_options = array('quantity_start' => 0, 'quantity_end' => 0, 'quantity_step' => $st, 'st_start' => $st );
и далее $quantity_options['st_start'] = $fields[4]; после $quantity_options['quantity_step'] = $fields[3];

Затем в файле quantity_box_general.tpl.php

46 строка

заменил  $html .= '<input type="text" class="inputboxquantity" size="4" id="quantity'.$prod_id.'" name="quantity[]" value="'.$quantity.'" />
value="'.$quantity.'" на value="'.$st_start.'". Теперь начинает стартовать с кол-ва товаров в упаковке, для каждого id свое значение, то что я и хотел сделать)

Осталось сделать фильтр в корзине, чтобы введенное значение пользователем в поле импут округлялось  до кол-ва в упаковке, допустим если он в самой корзине уже меняет на меньшее кол-во чем в пачке оно автоматически округляется до пачки, если чуть больше чем одна пачка, то в большую сторону и выводится сообщение о том что значение было изменено до кол-ва товаров в пачке.

Пока не знаю как это сделать) Кто может, помогите.
*

SnowMan

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Re: Изменения цен в корзине
« Ответ #9 : 19.09.2011, 15:33:22 »
При помощи JS сделал, но нужно предусмотреть проверку на сервере введенного кол-ва, тогда от JS можно будет совсем отказаться. Если для кого то эта тема актуальна, отпишитесь или может где Вы видели решение данного вопроса, буду очень благодарен!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отображение скидки на каждый товар в корзине.

Автор magic21

Ответов: 27
Просмотров: 4386
Последний ответ 03.10.2013, 10:30:19
от spsyper
возможность вывода в корзине свойств товара

Автор aleks_yug

Ответов: 102
Просмотров: 38469
Последний ответ 15.02.2013, 11:04:26
от kpk17
Компонент изменения цен VM 1.1.x

Автор orchanin

Ответов: 4
Просмотров: 1802
Последний ответ 17.01.2013, 09:01:48
от orchanin
Последние добавленные товары в мини корзине

Автор Sonio

Ответов: 0
Просмотров: 1113
Последний ответ 06.12.2012, 16:42:02
от Sonio
[Решено] [Joomla 1.5.x] [VM 1.1.x] Изображение товара в корзине.

Автор urodoff

Ответов: 103
Просмотров: 26192
Последний ответ 14.11.2012, 00:28:14
от kreolka_8