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

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
Re: Порядок загрузки скриптов
« Ответ #30 : 06.10.2015, 14:39:59 »
Столкнулся с проблемой порядка загрузки скриптов в 3.4.1

Проблему решил следующим образом:

1. JHtml::_('jquery.framework');
2. $document->addScript(JURI::base().'components'.DS.'com_componentname'.DS.'assets'.DS.'js'.DS.'jquery.jqGrid.js');

Строчка №1 решила проблему, теперь jquery грузится первым

создавал модуль в котором нужно подключать плагины jQuery. Модуль нормально работал если его на вставить в материал плагином. Как только модуль оказывался в материале, плагины jQury подключались до джумловских, а так как они уже оказывались подключенными еще до включения джумловского jquery то после его подключения они уже не подключались.

И вот описанный в цитате способ реально решает, теперь все пашет как надо ) СПАСИБО!
*

Serebro2009

  • Захожу иногда
  • 135
  • 0 / 0
Re: Порядок загрузки скриптов
« Ответ #31 : 18.10.2015, 23:38:11 »
Такая же ситуация, модуль вставленный в материалы - не пашет...из-за того, что JQ подключается позже. Куда нужно прописать строчку?:
1. JHtml::_('jquery.framework');
*

Serebro2009

  • Захожу иногда
  • 135
  • 0 / 0
Re: Порядок загрузки скриптов
« Ответ #32 : 18.10.2015, 23:51:34 »
 -  JHtml::_('jquery.framework'); Добавлен...проблема не решена

Как быть? Почему такая ситуация?
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
Re: Порядок загрузки скриптов
« Ответ #33 : 19.10.2015, 14:12:28 »
у меня файл шаблона вывода модуля начинается вот так:

Код
<?php defined('_JEXEC') or die;

$document = JFactory::getDocument();

JHTML::stylesheet('modules/' . $module->module . '/style/'.$colorcat.'/style.css'); //подключение стилей
JHtml::_('jquery.framework'); //заветная решающая строка

$document->addScript("https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"); //подключение библиотек
...
*

Roinmana

  • Захожу иногда
  • 108
  • 2 / 0
Re: Порядок загрузки скриптов
« Ответ #34 : 03.03.2016, 22:07:13 »
Код
<?php JHtml::_('jquery.framework'); 
Проблема в том, что куда не вставлю эту строку, скрипты загружаются в head. Как заставить их грузиться именно в место где вставлена строка? Например, если я добавлю этот код в шаблон футера, то там они должны и появиться, а не в head.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Порядок загрузки скриптов
« Ответ #35 : 04.03.2016, 01:03:39 »
А зачем грузить библиотеки в body (тем более в футер)? Вы понимаете, что остальные скрипты что их используют будут вызывать ошибки. Одна такая ошибка и все остальные ваши скрипты на странице окажутся нерабочими. Мне бы захотелось руки оторвать человеку который запихнул jquery в футер, если бы столкнулся с подобной проблемой.
« Последнее редактирование: 04.03.2016, 01:26:14 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

Roinmana

  • Захожу иногда
  • 108
  • 2 / 0
Re: Порядок загрузки скриптов
« Ответ #36 : 04.03.2016, 08:39:04 »
А зачем грузить библиотеки в body (тем более в футер)? Вы понимаете, что остальные скрипты что их используют будут вызывать ошибки. Одна такая ошибка и все остальные ваши скрипты на странице окажутся нерабочими. Мне бы захотелось руки оторвать человеку который запихнул jquery в футер, если бы столкнулся с подобной проблемой.
Это понятно, но на конкретном сайте нужных "верхних" скрипта всего два, их грузят компоненты подписки и комментариев и один из них прекрасно загружается асинхронно. Остальным (украшательства и доп. функционал код которого прописан в самом конце) в head делать нечего, только тормозят загрузку страницы, поэтому возникла такая необходимость. Как это реализовать?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Порядок загрузки скриптов
« Ответ #37 : 04.03.2016, 09:35:03 »
Сжатый jquery, который грузится в head практически не тормозит загрузку страницы. Если хотите оптимизировать скорость загрузки страницы то стоило бы на другие вещи внимание обратить. Тем не менее, если вы такой маньяк то пишите плагин или возьмите какой нибудь готовый, который уберет все скрипты из head. А те скрипты что хотите в футер воткнуть подключайте вручную.  Фореймворк Joomla грузит скрипты только в head. Ну и имейте ввиду что если кому то после всех этих ваших действий понадобится кастомизировать этот сайт, добавить скриптик там какой нибудь то он будет вам очень благодарен за вашу находчивость ;D
« Последнее редактирование: 04.03.2016, 09:42:46 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

LadaDed

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Порядок загрузки скриптов
« Ответ #38 : 03.12.2016, 08:17:34 »
Да, вот тоже оказалась та-же ситуация.. Думал, что все скрипты прописаны где-то в базе данных, и там просто можно поменять их очередность или вообще добавить-удалить. Но не нашел в какой таблице..
Приходится вызов своего js писать просто руками в index.php чтобы он вызывался после вызова jQuery
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Re: Порядок загрузки скриптов
« Ответ #39 : 01.09.2017, 12:06:02 »
Проблему решил следующим образом:

1. JHtml::_('jquery.framework');
2. $document->addScript(JURI::base().'components'.DS.'com_componentname'.DS.'assets'.DS.'js'.DS.'jquery.jqGrid.js');

Строчка №1 решила проблему, теперь jquery грузится первым

Спасибо за наводку, jitendra. Вопрос и для меня решён.
Немного переоформил для тех случаев, когда $document не определена:

Код
JHtml::_('jquery.framework'); // Это чтобы сначала шёл сам jQuery
JFactory::getDocument()->addScript(JUri::base().'test/jquery.cookie.js');

То есть просто перед тем, как вставлять свой скрипт с помощью API, добавляем выше JHtml::_('jquery.framework');
Протестировал на Joomla 3.7.5. Всё отлично.
Порядок для самой jQuery не поменялся. А вот добавленный мной скрипт jquery.cookie.js теперь стал ниже. Причём не сразу после библиотеки jQuery, а ниже noconflict и migrate.
Возможно, будет интересно: Интеграция с Ozon
*

Flexderection

  • Новичок
  • 3
  • 0 / 0
Re: Порядок загрузки скриптов
« Ответ #40 : 08.03.2021, 22:16:54 »
А почему в head а не в footer.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Медиа-менеджер. Размер данного файла слишком велик для загрузки

Автор Veteran

Ответов: 6
Просмотров: 3331
Последний ответ 16.07.2018, 17:22:46
от darya322
Как сделать порядок мета тегов?

Автор Meiir

Ответов: 4
Просмотров: 1922
Последний ответ 11.05.2017, 17:52:33
от vipiusss
Порядок плагинов на странице

Автор intcorp

Ответов: 5
Просмотров: 2247
Последний ответ 26.04.2017, 23:51:10
от UN_Tony
После загрузки на хостинг появилась проблема описанная ниже!

Автор pomogu_chem_smogu

Ответов: 6
Просмотров: 2580
Последний ответ 16.02.2017, 16:29:34
от SeBun
Скорость загрузки сайта

Автор sanni55

Ответов: 4
Просмотров: 1274
Последний ответ 06.02.2017, 17:07:13
от sanni55