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

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Можно вопрос про математические выражения. Нужно мне удвоить цифру, например 450 466. Пишу *2
Калькулятор мне выдает результат 672 998. Скорее всего я что то делаю не так. Прошу кинуть ссылку, или так объяснить.
И чем же я могу вам помочь, если при умножении 450 466 на 2, у вас получается 672 998? Ссылку не знаю, какая нужна, поэтому, так объяснил.
« Последнее редактирование: 03.12.2017, 12:30:31 от varX »
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

angst

  • Осваиваюсь на форуме
  • 39
  • 0 / 0
Это ваш калькулятор так считает, вот и спрашиваю, что я делаю не так.
*

angst

  • Осваиваюсь на форуме
  • 39
  • 0 / 0
*

n1x0n

  • Новичок
  • 5
  • 1 / 0
Доброй ночи, после обновления копонента появилось много, хороших вещей, но появилась одна деталь, и как я заметил достаточно давно... Это наследование контейнером родителем классов элементов формы... Это очень очевидно на элементе submit у него по дефолту прописаны два бутстраповских класса "btn btn-primary",
при рендере формы на сайте, у родителя появляется класс "box_btn" что в целом хорошо, но вот второй класс который идет следом после "btn" идет без префикса box
 и получается родитель имеет классы "qf2 box_btn btn-primary", вот этот последний класс btn-primary начинает мучать верстку, тк присваивает блоку родителю стили которые блоку родителю не нужны... получается что если любой элемент формы имеет больше одного класса, то второй класс наследуется без префикса, родителем, и начинает мучать верстку формы по крайней мере у меня... Тк фреймворки такие как бутстрап, подразумевают переиспользование большого количества классов в одном теге, то стилизация формы начинает доставлять боль... Да, сравнил со старыми версиями, раньше такого небыло, тк небыло клонирования классов с добавлением префикса блоку родителю.
*

n1x0n

  • Новичок
  • 5
  • 1 / 0
Установил QuickForm2. Joomla 3.8.2


2. Можно ли повесить на кнопку цель метрики? Если да, то как?

Можно, я разобрался как это сделать, в поле custom пишем onclick="yaCounterXXX.reachGoal('spec-form');this.form.submit();"
Это самый простой вариант. Толи яндекс толи гугл просит ставить return true после своего вызова. Так вот в этом варианте его нужно убрать. Иначе событие запишется а отправка формы не произойдет. Либо если очень хочется можно его поставить после всех действий onclick="yaCounterXXX.reachGoal('spec-form');this.form.submit();return true;"
*

n1x0n

  • Новичок
  • 5
  • 1 / 0
Доброй ночи, после обновления копонента появилось много, хороших вещей, но появилась одна деталь, и как я заметил достаточно давно... Это наследование контейнером родителем классов элементов формы... Это очень очевидно на элементе submit у него по дефолту прописаны два бутстраповских класса "btn btn-primary",
при рендере формы на сайте, у родителя появляется класс "box_btn" что в целом хорошо, но вот второй класс который идет следом после "btn" идет без префикса box
 и получается родитель имеет классы "qf2 box_btn btn-primary", вот этот последний класс btn-primary начинает мучать верстку, тк присваивает блоку родителю стили которые блоку родителю не нужны... получается что если любой элемент формы имеет больше одного класса, то второй класс наследуется без префикса, родителем, и начинает мучать верстку формы по крайней мере у меня... Тк фреймворки такие как бутстрап, подразумевают переиспользование большого количества классов в одном теге, то стилизация формы начинает доставлять боль... Да, сравнил со старыми версиями, раньше такого небыло, тк небыло клонирования классов с добавлением префикса блоку родителю.
Решил пока таким способом...
.......   
//$boxclass = $this->get('class', $field)? ' box_' . $field->class : '';
$arrboxclass = $this->get('class', $field)? explode(' ', $field->class):'';
$boxclass = ' ';
      for ($i = 0; $i < count($arrboxclass); ++$i) {
       $boxclass = $boxclass . $arrboxclass[$i].'_box ';
       }
....
Надеюсь вы поправите это в следующем обновлении..
В идеале как мне кажется сделать у каждого элемента поле parent-class и то что туда будут вносить будет добавляться родителю...
это было бы очень удобно для кастомизации особенно блоков родителей допустим классами сетки бутстрапа...
*

varX

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

fedotok

  • Новичок
  • 5
  • 0 / 0
Здравствуйте!

Возникла необходимость в использовании функции "cloner".

На официальном сайте работает корректно, но в моём случае совсем наоборот и я не могу разобраться в чем проблема.

При нажатии на + нельзя удалить добавленные клоном формы, + хоть сколько угодно клонирует, а вот "крест" не удаляет.
Такое происходит, если у клонируемого поля есть еще зависимые поля. Если их нет - всё корректно.

Может кто-то знает, в чем моя проблема и как исправить?
*

varX

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

Anewcomer

  • Новичок
  • 4
  • 0 / 0
Доброго времени суток.
Можно как-то сделать так, что бы пользователь мог выбрать несколько вариантов ответа?
*

varX

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

moranor

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
  • Not to touch the earth
Поле date ведет себя немного нестабильно - в IE как обычный input, в FF - наглухо отрицая попытки перевоспитать его стилями.
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Поле date ведет себя немного нестабильно - в IE как обычный input, в FF - наглухо отрицая попытки перевоспитать его стилями.
QuickForm использует HTML5, как его поддерживают браузеры. Чтобы было красивое поле, можно создать собственный аналог date в компоненте, с любыми настройками и любой кроссбраузерностью.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

Anewcomer

  • Новичок
  • 4
  • 0 / 0
Насчет нескольких вариантов ответа.
Вот у нас есть вопрос, на который нам надо получить от пользователя несколько ответов из предложеннного списка, как это реализовать? Можно подробнее насчет checkbox или может другие варианты есть?
Если не сложно конечно.
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Насчет нескольких вариантов ответа.
Вот у нас есть вопрос, на который нам надо получить от пользователя несколько ответов из предложеннного списка, как это реализовать? Можно подробнее насчет checkbox или может другие варианты есть?
Если не сложно конечно.
Существует много разных способов получить от пользователя ответы на интересующие вопросы.  Нужно только уметь их задавать. Вам нужна функция мультиселекта? Или вам нужен интерфейс тестирования? Что конкретно вы хотите реализовать? checkbox - это незнакомое слово или что именно в нем интересует?  Вы уже пытались что-то сделать на QuickForm?

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

x1

  • Давно я тут
  • 637
  • 15 / 0
  • Linux — это Windows для бытовой техники
Здравствуйте, все таки хотелось бы, что бы в админке в "QuickForm - список проектов" появилась бы кнопка "дублировать/сохранить как" проект из уже имеющихся, так сказать продублировать. Эта кнопка была в первой версии компонента.

Цитировать
Во-первых, спасибо за поддержку HTML5-поля. Календарик при выборе даты очень радует.
Что то у меня ни какой календарик не появляется.
« Последнее редактирование: 10.12.2017, 13:55:37 от x1 »
*

varX

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

В QF1 не было такой кнопки, там вообще проектов не было.

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

А если вам нужен  дубль проекта со всеми принадлежащими ему группами полей, которые тоже нужно продублировать, тогда это не получится, т. к. вы id зависимых групп сами вписываете им. Эти id все равно старыми останутся.

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

x1

  • Давно я тут
  • 637
  • 15 / 0
  • Linux — это Windows для бытовой техники
В QF1 не было такой кнопки, там вообще проектов не было... Просто смысл тут где? ... выводите старую через calcCondition
Попробую описать проблему: я удалил QF1 и поставил QF2. Теперь мне надо заново создать, согласно инструкции компонента, примерно 130 форм. Все формы идентичные, за исключением заголовков формы и одного поля в середине формы - выпадающего списка на 4-6 позиций  (могут подключаться в них подформы) - это единственное поле у всех форм разное. Т.е. сейчас в QF2 мне необходимо при создании новой формы каждый раз вбивать одну и ту же информацию по 8 полям поновой! В QF1 это было просто - открыл форму и сохранил ее под новым именем. В  QF2 этой возможности - "сохранить как" - нет! То что вы сейчас формы называете в QF2 "проекты" - сути не меняет - мы же в материал вставляем как и прежде ссылку из QF2 {QuickForm=xx}.

Просить вас конечно не могу, но хотел бы выразить огромное пожелание, в админке сделать возможным при просмотре списка проектов против нужного {QuickForm=xx} поставить галочку в чекбоксе (чекбокс уже у вас есть) и иметь возможность нажать на кнопку "Сохранить копию", так что бы этот проект продублировался со всем, что в нем есть. Добавка к заголовку проекта "Копия..." будет полезной.

*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Формы, которые были в старом компоненте, так и остались, только теперь я их называю группы полей. И они копируются как и раньше копировались. А проект скопировать нельзя, я же объяснил почему.

Вам проще нужно делать. Создать спец проект, который нигде не выводится, занести туда несколько групп полей, которые у вас часто повторяются, и использовать их во всех проектах. Например, группа с вашими 8 полями - один раз сделали, и выводите в разных проектах и даже в одном и том же, сколько хотите.

Итого, никаких повторяющихся действий не делаете. Проект - это только небольшой набор настроек, относящихся к выводу формы на страницу. А группы полей сами по себе.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

fedotok

  • Новичок
  • 5
  • 0 / 0
Пишите адрес страницы, если хотите, чтобы вам помогли. Никто ведь не знает, что у вас там происходит.

Добавил пример рабочей и нерабочей формы на страницу: http://comtua.ru/otzyvy.html

Повторюсь - функция cloner - при наличии зависимых полей не работает удаление клонированных полей по нажатии на "крест", но если зависимых полей нет, то работает корректно (за исключением того, что на сайте разработчика есть возможность удалить даже первое поле после добавления второго, а в моем случае не получается).

« Последнее редактирование: 11.12.2017, 12:29:43 от fedotok »
*

varX

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

fedotok

  • Новичок
  • 5
  • 0 / 0
Ну вы же в настройках указали горизонтальные клоны. Какие могут быть зависимые поля в горизонтальном?

Огромное спасибо!  ^-^ ;) :D

Честно говоря, мне даже в голову не пришло, что проблема может быть именно в этом...  crazy! :(
*

x1

  • Давно я тут
  • 637
  • 15 / 0
  • Linux — это Windows для бытовой техники
Вам проще нужно делать. Создать спец проект, который нигде не выводится, занести туда несколько групп полей, которые у вас часто повторяются, и использовать их во всех проектах.
Как это практически сделать? Как поля из одного проекта  {QuickForm=1} выводить в другом проекте  {QuickForm=2}?
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Как это практически сделать? Как поля из одного проекта  {QuickForm=1} выводить в другом проекте  {QuickForm=2}?
Для этого разные способы есть. Например, используя calcCondition. Я вам уже третье сообщение объяснить пытаюсь, как это практически сделать.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

x1

  • Давно я тут
  • 637
  • 15 / 0
  • Linux — это Windows для бытовой техники
*

Inferno

  • Новичок
  • 6
  • 0 / 0
Добрый день, не могу разобраться как заставить работать модальное окно, подскажите пожалуйста
« Последнее редактирование: 12.12.2017, 14:33:56 от Inferno »
*

x1

  • Давно я тут
  • 637
  • 15 / 0
  • Linux — это Windows для бытовой техники
Такой вопрос, после установки новой qf2 в базе осталась таблица _quickform со старыми формами от qf1. Так надо, или ее можно удалить?
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Такой вопрос, после установки новой qf2 в базе осталась таблица _quickform со старыми формами от qf1. Так надо, или ее можно удалить?

Перед установкой QF2, старый нужно было деинсталлировать. Об этом везде написано.

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

Anewcomer

  • Новичок
  • 4
  • 0 / 0
Существует много разных способов получить от пользователя ответы на интересующие вопросы.  Нужно только уметь их задавать. Вам нужна функция мультиселекта? Или вам нужен интерфейс тестирования? Что конкретно вы хотите реализовать? checkbox - это незнакомое слово или что именно в нем интересует?  Вы уже пытались что-то сделать на QuickForm?

Как видите, у меня несколько вопросов, на которые нужно получить несколько ответов. У вас, немного иная ситуация.
Функция мультиселекта, например вопрос: есть ли у вас личное транспортное средство?
и вырианты ответа
Есть автомобиль
есть мотоцикл
нет
Планирую купить автомобиль
итд...
вот что бы пользователь из этого списка мог выбрать два варианта, например есть авто, и есть мотоцикл
*

varX

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

QuickForm 3 - конструктор простых и сложных форм

Автор varX

Ответов: 1107
Просмотров: 106524
Последний ответ 21.10.2025, 03:19:37
от varX
Конструктор форм joomly.ru. Ошибка 404

Автор kunsaid

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

Автор varX

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

Автор vs12345

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

Автор Wargoth

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