Новости 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 Ответов
  • 3587 Просмотров
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Начал ковыряться с этим компонентом, нашел много мелочей, некоторые поправил и делюсь (либо пищу для размышлений кто сам правит)
На фронте множество ошибок валидации по умолчанию - одинарные кавычки атрибутов, дублирующие for и много другого.
Все это добро находится в каталоге administrator\components\com_jforms\plugins\elements разбитое по типам.
Изначально все это было в виде такого
Код: php
$output .= _line("<div class='error-message' id='{$htmlId}_error'>$error</div>",2	);
$output .= _line("<label class='$labelClass' id='{$htmlId}_label' for='$htmlId' style='width:{$p->lw}px;height:{$p->lh}px'>$p->label</label> ",2);
$output .= _line("<input class='$inputClass' value='$default' name='$p->hash' id='$htmlId' style='width:{$p->cw}px;height:{$p->ch}px;' />",2);
$output .= _line('<div class="clear"></div>',2);
Переписал на свой лад
Код: php
$output .= _line('<div class="error-message" id="'.$htmlId.'_error">'.$error.'</div>',2	);
$output .= _line('<label class="'.$labelClass.'" id="'.$htmlId.'_label" for="'.$htmlId.'" >'.$p->label.'</label> ',2);
$output .= _line('<input class="'.$inputClass.'" value="'.$default.'" name="'.$p->hash.'" id="'.$htmlId.'" />',2);
$output .= _line('<div class="clear"></div>',2);

Что еще сделано:
 - выкинута жесткая привязка в ручным настройка ширины\высоты блоков, ибо считаю это полной глупостью, в админке на глаз пристраивать блоки, когда есть четкий макет для верстки и CSS для настройки
 - заменил по умолчанию в ХМЛ файлах собственные стили на по умолчанию для других компонентов inputbox и button
 - в паре мест убрал дублирующие теги for для label

Потому может кому пригодится, выкладываю содержимое папки elements. В итоге у меня на фронте все четко соответствует стилям формы, определенным в шаблоне сайта, за редким исключением, но это легко правится в файле стилей компонента. Плюс к этому зеленая галочка хтмл валидации фронта формы, что не может не радовать :)

[вложение удалено Администратором]
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Raz0r

  • Захожу иногда
  • 260
  • 6 / 6
это для какой версии?
*

Nik33

  • Осваиваюсь на форуме
  • 36
  • 0 / 2
это для какой версии?

Явно не для последней на сегодняшний день - com_jforms_0.7_rc2_rev402

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