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

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Привет!

Что творится с сессиями в Joomla! 3.8.x? Они вообще не уничтожаются, таблица пухнет до 200 000 тыс. записей, отчего дико начинает тормозить админка. Пришлось сделать костыль в виде события MySQL, которое вызывается раз в час и очищает сессии сроком больше часа.

Если есть уже тема, обсуждался вопрос, киньте ссылку плз.
*

dmitry_stas

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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Какая-то хрень с сессиями?
« Ответ #3 : 05.03.2018, 00:52:59 »
эм, даже не знаю чего... ну сюда кину. задайте
Цитировать
session.gc_probability=1
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Какая-то хрень с сессиями?
« Ответ #4 : 05.03.2018, 01:10:29 »
эм, даже не знаю чего... ну сюда кину. задайте

Спасибо. Это сборщик мусора, который запускается и чистит всё, что больше по "возрасту", чем значение в session.gc_maxlifetime (по умолчанию 24 мин.). Почему-то в стандартных дистрибутивах PHP для Debian отключена, хотя в PHP пишут, что должна быть включена по умолчанию. Пожалуй, обойдусь ивентом в MySQL -- иначе потом опять нужно всё менять, как баг пофиксят (из админки время жизни сессии изменить не получится).
« Последнее редактирование: 05.03.2018, 01:23:05 от Филипп Сорокин »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Какая-то хрень с сессиями?
« Ответ #5 : 05.03.2018, 01:50:39 »
насколько я понимаю это не баг, а новый принцип. из админки время жизни сессии изменить получится.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Какая-то хрень с сессиями?
« Ответ #6 : 05.03.2018, 01:53:32 »
насколько я понимаю это не баг, а новый принцип. из админки время жизни сессии изменить получится.

Какой принцип? Интересно, что им мешало сделать так?

Код
ini_set('session.gc_probability', 1);

А ещё какие-то плагины появляются для чистки сессии, клинеры, какой-то бред  ;D
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Какая-то хрень с сессиями?
« Ответ #7 : 05.03.2018, 02:03:16 »
Какой принцип?
принцип работы с удалением из базы записей о сессиях

Интересно, что им мешало сделать так?
не могу сказать :)

А ещё какие-то плагины появляются для чистки сессии, клинеры, какой-то бред 
это все от лукавого :) кто не может сделать session.gc_probability=1
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Какая-то хрень с сессиями?
« Ответ #8 : 05.03.2018, 03:04:42 »
Пошарил по инету, оказывается Joomla! имеет готовый скрипт для чистки мусора по крону, никто не юзал его? Глянул -- написано, что кэш чистит. Интересно, чистит ли сессии?
« Последнее редактирование: 05.03.2018, 03:13:48 от Филипп Сорокин »
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Какая-то хрень с сессиями?
« Ответ #9 : 05.03.2018, 03:13:30 »
UPD: его только недавно внедрили: https://github.com/joomla/joomla-cms/pull/19548

Будет новый файл /cli/sessionGc.php, который можно будет дёргать по крону.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Какая-то хрень с сессиями?
« Ответ #10 : 05.03.2018, 03:38:10 »
Нашёл причину этого бардака: ссылка -- дело в том, что в Debian намеренно выключили session.gc_probability -- какая-то байда с правами. Вместо этого по крону вызывается скрипт: /etc/cron.d/php со след. содержимым:

Спойлер
[свернуть]

Теперь уже совсем ничего не понятно мне  crazy!
« Последнее редактирование: 05.03.2018, 03:43:51 от Филипп Сорокин »
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Какая-то хрень с сессиями?
« Ответ #11 : 05.03.2018, 05:23:56 »
...Вместо этого по крону вызывается скрипт: /etc/cron.d/php со след. содержимым:...

Ну так он же работает

Цитировать
when session.save_handler=files

Так что повесить на крон скрипт для чистки сессий в БД - правильное решение в данном случае.

*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Какая-то хрень с сессиями?
« Ответ #12 : 05.03.2018, 05:27:59 »
Я тоже сначала подумал, что скрипт работает при определенных случаях, но если не копаться в этом и не менять дефолтный конфигурации, то он работает всегда, т.к. по умолчанию session.save_handler=files и есть.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться