Новости 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 Гость просматривают эту тему.
  • 52 Ответов
  • 7544 Просмотров
*

Gover

  • Захожу иногда
  • 189
  • 3 / 0
Re: Поля в 3.7
« Ответ #30 : 16.07.2017, 22:22:22 »
Смотря в каких
Например стандартные новостные модули Joomla.
*

Gover

  • Захожу иногда
  • 189
  • 3 / 0
Re: Поля в 3.7
« Ответ #31 : 20.07.2017, 23:25:46 »
Короче никто не занимался этим вопросом, наверно...
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Поля в 3.7
« Ответ #32 : 21.07.2017, 10:24:54 »
Короче никто не занимался этим вопросом, наверно...
Ну на самом деле, не думаю что кто-то этим занимался ибо в доп поля в моудле = доп нагрузка. А вообще смотрите не приходя ли он в оеъекте если не приходят до добавляете. примерно так. $item - объект материала
Код: php
JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');
$item->jcfields = FieldsHelper::getFields('com_content.article', $item, true);

Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Поля в 3.7
« Ответ #33 : 21.07.2017, 10:25:03 »
Статья о выводе доп полей.
https://septdir.ru/blog/web/joomla-extra-fields-anywhere.html
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Gover

  • Захожу иногда
  • 189
  • 3 / 0
Re: Поля в 3.7
« Ответ #34 : 22.07.2017, 23:33:54 »
Поля приходят в объекте, просто в настройках модуля была отключена обработка триггеров событий.

Еще вопрос. Может уже кто-то реализовал поле типа repeatable?
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Поля в 3.7
« Ответ #35 : 23.07.2017, 10:55:05 »
Поля приходят в объекте, просто в настройках модуля была отключена обработка триггеров событий.

Еще вопрос. Может уже кто-то реализовал поле типа repeatable?
У меня валяется плагин для subform.
Он ещё не до конца доделан, но работает.
https://vk.com/wall-118444196_53
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

alex9158

  • Захожу иногда
  • 66
  • 0 / 0
Re: Поля в 3.7
« Ответ #36 : 23.07.2017, 17:24:04 »
А кто-нибудь выводил поля на странице материалов по тегам?
Никак не могу найти решение вывода.
Уже перепробовал вывод как в модуле, не получается
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Поля в 3.7
« Ответ #37 : 23.07.2017, 18:08:05 »
А кто-нибудь выводил поля на странице материалов по тегам?
Никак не могу найти решение вывода.
Уже перепробовал вывод как в модуле, не получается
Это механически не коректно ибо тэги это глобальный комоеннт там могут выводиться те же категории где нет доп. полей. + это очень не малая нагрузка
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

alpha_ru

  • Захожу иногда
  • 86
  • 0 / 0
Re: Поля в 3.7
« Ответ #38 : 19.09.2017, 09:39:27 »
Поля приходят в объекте, просто в настройках модуля была отключена обработка триггеров событий.
Где найти эти настройки?
*

Gover

  • Захожу иногда
  • 189
  • 3 / 0
Re: Поля в 3.7
« Ответ #39 : 31.12.2017, 09:15:21 »
С наступающим!
Подскажите как сделать поле типа email. Пробовал через url, но там нужно добавлять префикс mailto. Юреры не догонят .. . Писать самому?
*

Jein

  • Новичок
  • 6
  • 0 / 0
Re: Поля в 3.7
« Ответ #40 : 28.01.2018, 17:47:21 »
Здесь люди умные собрались. Может подскажет кто.

Ситуация:
Создана категория материалов 1. В ней несколько материалов. Для них создана категория полей 1. Там несколько полей.
Создана категория материалов 2. В ней тоже несколько материалов. Для них создана категория полей 2. Там тоже несколько полей.

Задача:
Вывести все поля из обеих категорий материалов в один материал. Что-то вроде общего прайс-листа.

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

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
Re: Поля в 3.7
« Ответ #41 : 28.01.2018, 17:53:19 »
Если сильно не запариваться, то просто получить список материалов из 2х категорий и перебирая их - получить значения из доп. полей
*

Jein

  • Новичок
  • 6
  • 0 / 0
Re: Поля в 3.7
« Ответ #42 : 28.01.2018, 18:28:26 »
Цитировать
просто получить список материалов из 2х категорий и перебирая их - получить значения из доп. полей [/size]


Да, спасибо. Но я никак не пойму, как это реализовать. Может кто-нибудь накидать пример обращения к полю конкретного материала?
*

Mehanick

  • Давно я тут
  • 846
  • 5 / 0
Re: Поля в 3.7
« Ответ #44 : 28.01.2018, 19:18:06 »
Автовставку картинки блин в в полях так и не реализовали. Толку тогда от этих полей без картинок? Ну представте например в адсманагер или VirtueMart или dj-classifieds или хикашоп удалить из функционала быструю автообрезку и вставку картинки. Кто их тогда будет использовать?

в ворбпрессе по умолчанию картинка обрезается и встает куда надо.

« Последнее редактирование: 28.01.2018, 19:32:14 от Mehanick »
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Поля в 3.7
« Ответ #45 : 28.01.2018, 19:30:20 »
Mehanick, вы себя вот как-то разработчиком назвали.
При том, что не можете под себя написать нужный функционал, а вместо этого обзываете козлами тех, кто Joomla разрабатывает.
Если они - козлы, то вы - догадайтесь_кто_под_дубом.
Противно читать такое.
*

Mehanick

  • Давно я тут
  • 846
  • 5 / 0
Re: Поля в 3.7
« Ответ #46 : 28.01.2018, 19:33:52 »
Был не прав, извиняюсь перед ними, погорячился конечно, текст поправил.

Но все равно считаю отсутствие нормального добавления картинки сужает область применения статей
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Поля в 3.7
« Ответ #47 : 28.01.2018, 19:36:32 »
Это механизм. Он позволяет написать СВОЙ ТИП ПОЛЯ.
Вот напрягите мозг и сделайте, вместо того, чтобы по сто раз тут плакаться.
*

Jein

  • Новичок
  • 6
  • 0 / 0
Re: Поля в 3.7
« Ответ #48 : 28.01.2018, 23:28:18 »
effrit, благодарю. Это оно.
*

denjer

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Поля в 3.7
« Ответ #49 : 21.08.2018, 13:51:31 »
А кто-нибудь заметил вообще, что есть проблемы с выводом в бекенд нескольких значений поля "Список" с мультивыбором? Вот здесь подробнее - [com_fields] Поле с типом "Список" - не выводит на сайт несколько значений может есть решение? 
*

alexy.74

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: Поля в 3.7
« Ответ #50 : 20.12.2018, 18:46:55 »
Если выключить плагин system / fields  то полей вовсе не будет  Undefined property: stdClass::$jcfields.
Что же до плагинов группы Fields то много прироста не будет. Но если так охото можно выключить все кроме текст. или переписать плагины добавив условие $app->isAdmin()

Кстати о выводе, если выводить по одному.
Код: php
$this->item->extraFields = array();
if (isset($this->item->jcfields) && is_array($this->item->jcfields)) {
foreach ($this->item->jcfields as $field) {
if (!empty($field->rawvalue)) {
$this->item->extraFields[$field->name] = $field;

}
}
}
if (isset($this->item->extraFields['ИМЯ\name которе на англиском'])) {
echo $this->item->extraFields['ИМЯ\name которе на англиском']->value;
}
Ну и просто foreach
Код: php
if (isset($this->item->jcfields) && is_array($this->item->jcfields)) {
foreach ($this->item->jcfields as $field) {
echo '<div>'.$field->title.': '.$field->value.'</div>';
}
}
а если хочу вывести одну группу полей? Т.е. не конкретное поле или  все поля, а по группам.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Поля в 3.7
« Ответ #51 : 20.12.2018, 19:18:09 »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

alexy.74

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: Поля в 3.7
« Ответ #52 : 20.12.2018, 19:38:29 »
@alexy.74 Второй вариант https://septdir.ru/blog/web/joomla-extra-fields-anywhere.html
а куда водить название или id группы, чтобы вывести ее поля?
Да и как вывести через Html те самые поля?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Исчез компонент 'Поля' из меню в админке

Автор goga_pgasovav

Ответов: 2
Просмотров: 2503
Последний ответ 23.12.2024, 22:31:21
от goga_pgasovav
Вывод поля поиска первым пунктом в меню

Автор Mick_20

Ответов: 3
Просмотров: 1319
Последний ответ 03.02.2023, 13:02:46
от Mick_20
Вывод тега метатега Rights или создание поля с автором

Автор Zegeberg

Ответов: 5
Просмотров: 2989
Последний ответ 26.07.2022, 19:38:56
от Zegeberg
Подтянуть картинки из поля "полного материала" в поле "вступительного"

Автор max_max

Ответов: 9
Просмотров: 1581
Последний ответ 01.10.2021, 12:58:04
от ShopES
В списке компонентов нет 'Поля' Joomla 3.10

Автор rimm

Ответов: 16
Просмотров: 1554
Последний ответ 31.08.2021, 16:42:29
от rimm