Новости Joomla

Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0

Метод registerListeners() в CMSPlugin в плагинах  планируется удалить в Joomla 7.0

👩‍💻 Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0.Этот метод регистрирует устаревшие слушатели событий в диспетчере, имитируя работу плагинов Joomla! 3.x и ниже для Joomla 4+. По умолчанию этот метод ищет все общедоступные методы, название которых начинается с on. Он регистрирует лямбда-функции (замыкания), которые пытаются преобразовать аргументы отправленного события в аргументы вызова метода и вызвать ваш метод on<Что-то>. Результат передаётся обратно событию в его аргумент result.Теперь этот слой совместимости с устаревшей Joomla 3 помечен к удалению в Joomla 7.0, которая должна выйти осенью 2027 года. Это означает, что те уникальные расширения от Joomla 2.5 / Joomla 3, которые ещё работали на Joomla 4-6 скорее всего окончательно перестанут работать на Joomla 7. Предполагается, что активные разработчики планомерно и постепенно избавляются от технического долга и обновляют свои расширения. @joomlafeed#joomla #разработка #php

0 Пользователей и 1 Гость просматривают эту тему.
  • 3 Ответов
  • 1532 Просмотров
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Всем привет!
Уже много лет, для вывода значений из дополнительных полей материала, в шаблоне модуля (например 'mod_articles_news') я использую следюущую конструкцию:
Код
$jcFields = FieldsHelper::getFields('com_content.article', $item, true);
$array = json_decode(json_encode($jcFields), True);
$fields = [];
foreach ($array as $field) {
    array_push($fields,$field['name'],$field['value'],$field['rawvalue']);
}
$price = $fields[4];
$file = $fields[8];
$availability = $fields[2];

Подсмотрел где-то, и за неимением лучшего и незнанием, как сделать лучше, так и использую.
Очень неудобно и непрактично, что доступ к значению поля указывается по номеру значения в массиве! Как только меняется порядок полей — всё разваливается.
Может кто-то из более опытных коллег подскажет, как достучаться до поля по его имени, чтобы было как-то вроде: $fields->price[value] или что-то наподобие.
Заранее всем спасибо!
« Последнее редактирование: 30.12.2024, 12:20:12 от goga_pgasovav »
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Сам спросил, сам и отвечу.
Всё можно сделать гораздо проще:
Код
$customFields = FieldsHelper::getFields('com_content.article', $item, true);
foreach ($customFields as $customField) {
    $customFields[$customField->name] = $customField;
}
$price = $customFields['price']->value;
$file = $customFields['filelink']->rawvalue;
$availability = $customFields['availability']->rawvalue;
В зависимости от необходимости используйте value или rawvalue.
Может кому и пригодится  :D
*

sivers

  • Живу я здесь
  • 2597
  • 360 / 0
Можно это сделать еще проще:
Код
$customFields = FieldsHelper::getFields('com_content.article', $item, true);
$rawValues = array_column($customFields, 'rawvalue', 'name');
print_r($rawValues);
Здесь без цикла.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
sivers, сколько лет я на этом форуме, а вы не пеерстаёте удивлять своим профессионализмом и знаниями!
Спасибо  *DRINK*
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

как из Стиль модуля - none, убрать custom

Автор all_zer

Ответов: 3
Просмотров: 371
Последний ответ 15.11.2025, 16:20:01
от all_zer
Вывести поля профиля Joomla

Автор romagromov

Ответов: 11
Просмотров: 2952
Последний ответ 28.04.2025, 10:25:44
от sivers
Вывести модуль в модуле

Автор jimka

Ответов: 2
Просмотров: 1776
Последний ответ 18.04.2025, 15:39:36
от fbr
Переход на страницу материала после его размещения пользователем

Автор stepan39

Ответов: 0
Просмотров: 876
Последний ответ 22.11.2024, 07:14:15
от stepan39
[Решено] Получить category description image в index.php шаблона

Автор goga_pgasovav

Ответов: 6
Просмотров: 1543
Последний ответ 12.07.2024, 17:06:14
от goga_pgasovav