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

mel-on

  • Новичок
  • 3
  • 0 / 0
Используя стандартный поиск по пользователям, выдает мини профили в которых только аватар, логин, столько друзей, написать сообщение, и предложить дружбу. Как вписать в мини профиль (результат поиска) дополнительные поля типа телефон, мыло, рейтинг и др. И хорошо бы чтоб эти поля видел только администратор.
*

dydy

  • Осваиваюсь на форуме
  • 29
  • 4 / 0
Решили проблему? Тоже такой вопрос возник
*

ag777

  • Захожу иногда
  • 81
  • 0 / 1
Готов оплатить доработку результатов поиска, а именно добавление вывода дополнительной информации о профиле (Страна, Город, Возраст)

 JomSocial 2,8,3
*

ag777

  • Захожу иногда
  • 81
  • 0 / 1
Наполовину разобрался сам.

Нужно править файл /components/com_community/templates/шаблон/people.browse.php вписывая необходимые данные в промежутке между
<div class="cIndex-Content">...</div>

так - <?php echo $row->user->getInfo('FIELD_COUNTRY'); ?> выводит страну
- <?php echo $row->user->getInfo('FIELD_CITY'); ?> город и т.п., вместо FIELD_CITY можно прописывать код поля указанный в настройках полей профиля.


Пока что не могу вывести возраст. Подставляя название поля FIELD_BIRTHDATE выводит дату рождения с дописанием времени - 1978-2-13 23:59:59
*

bigmus

  • Захожу иногда
  • 55
  • 4 / 1
Пока что не могу вывести возраст. Подставляя название поля FIELD_BIRTHDATE выводит дату рождения с дописанием времени - 1978-2-13 23:59:59

<?php

$userModel       = CFactory::getModel('user');
$user         = CFactory::getUser($user->id);
   
$birthdate = $user->getInfo('FIELD_BIRTHDATE', $user);

if(!$birthdate)
{
$age = "Не указано";
}
else
{
list($year,$month,$day) = explode("-", $birthdate);
$today = time();
for ($yr = $year, $age = -1; mktime(0, 0, 0, $month, $day, (int)$yr) < $today; $yr++, $age++);
}
; ?>
и потом вставляй эту строчку куда нужно
<?php echo $age ; ?>
*

ag777

  • Захожу иногда
  • 81
  • 0 / 1
не работает, всем юзерам  пишет возраст - Не указано
а если удалить это условие то всем ставит возраст 13 лет
*

bigmus

  • Захожу иногда
  • 55
  • 4 / 1
не работает, всем юзерам  пишет возраст - Не указано
а если удалить это условие то всем ставит возраст 13 лет
на версии 2.2.5  работает отлично
*

Сergei

  • Захожу иногда
  • 189
  • 0 / 0
Цитировать
<?php

$userModel       = CFactory::getModel('user');
$user         = CFactory::getUser($user->id);
  
$birthdate = $user->getInfo('FIELD_BIRTHDATE', $user);

if(!$birthdate)
{
$age = "Не указано";
}
else
{
list($year,$month,$day) = explode("-", $birthdate);
$today = time();
for ($yr = $year, $age = -1; mktime(0, 0, 0, $month, $day, (int)$yr) < $today; $yr++, $age++);
}
; ?>
и потом вставляй эту строчку куда нужно
<?php echo $age ; ?>

Как можно исправить данный код для версии JomSocial 4... также у всех пользователей показывается одинаковый возраст.
Например: Super User 35, Sergei 35, и т.д. и т.п.
*

ecs23

  • Захожу иногда
  • 76
  • 1 / 0
Как можно исправить данный код для версии JomSocial 4... также у всех пользователей показывается одинаковый возраст.
Например: Super User 35, Sergei 35, и т.д. и т.п.
http://joomlaforum.ru/index.php/topic,316961.0.html
Я сделал так на 4.0.9
« Последнее редактирование: 05.01.2017, 03:51:25 от era »
*

Сergei

  • Захожу иногда
  • 189
  • 0 / 0
ecs23 Вы возраст выводили стандартными настройками JomSocial?
*

ecs23

  • Захожу иногда
  • 76
  • 1 / 0
ecs23 Вы возраст выводили стандартными настройками JomSocial?
нет нестандартными
сначала считал из даты рождения потом вставлял
Код: php
<?php 
   $birthday = $user->getInfo('FIELD_BIRTHDATE', $user);
   if(!$birthday) {
     $age = " ";}
   else
     {list($year,$month,$day) = explode("-", $birthday);
     $today = time();
   for ($yr = $year, $age = -1; mktime(0, 0, 0, $month, $day, (int)$yr) < $today; $yr++, $age++);}
?>


<?php
   $birthday = $user->getInfo('FIELD_FBIRTHDATE', $user);
   if(!$birthday) {
     $fage = " ";}
   else
     {list($year,$month,$day) = explode("-", $birthday);
     $today = time();
   for ($yr = $year, $fage = -1; mktime(0, 0, 0, $month, $day, (int)$yr) < $today; $yr++, $fage++);}
?>

                        <div class="joms-list__body">
                            <?php echo CFriendsHelper::getUserCog($user->id,null,null,true); ?>
                            <?php echo CFriendsHelper::getUserFriendDropdown($user->id); ?>
                            <a href="<?php echo $user->profileLink; ?>"><h4
                                    class="joms-text--username"><?php echo $user->getDisplayName(); echo ', м: ' .$age; echo ', ж: ' .$fage; ?></h4></a>
*

ecs23

  • Захожу иногда
  • 76
  • 1 / 0
только незнаю как сделать если нету даты чтоб не высвечивалось М и Ж
как сделать?
*

ecs23

  • Захожу иногда
  • 76
  • 1 / 0
только незнаю как сделать если нету даты чтоб не высвечивалось М и Ж
как сделать?
вот решил проблемку
Код
 class="joms-text--username"><?php echo $user->getDisplayName();?>  <?php if ($age!=0) {echo ', м: ' .$age;}?> <?php if ($fage!=0) { echo ', ж: ' .$fage;} ?>
В предыдущем коде меняем на этот последнюю строчку
*

Сergei

  • Захожу иногда
  • 189
  • 0 / 0
Возраст пользователя
« Ответ #13 : 02.09.2016, 08:09:56 »
Как вывести возраст пользователя в виде двух цифр, а не в виде даты рождения: 1978-2-13?
Например: Возраст - 25 лет.
Просьба подсказать!
*

ecs23

  • Захожу иногда
  • 76
  • 1 / 0
Как вывести возраст пользователя в виде двух цифр, а не в виде даты рождения: 1978-2-13?
Например: Возраст - 25 лет.
Просьба подсказать!
посмотри выше
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отправка e-mail пользователям из компонента JomSocial 4.8.2

Автор Александр Кардаш

Ответов: 0
Просмотров: 4334
Последний ответ 02.04.2023, 17:38:07
от Александр Кардаш
Русификация JomSocial

Автор Fassendek

Ответов: 5
Просмотров: 5570
Последний ответ 13.03.2023, 11:41:24
от kochevnik
Не устанавливается JomSocial

Автор lolitma3

Ответов: 1
Просмотров: 4312
Последний ответ 01.04.2021, 12:00:27
от VadShip10
Переход из JomSocial в CommunityBuilder

Автор bizzy3

Ответов: 0
Просмотров: 3452
Последний ответ 22.03.2021, 12:29:57
от bizzy3
Ошибка при регистрации в JomSocial

Автор BlackAxXxE

Ответов: 5
Просмотров: 6100
Последний ответ 04.02.2021, 13:59:59
от Kijv