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

BakeevDR

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Платформа, на которой работает PHP    Windows NT WR2856 6.1 build 7601 (Windows 7 Professional Edition Service Pack 1) i586
Database Type    postgresql
Версия базы данных    9.6.9
Кодировка базы данных    en_US.UTF-8
Кодировка соединения базы данных    UTF8
Версия PHP    7.2.4
Веб-сервер    Apache/2.4.33 (Win32) OpenSSL/1.1.0g PHP/7.2.4
Интерфейс между веб-сервером и PHP    apache2handler
Версия Joomla!    Joomla! 3.8.13 Stable [ Amani ] 9-October-2018 14:00 GMT
Версия Joomla! Platform    Joomla Platform 13.1.0 Stable [ Curiosity ] 24-Apr-2013 00:00 GMT


Описание:
Ошибка была выявлена при  занесении в поле calendar не даты (буквенных символов) при этом пользователь не авторизован.
если пользователь авторизован на сайте то JS скрипт отрабатывает
Цитировать
Ошибка
0 DateTime::__construct(): Failed to parse time string (нгшнг) at position 0 (�): Unexpected character

воспроизведение ошибки
При написании собственной компоненты в фильтр было добавлено поле календарь.
Если НЕ авторизованный пользователь пытается занести в поле календарь не дату то вываливается вышесказанная ошибка.
Если пользователь авторизован то при занесении в поле не дату (буквенных символов) в поле календарь исправляется.

Статус: РЕШЕНО

Решение
для решения данной проблемы необходимо в файле \media\system\js\fields\calendar.js в методе JoomlaCalendar.onSubmit /** Method to change the inputs before submit. **/ изменить

Код
JoomlaCalendar.onSubmit = function() {
Joomla = window.Joomla || {};
if (!Joomla.calendarProcessed) {
на
Код
JoomlaCalendar.onSubmit = function() {
var Joomla = window.Joomla || {};
if (!Joomla.calendarProcessed) {

Добавив VAR

Также необходимо изменить файл \media\system\js\fields\calendar.min.js
« Последнее редактирование: 12.11.2018, 07:37:23 от BakeevDR »
*

fsv

  • Живу я здесь
  • 2787
  • 413 / 2
Добавив VAR
...вместо того, чтобы разобраться, почему глобальной переменной нет, просто хакнули скрипт ядра?

При написании собственной компоненты в фильтр было добавлено поле календарь.
может, тут?
Веб-разработка: заказ. Только новая разработка.
*

BakeevDR

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
...вместо того, чтобы разобраться, почему глобальной переменной нет, просто хакнули скрипт ядра?

так само условие в ядре подразумевает что глобальной переменно может и не быть. просто некорректно объявлена переменная вот и вся проблема.
« Последнее редактирование: 12.11.2018, 07:59:12 от BakeevDR »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка при сохранении зметок о пользователе

Автор BakeevDR

Ответов: 3
Просмотров: 3598
Последний ответ 22.10.2018, 14:36:16
от BakeevDR
Не работает поле даты внутри поля repeatable

Автор AlekVolsk

Ответов: 10
Просмотров: 5548
Последний ответ 03.11.2016, 18:29:12
от AlekVolsk
Перенесено: Ошибка при смене Шаблонов

Автор b2z

Ответов: 0
Просмотров: 2194
Последний ответ 15.04.2015, 22:25:05
от b2z
Перенесено: Ошибка при загрузке сайта

Автор b2z

Ответов: 0
Просмотров: 1831
Последний ответ 03.03.2015, 14:42:34
от b2z