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

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
« Последнее редактирование: 10.06.2019, 13:06:27 от varX »
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Спасибо за ответ! Проблема не в арифметике, а в том что нужно угадывать что где писать и куда вводить. Вам это просто, а для меня, как новичка в этом деле, почти темный лес. Методом тыка сделала чтобы считалось, но опять проблема (я так понимаю Выше эту же проблему обсуждали), а именно при нажатии на плюс и добавлении клона форма начинает жить своей жизнью. А общую сумму всех клонов не выводит. Я знаю, что для Вас я не догоняю и пойди и закажи на сайте, но уж очень хочется разобраться как делать.

У меня на сайте есть пример,  попробуйте с ним поработать. Объяснить вам, как вам сделать так как вы хотите, невозможно. Этот компонент создает формы в бессчетном количестве разных вариантов и структур. Никто кроме вас не знает, что вы там сделали в админке. Чтобы форма работала и считала, у нее должна быть математически правильная логика. Но создать форму, компонент позволяет с любой логикой, в том числе с неправильной. Это уже ваша задача, сделать все логично.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

wd

  • Давно я тут
  • 538
  • 17 / 1
  • Просто юзер
Здравствуйте.

Подскажите, пожалуйста, можно ли для поля calctext выставить минимальное значение (например, что бы нельзя было указать число меньше 5, и/или хотя бы что бы это число стояло по-умолчанию, вместо 0)?
*

wd

  • Давно я тут
  • 538
  • 17 / 1
  • Просто юзер
Здравствуйте.

Подскажите, пожалуйста, можно ли для поля calctext выставить минимальное значение (например, что бы нельзя было указать число меньше 5, и/или хотя бы что бы это число стояло по-умолчанию, вместо 0)?

Понимаю, что за это отвечают значения min и value (если создавать статичную форму), но не понимаю, как эти значения привязать к созданному в quickform полю.

P.S. Прошу прощения за дубль выше, было 503 на форуме.
« Последнее редактирование: 07.06.2014, 04:39:26 от wd »
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Здравствуйте.

Подскажите, пожалуйста, можно ли для поля calctext выставить минимальное значение (например, что бы нельзя было указать число меньше 5, и/или хотя бы что бы это число стояло по-умолчанию, вместо 0)?

Понимаю, что за это отвечают значения min и value (если создавать статичную форму), но не понимаю, как эти значения привязать к созданному в quickform полю.

P.S. Прошу прощения за дубль выше, было 503 на форуме.

Найдите в js компонента функцию qfEvents(); ниже строки el.value=strNum(el.value); добавьте строку if(el.value<5)el.value=5;
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

wd

  • Давно я тут
  • 538
  • 17 / 1
  • Просто юзер
Найдите в js компонента функцию qfEvents(); ниже строки el.value=strNum(el.value); добавьте строку if(el.value<5)el.value=5;

Большое спасибо за ответ!
Так оно работает, но для всех calctext полей сразу... а мне требуется только для одного поля - так это невозможно будет?
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Большое спасибо за ответ!
Так оно работает, но для всех calctext полей сразу... а мне требуется только для одного поля - так это невозможно будет?

Заключите нужное поле в тег с идивидуальным селектором. Обращайтесь к нему через этот селектор.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

wd

  • Давно я тут
  • 538
  • 17 / 1
  • Просто юзер
Заключите нужное поле в тег с идивидуальным селектором. Обращайтесь к нему через этот селектор.

А где это поле можно заключить в тег (наверное глупый вопрос... но это ведь не статичная форма, где в HTML можно прописать)? И как потом в JS прописать правило для селектора?
Может как-то к конкретному полю можно присвоить другой тип, например type="number" min="5" value="5" вместо type="text"?

Заранее прощу прощения за пробелы в знаниях по динамичным формам и JS...

Раньше пользовался другими конструкторами, где к полям ввода можно было присвоит id - есть ли у Вас в планах внести функцию присвоения в административной панели таких типов, как id, value и др (min, max, step)?
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
А где это поле можно заключить в тег (наверное глупый вопрос... но это ведь не статичная форма, где в HTML можно прописать)? И как потом в JS прописать правило для селектора?
Может как-то к конкретному полю можно присвоить другой тип, например type="number" min="5" value="5" вместо type="text"?

Заранее прощу прощения за пробелы в знаниях по динамичным формам и JS...

Раньше пользовался другими конструкторами, где к полям ввода можно было присвоит id - есть ли у Вас в планах внести функцию присвоения в административной панели таких типов, как id, value и др (min, max, step)?

В форму можно вставлять любой HTML.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

wd

  • Давно я тут
  • 538
  • 17 / 1
  • Просто юзер
В форму можно вставлять любой HTML.

Это-то я обнаружил... присвоил label for... а input id как прописать к уже выводящейся calctext? И какое условия в JS дописать, что бы обрабатывалось по данному id?

Или Вы имеете ввиду создать separator и там уже создать нужное поле с нуля используя HTML (label и input теги)? Как его тогда заставить вести подсчёт, например прибавлять 2.
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Это-то я обнаружил... присвоил label for... а input id как прописать к уже выводящейся calctext? И какое условия в JS дописать, что бы обрабатывалось по данному id?

Или Вы имеете ввиду создать separator и там уже создать нужное поле с нуля используя HTML (label и input теги)? Как его тогда заставить вести подсчёт, например прибавлять 2.

Зачем вы это сделали? Я выше написал вам как нужно делать.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

wd

  • Давно я тут
  • 538
  • 17 / 1
  • Просто юзер
Зачем вы это сделали? Я выше написал вам как нужно делать.

Тогда я видимо не понимаю, как и где правильно "Заключить нужное поле в тег с идивидуальным селектором. Обратиться к нему через этот селектор."
Если не сочтёте за наглость - буду признателен за пример на практике.
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Тогда я видимо не понимаю, как и где правильно "Заключить нужное поле в тег с идивидуальным селектором. Обратиться к нему через этот селектор."
Если не сочтёте за наглость - буду признателен за пример на практике.

Используйте два сепаратора. Один выше вашего поля, второй ниже. В первом впишите любой тег, например, <div id="myteg">, во втором </div>.
Обращаться к полю можно, например, так: $("myteg").getElement("input");
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

wd

  • Давно я тут
  • 538
  • 17 / 1
  • Просто юзер
Используйте два сепаратора. Один выше вашего поля, второй ниже. В первом впишите любой тег, например, <div id="myteg">, во втором </div>.
Обращаться к полю можно, например, так: $("myteg").getElement("input");

Не подскажите, как теперь связать всё в едино, т.е. $("myteg").getElement("input"); и if(el.value<5)el.value=5;, что бы для myteg срабатывало if(el.value<5)el.value=5;?
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Добавьте в сепаратор скрипт, да и все.
<script>
 window.addEvent('domready', function() {
  var input=$("myteg").getElement("input");
  if(input.value<5)input.value=5
 });
</script>
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

wd

  • Давно я тут
  • 538
  • 17 / 1
  • Просто юзер
Примного Вам благодарен!  ^-^
*

nigra

  • Новичок
  • 3
  • 0 / 0
Здравствуйте!
подскажите как сделать такой элемент select
http://ruseller.com/lessons.php?rub=29&id=805
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Здравствуйте!
подскажите как сделать такой элемент select
http://ruseller.com/lessons.php?rub=29&id=805
Этот топик для обсуждения компонента QuickForm. Всякие художества и прочие прибамбасы, к компоненту прямого отношения не имеющие, я обсуждать тут не буду.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

wd

  • Давно я тут
  • 538
  • 17 / 1
  • Просто юзер
Здравствуйте.

Подскажите, пожалуйста, можно ли как-то убрать пустой label (<label>&nbsp;</label>) в блоке отображения цены?
Код
<div class="qfprice"><label>&nbsp;</label><span class="qfpriceinner">0</span> <span>DKK</span><input type="hidden" value="" name="price"><input type="hidden" value="0" name="start"></div>
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Здравствуйте.

Подскажите, пожалуйста, можно ли как-то убрать пустой label (<label>&nbsp;</label>) в блоке отображения цены?
Код
<div class="qfprice"><label>&nbsp;</label><span class="qfpriceinner">0</span> <span>DKK</span><input type="hidden" value="" name="price"><input type="hidden" value="0" name="start"></div>
Да, конечно. Допишите в css:

div.qfprice label{
 display: none;
}
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

wd

  • Давно я тут
  • 538
  • 17 / 1
  • Просто юзер
Да, конечно. Допишите в css:

div.qfprice label{
 display: none;
}

Благодарю!
*

mufosali

  • Захожу иногда
  • 77
  • 3 / 0
  • Щаз бы палЫчку шашлыГа...
Здравствуйте! Товарищ разработчик, тут пара скринов... посмотрите пожалуйста. У меня уже мозг сломался... Думаю тут все понятно будет.
Это то что получается:

Это то что в начинке:
                              

Что тут сделано Неправильно? Joomla 3.3.0 ваш компонент вроде последний. Установлено с нуля. Ничего не трогал.
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Здравствуйте! Товарищ разработчик, тут пара скринов... посмотрите пожалуйста. У меня уже мозг сломался... Думаю тут все понятно будет.
Это то что получается: http://easycaptures.com/fs/uploaded/762/2631172855.png

Это то что в начинке: http://easycaptures.com/fs/uploaded/762/6388043039.png
                               http://easycaptures.com/fs/uploaded/762/2830873548.png

Что тут сделано Неправильно? Joomla 3.3.0 ваш компонент вроде последний. Установлено с нуля. Ничего не трогал.

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

xlife

  • Новичок
  • 5
  • 0 / 0
Здравствуйте уважаемый создатель компонента.
Спешу сообщить что компонент ваш при отображении многоуровневых списков  в браузере ie8  - вызывает ошибку, из за которой списки  не подгружаются. Скрин ошибки сделанный на стандартном шаблоне - прикладываю

*

verstalshik

  • Завсегдатай
  • 1754
  • 95 / 1
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Здравствуйте уважаемый создатель компонента.
Спешу сообщить что компонент ваш при отображении многоуровневых списков  в браузере ie8  - вызывает ошибку, из за которой списки  не подгружаются. Скрин ошибки сделанный на стандартном шаблоне - прикладываю


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

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Здравствуйте! Товарищ разработчик, тут пара скринов... посмотрите пожалуйста. У меня уже мозг сломался... Думаю тут все понятно будет.
Это то что получается: http://easycaptures.com/fs/uploaded/762/2631172855.png

Это то что в начинке: http://easycaptures.com/fs/uploaded/762/6388043039.png
                               http://easycaptures.com/fs/uploaded/762/2830873548.png

Что тут сделано Неправильно? Joomla 3.3.0 ваш компонент вроде последний. Установлено с нуля. Ничего не трогал.

Обновите компонент, я выложил новый.
Несколько замечаний.
- Qty пишите 3, у вас ведь три поля в горизонтальном ряду клона.
- Не оставляйте поле, где заполняется значение для калькулятора, пустым. Пишите +0, если не используете.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

mufosali

  • Захожу иногда
  • 77
  • 3 / 0
  • Щаз бы палЫчку шашлыГа...
Обновите компонент, я выложил новый.
Несколько замечаний.
- Qty пишите 3, у вас ведь три поля в горизонтальном ряду клона.
- Не оставляйте поле, где заполняется значение для калькулятора, пустым. Пишите +0, если не используете.

Вот теперь - все работает )) Спасибо за помощь. Как закончу работу - обещаю приобрести ваш продукт!
*

nigra

  • Новичок
  • 3
  • 0 / 0
Этот топик для обсуждения компонента QuickForm. Всякие художества и прочие прибамбасы, к компоненту прямого отношения не имеющие, я обсуждать тут не буду.
Так мне и нужно, примерно такое художество реализовать в компоненте QuickForm, где нужно копать?
*

netmail

  • Новичок
  • 2
  • 0 / 0
Установил компонент на Joomla 3.3.1 - при создании формы по умолчанию проставляется уровень доступа Guest. Как поменять на Public? Пробовал сделать пакетной обработкой - обнаружена ошибка Недействительный контроллер: имя = 'weblink', формат = ''

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

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Установил компонент на Joomla 3.3.1 - при создании формы по умолчанию проставляется уровень доступа Guest. Как поменять на Public? Пробовал сделать пакетной обработкой - обнаружена ошибка Недействительный контроллер: имя = 'weblink', формат = ''

Проблема в том что при уровне Guest калькулятор доступен только гостям, при этом если юзер проходит авторизацию калькулятор становится недоступен и выводится сообщение что необходимо пройти авторизацию

Баг с пакетной обработкой поправил. По поводу того, что по умолчанию выставляется уровень доступа Guest, видимо, опять Joomla переиначили. Буду смотреть позже.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Radical Form - бесплатная ajax форма обратной связи, которая не ломает дизайн

Автор Progreccor

Ответов: 311
Просмотров: 57993
Последний ответ 22.01.2026, 02:23:57
от quip
QuickForm 3 - конструктор простых и сложных форм

Автор varX

Ответов: 1107
Просмотров: 106172
Последний ответ 21.10.2025, 03:19:37
от varX
QuickForm 2 - конструктор форм с зависимыми полями и калькулятором

Автор varX

Ответов: 1351
Просмотров: 128453
Последний ответ 03.10.2022, 22:34:40
от dodsik
AJAX Web-Factor Form - простая форма обратной связи для Joomla 3+

Автор orsy

Ответов: 75
Просмотров: 23219
Последний ответ 17.07.2021, 10:01:40
от Biss
Форма обратной связи для Joomla 2.5

Автор ForQue

Ответов: 0
Просмотров: 4349
Последний ответ 10.01.2021, 10:57:08
от ForQue