Новости Joomla

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

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

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

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

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

Читать статью на Хабре.

@joomlafeed

🏆 Открыто голосование за 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 Гость просматривают эту тему.
  • 14 Ответов
  • 4335 Просмотров
*

THE KILLERS

  • Давно я тут
  • 932
  • 28 / 0
Вообщем такая тема. У меня 2 способа доставки:
1) Доставка (только бесплатная, но при общей сумме заказа от 300 руб.)
2) Самовывоз из магазина (если общая сумма заказа менее 300 руб.)
То есть при оформлении заказа если покупатель набрал товаров на сумму больше 300 руб., ему может быть доступно 2 варианта доставки:
1) Доставка (бесплатная)
или
2) Самовывоз из магазина
В противном случае, если сумма заказа у покупателя меньше 300 руб., то ему должен быть доступен только один вариант доставки-Самовывоз из магазина.
В идеале хотелось бы чтобы при сумме заказа меньше 300 руб. оба пункта были видны при оформлении заказа, но пункт "Доставка (только бесплатная, но при общей сумме заказа от 300 руб.)" был бы неактивен. А в случае суммы заказа более 300 руб. все нормально-ничего переделывать не надо.
То есть вот наглядный рисунок чтобы особо не вникать в вышенаписанное:

Случай 1: Сумма заказа больше 300 руб.

тут все нормально, ничего переделывать не надо

Случай 2: Сумма заказа меньше 300 руб.


Вот тут-то я и не знаю как сделать. Может это можно сделать штатными средствами JoomShopping, или может быть есть какие-нибудь хаки, плагины, или может есть платные решения? Вообщем подскажите пожалуйста как можно реализовать это.
« Последнее редактирование: 04.09.2013, 03:04:36 от THE KILLERS »
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
штатных нету.
платные смотреть у разработчиков на сайте.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
да это не трудно сделать на js, погуглите radio disabled, останется только условие назначить, в зависимости от суммы в корзине
*

THE KILLERS

  • Давно я тут
  • 932
  • 28 / 0
штатных нету.
ясно
платные смотреть у разработчиков на сайте.
Создал точно такой же топик на офиц. сайте (http://www.webdesigner-profi.de/joomla-webdesign/joomla-shop/forum/posts/25/6118.html?lang=en), часть моей цитаты оттуда:
Цитировать
The Killers - 03.09.2013 23:46
Maybe this can be done standard tools of JoomShopping, or maybe there are some hacks, plugins, addons, or you maybe know paid solutions?

Ответ от админа:
Цитировать
webdesigner - 04.09.2013 07:47
Not possible.

То есть как я понял по этой фразе-у них на офиц. сайте нету никаких таких аддонов и решений. Чую что придется либо делать самому (но php и js я вообще не знаю) либо заказывать.

да это не трудно сделать на js, погуглите radio disabled, останется только условие назначить, в зависимости от суммы в корзине
Кстати как ни странно 1я же ссылка в Google по этому запросу привела меня сюда http://www.javascripter.net/faq/disablin.htm и там как раз в качестве примера использована доставка товара))) Кстати там есть интересная фишка-в 1м примере (нажмите на 3ю радиокнопку "courier delivery (temporarily unavailable)")-т.е. кнопка активна, но если на нее нажать, то всплывает окошко, что типа вы не можете отметить этот пункт-можно свой текст написать. А на 2м примере классическая неактивная радиокнопка как я и хотел сначала, но 1й пример мне больше понравился.

ELLE, я в php и js ни бумбум, можешь подсказать какие файлы копать(править) и в каком месте? И как узнать значение общей суммы заказа (полагаю, что это берется из БД, но не знаю)? И если сам не справлюсь, сколько примерно будет стоить такое реализовать?
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
объяснить как делать в три раза дороже ))
а так смотреть, что в checkout/ лежит отвечает за оформление заказа, шаблоны
*

THE KILLERS

  • Давно я тут
  • 932
  • 28 / 0
объяснить как делать в три раза дороже ))
а так смотреть, что в checkout/ лежит отвечает за оформление заказа, шаблоны
Хорошо, а сколько будет стоить реализация?
Можно в личку.
« Последнее редактирование: 04.09.2013, 21:52:48 от THE KILLERS »
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
такое лучше в личку ;)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

THE KILLERS

  • Давно я тут
  • 932
  • 28 / 0
такое лучше в личку ;)
Да, я тоже тока щас подумал об этом)
*

Shiffer

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
я решил так.
добавил условие:
Код
<?php if (($cart->getSum(0,1)<300)&&($payment->payment_id==10)){?>disabled<?php } ?>
где 300 сумма заказа, а payment_id нужный для отключения вид оплаты/доставки

в итоге в payments.php
Код
<?php
$cart = &JModel::getInstance('cart', 'jshop');
    $cart->load("cart");
?>

<input type = "radio" name = "payment_method" id = "payment_method_<?php print $payment->payment_id ?>" onclick = "showPaymentForm('<?php print $payment->payment_class ?>')" value = "<?php print $payment->payment_class ?>"                <?php if (($cart->getSum(0,1)<300)&&($payment->payment_id==10)){?>disabled<?php } ?>                              <?php if ($this->active_payment==$payment->payment_id){?>checked<?php } ?> />

если хотите скрипт то вот так
Код
      <input type = "radio" name = "payment_method" id = "payment_method_<?php print $payment->payment_id ?>" onclick = <?php if (($cart->getSum(0,1)<300)&&($payment->payment_id==10)){?>"this.checked=false; alert('Sorry, this option is not available!')"<?php } ?>  "showPaymentForm('<?php print $payment->payment_class ?>')" value = "<?php print $payment->payment_class ?>"                                           <?php if ($this->active_payment==$payment->payment_id){?>checked<?php } ?> />
   
« Последнее редактирование: 04.12.2013, 21:49:27 от Shiffer »
*

brood

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Ребят а как изменить лимит доставок? я на сайте способ доставки использую как место доставки, добавляю каждое село как место доставки, так захотел клиент но проблема в том что есть лимит в 1000. Как изменить этот лимит. Выводится ошибка: ,,Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0,, ! Help горит. Спасибо!
« Последнее редактирование: 28.01.2014, 15:01:12 от brood »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
все ж вроде ясно написано:
Цитировать
To increase the limit change max_input_vars in php.ini

если у вас не выделенный сервер, то доступа к этому скорее всего у вас нет. попросите конечно хостера, но наврядли под вас будут менять параметры сервера.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

brood

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Спасибо за ответ. написал им и они изменили max_input_vars.
Thx!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
хороший хостер :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

юрий 009

  • Захожу иногда
  • 341
  • 5 / 1
я решил так.
добавил условие:
Код
<?php if (($cart->getSum(0,1)<300)&&($payment->payment_id==10)){?>disabled<?php } ?>
где 300 сумма заказа, а payment_id нужный для отключения вид оплаты/доставки


в кого Version 3.13.2
после кода <div class="padiv"> удалить
Код
      <input type = "radio" name = "payment_method" id = "payment_method_<?php print $payment->payment_id ?>" onclick = "showPaymentForm('<?php print $payment->payment_class ?>')" value = "<?php print $payment->payment_class ?>" <?php if ($this->active_payment==$payment->payment_id){?>checked<?php } ?> />
      <label for = "payment_method_<?php print $payment->payment_id ?>"><?php
      if ($payment->image){
        ?><span class="payment_image"><img src="<?php print $payment->image?>" alt="<?php print htmlspecialchars($payment->name)?>" /></span><?php
      }
      ?>
и вставить
Код
<?php
$cart = &JModel::getInstance('cart', 'jshop');
    $cart->load("cart");
?>

<input type = "radio" name = "payment_method" id = "payment_method_<?php print $payment->payment_id ?>" onclick = "showPaymentForm('<?php print $payment->payment_class ?>')" value = "<?php print $payment->payment_class ?>"                <?php if (($cart->getSum(0,1)<300)&&($payment->payment_id==10)){?>disabled<?php } ?>                              <?php if ($this->active_payment==$payment->payment_id){?>checked<?php } ?> />


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

*

Dozzy

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
<?php $cart = JModelLegacy::getInstance('cart', 'jshop');?>
<?php $cart->load(); ?>


<input type = "radio" name = "sh_pr_method_id" id = "shipping_method_<?php print $shipping->sh_pr_method_id?>" value="<?php print $shipping->sh_pr_method_id ?>" <?php if ($shipping->sh_pr_method_id==$this->active_shipping){ ?>checked = "checked"<?php } ?>
        <?php if (($cart->getSum(0,1)<300)&&($shipping->sh_pr_method_id==6)){?>disabled<?php } ?> />
« Последнее редактирование: 22.09.2014, 14:35:21 от Dozzy »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Стоимость заказа без стоимости доставки

Автор Alex_gs

Ответов: 3
Просмотров: 3264
Последний ответ 17.01.2023, 15:04:06
от kit2m2
Яндекс доставка

Автор dron

Ответов: 14
Просмотров: 6633
Последний ответ 28.11.2022, 22:25:45
от Preview
Оформление заказа

Автор Rebarun

Ответов: 10
Просмотров: 3212
Последний ответ 13.07.2020, 13:54:04
от Rebarun
Бесплатная доставка в зависимости от количества

Автор zahar_92

Ответов: 5
Просмотров: 1304
Последний ответ 23.04.2020, 19:27:39
от AlexB
Стоимость оплаты в зависимости от суммы заказа

Автор Aleksej Khoroshevskij

Ответов: 5
Просмотров: 1113
Последний ответ 24.10.2019, 11:00:23
от nevigen