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

arrrows163

  • Новичок
  • 3
  • 0 / 0
Заранее спасибо за помощь!
Собираю модуль, который будет менять значения цен во всех материалах сразу, при изменение одно константы.

Для этого необходимо вытащить значение дополнительного поля, но тут возникла проблема.

Код
<?php
defined('_JEXEC') or die('Restricted access');  //Если константа _JEXEC не определена - выходим
JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');
 
    foreach ($this as $item) :
    $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[7];  //7 значение дополнительного поля из массива(определил перебором)
echo $price;
endforeach;
?>
Этот код работает только если его вписать в файл default.php по адресу "/templates/shaper_helix3/html/com_content/article/"

Если же я добавляю этот код в php создаваемого модуля, то получаю ошибку Using $this when not in object context.
Подскажите пожалуйста, как вытянуть значение дополнительного поля и использовать в создаваемом модуле.
joomla 3.9.27
php 7.4.14
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Баг. В модуле выводится значение параметра из другого модуля

Автор fbr

Ответов: 10
Просмотров: 1033
Последний ответ 18.04.2021, 21:34:10
от fbr
Произошла ошибка при получении данных json: код состояния http 0. error

Автор Андрей Купцов

Ответов: 2
Просмотров: 4204
Последний ответ 18.12.2019, 10:14:55
от Андрей Купцов
Из 1С передаю данные посредством post ошибка 405 Not Allowed

Автор xDD

Ответов: 6
Просмотров: 5549
Последний ответ 03.03.2017, 17:21:48
от xDD
Ошибка "Представление не найдено" в публичной части компонента

Автор denism300

Ответов: 3
Просмотров: 1653
Последний ответ 15.11.2016, 23:37:41
от denism300
Ошибка Asset is not defined

Автор denism300

Ответов: 11
Просмотров: 1427
Последний ответ 27.02.2016, 15:18:21
от fsv