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

spiroksi

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Добрый день! Помогите, пожалуйста.
Переношу сайт с локального на хостинг. Далеко не первый - все было замечательно.
В этот раз пишет вот такое: Fatal error: Can't use function return value in write context  моядиректория/../../regularlabs/src/File.php on line 283
Откуда это чудо и что с ним делать? Раз семь перезаливала. Сначала ругался на отсутствие Container fof30 для Ackeeba
Снесла акибу. Теперь это.
PHP 7.2
Joomla 3.9.3

*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Написано же, функция засунута куда не надо. Строку 283 показывайте.
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Откуда это чудо и что с ним делать? Раз семь перезаливала.
Это из за разницы в версиях PHP. Смотрите, какая версия на локалке, такую же и включайте на хостинге. Либо оставляйте версию 7.2, но тогда подгоняйте код под новую версию - делайте исправления ошибок соответственно новым требованиям.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

spiroksi

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
На локалке версия PHP 7.1.7

Вот 283 строка

Цитировать
// Skip if folder is not empty yet
283      if ( ! empty(JFolder::files($path, '.', false, true, [], []))
         || ! empty(JFolder::folders($path, '.', false, true, [], [])))
      {
         return true;
      }

      if (@rmdir($path))
      {
         return true;
      }
*

spiroksi

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Смотрите, какая версия на локалке, такую же и включайте на хостинге
Включила 7.1. То же самое
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Добрый день! Помогите, пожалуйста.
Переношу сайт с локального на хостинг. Далеко не первый - все было замечательно.
В этот раз пишет вот такое: Fatal error: Can't use function return value in write context  моядиректория/../../regularlabs/src/File.php on line 283
Откуда это чудо и что с ним делать? Раз семь перезаливала. Сначала ругался на отсутствие Container fof30 для Ackeeba
Снесла акибу. Теперь это.
PHP 7.2
Joomla 3.9.3


А как переносили?
Я так понял не через акибу?
*

spiroksi

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Сначала с kickstart и акибой. Потребовал библиотеку fof30
Таким образом:
Class 'FOF30\Container\Container' not found. Хотя она есть.
Потом удалила с локального акибу. Перенесла вручную
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Включила 7.1. То же самое
Не может быть. У вас PHP старше 5.5. Для таких древних версий строка 283 должна выглядеть так
Код: php
$test_file = JFolder::files($path, '.', false, true, [], []);
$test_folder = JFolder::folders($path, '.', false, true, [], []);

if (!empty($test_file) || !empty($test_folder))
{
         return true;
}
« Последнее редактирование: 22.02.2020, 22:05:12 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Код
 empty(JFolder::files($path, '.', false, true, [], [])
Параметр в empty может быть переменной и не может быть функцией.
Вынесите отдельно.
Код
$folder = JFolder::files($path, '.', false, true, [], []);
if ( ! empty($folder)
    || ! empty($folder))
{
    return true;
}

if (@rmdir($path))
{
    return true;
}
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
не может быть функцией
Может, если версия PHP не старше 5.5.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
 ;D Исхожу из сообщения fatal error. Ему виднее.
*

spiroksi

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Ребята! Все получилось! Спасибо всем!
Я ступила. Но вы указали направление.
В .htaccess прописала строчку с нужной версией PHP, а раскомментировать забыла.  crazy!
Всех мужчин с Праздником 23 февраля!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Прошу помощи. Ошибка при обновлении на Joomla 4

Автор wmsonic

Ответов: 1
Просмотров: 2366
Последний ответ 29.10.2023, 22:07:23
от Kukush
Выходит ошибка в админской панели

Автор daymarus

Ответов: 0
Просмотров: 2065
Последний ответ 10.08.2023, 12:43:43
от daymarus
При обновлении ошибка 403 Forbidden Request forbidden by administrative rules

Автор THeCMeX

Ответов: 18
Просмотров: 4449
Последний ответ 14.07.2023, 17:13:19
от art22
При переносе второго сайта на хостинг открывается страница первого сайта

Автор rezchik

Ответов: 13
Просмотров: 1712
Последний ответ 15.03.2023, 18:38:03
от rezchik
Ошибка при обновлении с 3.10.10. до 4.х

Автор svd2014

Ответов: 1
Просмотров: 2571
Последний ответ 13.02.2023, 19:53:08
от weser