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

Dini_Vini

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Доброговремени суток!
Столкнулся с необходимостью определения текущего пользователя.
Т.е. пользователь в определенной форме заполняет поля и при нажатие кнопки "submit" данные поступают php обработчику, а потом в БД.
и НЕОБХОДИМО как-то узнать какой пользователь занес эти данные и занести в БД и его username
Я вот нашел что - то:
global $my;
//$my->username - логин
//$my->name - имя, указанное при регистрации
//$my->id - идентификатор юзера, из таблицы #__users
var_dump ($my);   

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

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
*

Dini_Vini

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Имя текущего пользователя
« Ответ #2 : 18.08.2009, 13:14:11 »
Я пробывал, появляется ошибка:

Fatal error: Class 'JFactory' not found
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Имя текущего пользователя
« Ответ #3 : 18.08.2009, 13:16:35 »
значит скрипт, в котором ты пытаешься его получить - не есть скриптик Joomla, а просто сторонний файлик. Соответственно ничего ты так не получишь, в идеале нужно компонент делать
*

Dini_Vini

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Имя текущего пользователя
« Ответ #4 : 18.08.2009, 13:26:04 »
А нельзя никак вытащить с помощью обращения к com_user?
Знаю что вопрос глупый но всё же, неужели это можно сделать только написав компонент?
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Имя текущего пользователя
« Ответ #5 : 18.08.2009, 13:31:58 »
Сейчас скопирую кусок лога с аськи, искать не охото точное решение, но оно рабочее, просто прочти шматок логов и пробуй подцепить как там описано
*

Dini_Vini

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Имя текущего пользователя
« Ответ #7 : 18.08.2009, 13:59:15 »
Заработало! :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D
<?php
define ( '_JEXEC', 1 );
define ('JPATH_BASE', dirname (__FILE__) );
define ( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe =& JFactory::getApplication ('site');
$mainframe->initialise ();
$mainframe->route ();
$user = & JFactory::getUser ();
echo $user->username
?>

Только я не уверен что всё из этого кода необзодимо!

ОГРОМНОЕ СПАСИБО era
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Имя текущего пользователя
« Ответ #8 : 18.08.2009, 14:02:47 »
Только я не уверен что всё из этого кода необзодимо!
да, возможно, скорей всего например "$mainframe->route ();" не нужно, вообщем методом исключения делай
*

Dini_Vini

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Имя текущего пользователя
« Ответ #9 : 18.08.2009, 14:04:09 »
Да, получается только он и не нужен
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться