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

maggot26

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Пользователь логинится на сайте и в таблицу jos_users в поле lastvisitDate записывается дата, но почему-то на 3 часа раньше и так все время. И если посмотреть профиль пользователя, то Last Online тоже 3 часа назад. Не понимаю почему так. Использую CB.
*

maggot26

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Хотя, если логиниться с помощью mod_login, то эффект такой же...
*

Fox64

  • Захожу иногда
  • 67
  • 7 / 0
Пользователь логинится на сайте и в таблицу jos_users в поле lastvisitDate записывается дата, но почему-то на 3 часа раньше и так все время. И если посмотреть профиль пользователя, то Last Online тоже 3 часа назад. Не понимаю почему так. Использую CB.

Часовой пояс (UTC +03:00) Багдад, Москва ....
*

maggot26

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
часвой пояс выбран верно. При этом если его менять, то ничего не изменяется, все равно -3 часа.
*

Fox64

  • Захожу иногда
  • 67
  • 7 / 0
часвой пояс выбран верно. При этом если его менять, то ничего не изменяется, все равно -3 часа.

Мне кажется все-таки эксперемент был не чистым. Попробуй вновь. Поменяй часовой пояс в настройках сервера, сохрани, логинься и посмотри. Должно измениться. Иначе это бред.
« Последнее редактирование: 30.12.2009, 15:49:04 от Fox64 »
*

kharol

  • Завсегдатай
  • 1721
  • 217 / 0
Недавно ко мне обратился клиент, которому очень важна сортировка пользователей по последнему посещению сайта. Оказалось, что фильтр по дате не работает, точнее работает точно так же как сортировка по username. Оказалось, ошибка тянется еще со сборки 1.5.20
Исправить можно в файле: administrator/components/com_users/views/view.html.php
строка 96:
Код
if (!in_array($filter_order, array('a.name', 'a.username', 'a.block', 'groupname', 'a.email', 'a.lastvisitDate', 'a.id'))) {
в строке заменить a.lastvisitdate на a.lastvisitDate
Наверное просто опечатались...
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

Baobab

  • Новичок
  • 8
  • 0 / 0
Пользователь логинится на сайте и в таблицу jos_users в поле lastvisitDate записывается дата, но почему-то на 3 часа раньше и так все время. И если посмотреть профиль пользователя, то Last Online тоже 3 часа назад. Не понимаю почему так. Использую CB.
Мне кажется все-таки эксперемент был не чистым. Попробуй вновь. Поменяй часовой пояс в настройках сервера, сохрани, логинься и посмотри. Должно измениться. Иначе это бред.

Эта проблема существует и в последней версии Joomla 1.5.23!

Пришлось самому сегодня в нее упереться.
Как оказалось, ошибка была зарегистрирована в Joomla аж 2009-01-06 ( [#14451] Last Visit Date Incorrect ), но фикс так почему-то и не вошел в 1.5.23

Исправлять ее так:

1. Открываем
Код
../libraries/joomla/database/table/user.php
2. Ищем текст
Код
. ' SET lastvisitDate = '.$this->_db->Quote($date->toMySQL())
3. Заменяем его на
Код
. ' SET lastvisitDate = '.$this->_db->Quote(date( 'Y-m-d H:i:s'))

Теперь значение Даты и Времени в поле lastvisitDate в таблице jos_users будет соответствовать действительному.
« Последнее редактирование: 25.06.2011, 14:11:57 от Baobab »
*

fsv

  • Живу я здесь
  • 2787
  • 413 / 2
Эта проблема существует и в последней версии Joomla 1.5.23!
...............
Теперь значение Даты и Времени в поле lastvisitDate в таблице jos_users будет соответствовать действительному.

было: в менеджере пользователей в админке - соответствовало, в базе = -3 часа
стало: в таблице соответствует, но в менеджере пользователей в админке = +3 часа

?

...Исправить можно в файле: administrator/components/com_users/views/view.html.php
строка 96:
Код
if (!in_array($filter_order, array('a.name', 'a.username', 'a.block', 'groupname', 'a.email', 'a.lastvisitDate', 'a.id'))) {
в строке заменить a.lastvisitdate на a.lastvisitDate
Наверное просто опечатались...

у меня Date и было прописано с большой.
Joomla 1.5.23



« Последнее редактирование: 25.06.2011, 16:54:22 от fsv »
Веб-разработка: заказ. Только новая разработка.
*

Baobab

  • Новичок
  • 8
  • 0 / 0
стало: в таблице соответствует, но в менеджере пользователей в админке = +3 часа
Для меня например Админка не показатель, т.к. мои скрипты работают напрямую с БД.
Тем не менее, в Админке у меня установлено по умолчанию:

Общие настройки -> Сервер -> Временная зона = (UTC 00:00) Время по Гринвичу: Дублин, Лондон, Лиссабон

И время совпадает и в Админке и в БД.
Хотя, в других местах, например при публикации документов, может выводиться время не серверное, а с учетом Временной зоны. Тогда нужно искать другое решение проблемы.
Естественно нужно еще где-то пытаться искать выход из этого положения. Возможно найдется более подходящее решение, но пока есть то, что есть.
« Последнее редактирование: 25.06.2011, 20:19:33 от Baobab »
*

Baobab

  • Новичок
  • 8
  • 0 / 0
А вообще-то, как мне кажется, чтобы не копать самим себе еще более глубокую яму, то наверно стоит подразумевать, что "Дата последнего визита" в БД отображается в UTC без корректировки по временной зоне.
Ну а если понадобится в собственном скрипте выводить дату и время с корректировкой по временной зоне, то для получения значения "Временная зона" можно использовать getOffset() импортируя соответствующий класс jimport( 'joomla.utilities.date' );
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отключил плагин входа

Автор RayCD

Ответов: 14
Просмотров: 8984
Последний ответ 02.11.2024, 00:24:59
от Dobreff
Вход в административный раздел - Имя пользователя и пароль не совпадают

Автор ZekMan

Ответов: 70
Просмотров: 27133
Последний ответ 16.12.2017, 20:12:04
от Aleks_El_Dia
Лог входа пользователей в систему

Автор Vasja555

Ответов: 1
Просмотров: 2124
Последний ответ 04.03.2015, 22:18:18
от voland
Активация пользователя администратором для Joomla 1.5.9

Автор malalex

Ответов: 10
Просмотров: 5080
Последний ответ 09.01.2015, 21:44:55
от GSWG
как узнать IP адрес пользователя, какой раздел сейчас смотрит, что делал, что делает... и т.д.

Автор asilbeko

Ответов: 3
Просмотров: 5362
Последний ответ 22.12.2014, 06:09:23
от arturk