Новости 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 Пользователей и 2 Гостей просматривают эту тему.
  • 1107 Ответов
  • 106429 Просмотров
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Здравствуйте!
Подскажите пожалуйста как-то указать значение радиокнопки по умолчанию?
Спасибо!
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
По умолчанию в компоненте назначается первая по счету радиокнопка. Большой необходимости ее переназначать (в общем в html) нет. Если у вас такая необходимость появилась, значит вы неправильно проектируете свою форму.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Подскажите как можно использовать поле math?
Пытался в нем прописать, например +450{10.2}, но в итоговой сумме так и выводит +450{10.2}...
{10.2} - это другое поле.
Можно вообще как-то использовать значение math других полей в math?
« Последнее редактирование: 12.08.2020, 11:04:28 от max_1985 »
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
В поле math можно использовать только правильные математические выражения (фрагменты). Исключением является символ v, вместо которого подставляется value текущего поля.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
В поле math можно использовать только правильные математические выражения (фрагменты). Исключением является символ v, вместо которого подставляется value текущего поля.
Подскажите пожалуйста, каким видом калькулятора можно решить такую форму? Есть ли возможность использовать разные значения при выборе определенного поля для других полей?
« Последнее редактирование: 12.08.2020, 12:58:17 от max_1985 »
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Эту логику можно решить любым встроенным типом калькулятора множеством способов. Например, калькулятором multipl:
В math поля 20.3 пишем v.
В формуле проекта его проверяем.

20.10первый=1000{20.2}({20.3}?-110:'');
20.10второй=1000({20.3}?-200:'');
20.11=700({20.3}?-200:'');

и так далее.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Эту логику можно решить любым встроенным типом калькулятора множеством способов. Например, калькулятором multipl:
В math поля 20.3 пишем v.
В формуле проекта его проверяем.

20.10первый=1000{20.2}({20.3}?-110:'');
20.10второй=1000({20.3}?-200:'');
20.11=700({20.3}?-200:'');

и так далее.
Попробовал сразу вписать в Результат первое действие
20.4={20.9}{20.2}({20.3}?-110:'');
В итоге
Выдает ERROR: 450(on?-110:'') или так ERROR: 450+220(on?-110:'') когда включаю Сетевая версия. Когда выключаю сертификаты on пропадает.

Сделано так:
В math поля 20.3 прописал v
В math поля 20.9 прописал 450
В math поля 20.2 прописал 220
Что не так сделал?
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Я вам принцип решения привел, а не готовые формулы для вашего калькулятора. Вникать в задачу времени нет, попробуйте самостоятельно ее решить. Если не получится, обращайтесь платно.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0

Я вам принцип решения привел, а не готовые формулы для вашего калькулятора. Вникать в задачу времени нет, попробуйте самостоятельно ее решить. Если не получится, обращайтесь платно.
Подскажите тогда, правильно я понимаю, такая конструкция ({20.3}?-110:'') означает, если поле 20.3 включено, то должно выводиться -110, если выключено то ничего...
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Это стандартная математическая конструкция. x?y:z Означает, Если x истина, значит конструкция возвращает y, в противном случае z.

В вашем случае нужно, наверное, в math поля 20.3 поставить единицу, а не v.  Или задать полю числовое value в его настройках. Нужно пробовать.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Это стандартная математическая конструкция. x?y:z Означает, Если x истина, значит конструкция возвращает y, в противном случае z.

В вашем случае нужно, наверное, в math поля 20.3 поставить единицу, а не v.  Или задать полю числовое value в его настройках. Нужно пробовать.


Ну почти разобрался и почти заработала такая конструкция )
20.4={20.9}{20.2}-({20.3}?110:0);
В такой конструкции получается при включенным полем 20.3 работает все правильно, а когда отключаю выдает ошибку ERROR: 450-(?110:0). Вроде ж перед знаком ? пусто, должно 0 подставить, но не подставляет.
Пробовал в math поля 20.3 прописывать v (при этом ставил дополнительно value="1"), и ставить 1 - результат один и тот же.  *ОХ-Х-Х*
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Уже близко... попробуйте так:
20.4={20.9}{20.2}-((0{20.3})?110:0);
В math напишите +1.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Уже близко... попробуйте так:
20.4={20.9}{20.2}-((0{20.3})?110:0);
В math напишите +1.
Бинго!  :D Ура!
А самая идеальная оказалась такой 20.4=((0{20.9})?({20.9}{20.2}-((0{20.3})?110:0)):0); чтоб при выключении поля 20.9 не работало включение-отключение полей 20.2 и 20.3
Спасибо! Завтра попробую собрать все в кучу
*

cntrl

  • Захожу иногда
  • 181
  • 6 / 0
Доброго времени коллеги, давно тут не был. Я правильно понимаю, что 3 версия калькулятора научилась считать сумму по матрице, или по несложному условию например: if var1=10*(var2=10), if var1=20*(var2=5) как пример,  *DRINK*, спасибо. Если да, то сколько уровней таких условий можно построить?
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Доброго времени коллеги, давно тут не был. Я правильно понимаю, что 3 версия калькулятора научилась считать сумму по матрице, или по несложному условию например: if var1=10*(var2=10), if var1=20*(var2=5) как пример,  *DRINK*, спасибо. Если да, то сколько уровней таких условий можно построить?
Калькулятор работает с математической строкой, которую вам нужно разложить по полям. Конструкция, типа +(x?y:z) может ставить условия любой сложности и любого уровня вложенности.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

cntrl

  • Захожу иногда
  • 181
  • 6 / 0
Конструкция, типа +(x?y:z) может ставить условия любой сложности и любого уровня вложенности.
Это великолепно, спасибо что продолжаете развивать столь полезный и функциональный компонент  ^-^
*

plovets

  • Новичок
  • 9
  • 0 / 0
Всем привет!
Знает кто-нибудь, как сделать на Quick Form такой калькулятор:
http://taxi-avrora-krim.ru/
Самое главное не могу понять 2 поля выбор select 
Если кто может подсказать: откуда "копать" - буду благодарен!
Спасибо....
*

cntrl

  • Захожу иногда
  • 181
  • 6 / 0
Всем привет!
Знает кто-нибудь, как сделать на Quick Form такой калькулятор:
http://taxi-avrora-krim.ru/
Если в лоб и линейно, то селект1 будет с N-пунктов (опций выбора, населённых, отправная точка), каждый пункт при выборе подгружает блок с селектом2 в котором тоже N-пунктов (конечных точек) с заложенной ценой. Сколько у вас будет отправных точек (пунктов) в селекте1, столько и придётся создать подгружаемых блоков с селектом2. В зависимости от выбора селекта1, будет подгружаться тот или иной блок с заложенными в нём ценами поездки. Конечно это каменный век, и есть более изящные способы с API-картографических сервисов, но проще всего как то так.
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
Привет всем!

Возможно ли добавить поле, которое выводит список материалов из com_content по указанной ID категории?
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Возможно ли добавить поле, которое выводит список материалов из com_content по указанной ID категории?

Можно, конечно.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

plovets

  • Новичок
  • 9
  • 0 / 0
Если в лоб и линейно, то селект1 будет с N-пунктов (опций выбора, населённых, отправная точка), каждый пункт при выборе подгружает блок с селектом2 в котором тоже N-пунктов (конечных точек) с заложенной ценой. Сколько у вас будет отправных точек (пунктов) в селекте1, столько и придётся создать подгружаемых блоков с селектом2. В зависимости от выбора селекта1, будет подгружаться тот или иной блок с заложенными в нём ценами поездки. Конечно это каменный век, и есть более изящные способы с API-картографических сервисов, но проще всего как то так.

Можно поподробнее - на одном примере одного пункта. Допустим select 1 (fieldid:1.0) select 2 (fieldid:1.1) - из пункта AA (select1) в пункт BB (select2 )= цена 1000, из пункта AA (select1) в пункт BA (select2 )= цена 1100..
Что мне и где это прописать? Подскажите пожалуйста..
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Можно поподробнее - на одном примере одного пункта. Допустим select 1 (fieldid:1.0) select 2 (fieldid:1.1) - из пункта AA (select1) в пункт BB (select2 )= цена 1000, из пункта AA (select1) в пункт BA (select2 )= цена 1100..
Что мне и где это прописать? Подскажите пожалуйста..
Вам нужно написать ссылку на страницу с вашей формой, чтобы было видно, что и как вы делаете, и где у вас ошибки. Без этого помочь чем-то сложно. А вообще, определитесь, что именно вам нужно; просто форма для своего сайта или вы хотите научиться работать с компонентом. Если просто форма, то ее лучше заказать на сайте автора. Не нужно бояться, что цена будет 30 - 50 тыс. руб., в QuickForm такие формы, как у вас в примере, делаются в 10 раз быстрее и дешевле.

Если же вы хотите научиться работать с компонентом, то опять же определитесь: для одного сайта, или для работы с другими сайтами (как вебмастер). В обоих случаях не помешает заказать первую форму у автора. Так вы увидите, как она строится. Либо пробовать, экспериментировать, внимательно перечитывать официальную страницу компонента. После этого у вас будут более осознанные вопросы, а на них будут более осознанные ответы.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

plovets

  • Новичок
  • 9
  • 0 / 0
Здравствуйте.
Задал вывод времени в калькуляторе с помощью customhtml
<input type="time" class=""  value="" name="time"/>
На сайте время выводит, а в email пустое поле.
Как решить этот вопрос?
заранее спасибо.
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Вы хотите элемент формы вставить в контент письма? Для этого нужно в настройках поля customhtml отметить его показ в Email. Но не каждый почтовик пропустит такой HTML.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

plovets

  • Новичок
  • 9
  • 0 / 0
Вы хотите элемент формы вставить в контент письма? Для этого нужно в настройках поля customhtml отметить его показ в Email. Но не каждый почтовик пропустит такой HTML.
Элемент показывает в email., но там пусто - только маска (часы:минуты). А если допустим прописать в input value ="08:30", то в письме так и будет указано (время 8:30)
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Ничего не понял, что за маска. Скриншот покажите.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

plovets

  • Новичок
  • 9
  • 0 / 0
--/--
Обычная маска для времени
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Я не понимаю, что вы пытаетесь сделать, и зачем вам понадобился элемент формы в письме.  Если вы хотите разместить форму в самом письме, то QuickForm оттуда не будет работать. Ему нужна Joomla, скрипты и стили.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

cntrl

  • Захожу иногда
  • 181
  • 6 / 0
Элемент показывает в email., но там пусто....
В HTML5 появился input type="time" но к сожалению пока поддерживается не всеми браузерами. Если у вас через текстовое поле, то по идеи на почту должно приходить то, что вбил пользователь, а не маска или input value.
*

cntrl

  • Захожу иногда
  • 181
  • 6 / 0
....
Если поле не CustomHtml, то если вводить туда html-теги будут крашится данные в БД, советую сделать это на JS. Или показать проблему, или подробно описать с картинками.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

QuickForm 2 - конструктор форм с зависимыми полями и калькулятором

Автор varX

Ответов: 1351
Просмотров: 128590
Последний ответ 03.10.2022, 22:34:40
от dodsik
Конструктор форм joomly.ru. Ошибка 404

Автор kunsaid

Ответов: 2
Просмотров: 3737
Последний ответ 11.01.2022, 10:00:21
от kunsaid
QuickForm - форма с функциями калькулятора и зависимыми полями

Автор varX

Ответов: 1332
Просмотров: 219317
Последний ответ 29.09.2021, 16:40:57
от varX
Модуль конструктор формы обратной связи simpleForm2 для Joomla 1.0 / joostina 1.2

Автор vs12345

Ответов: 21
Просмотров: 24631
Последний ответ 25.09.2020, 16:21:22
от svarg
QuickForm 3 не считает калькулятор

Автор Wargoth

Ответов: 17
Просмотров: 5781
Последний ответ 02.04.2020, 22:52:39
от Igor12