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

justquestion

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Ребята, подскажите в чем проблема, весь инет перерыл.
Есть Joomla 3.1. Делаю модуль с использованием AJAX, на HTML-странице происходит событие по нажатию кнопки:

Код HTML:
Код
    new Request({
        method: 'get',
        url: '/modules/mod_mymodule/ajax.php',
        data: { 'table' : tableName},
        onSuccess: function(responseText) {
            alert(responseText);},
        onFailure: function() {
            alert('failed');}
    }).send();

Идет запрос в /modules/mod_mymodule/ajax.php. Смотрим AJAX.php:

Код PHP
Код
<?php
if (JRequest::getVar('table')) {
 
    $tableName= JRequest::getVar('table');
   
    echo 'здесь ответ';
?>

В итоге в HTML-файл приходит ответ:
alert(responseText):

Цитировать
Fatal error: Class 'JRequest' not found in /home/acc/website.ru/www/modules/mod_mymodule/ajax.php on line 9
Класс JRequest должен находиться в /libraries/joomla/environment/request.php, но в инсталяционном архиве request.php вообще нет. Пробовал взять этот файл из Joomla 2.5 и скопировать в свою папку, но не сканало.

Кто-нибудь сталкивался с такой проблемой? Неужели в Joomla 3 никто не работал с AJAX?
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Как бы JRequest уже устарел. Вместо него JInput:

Код: php
<?php
$input = JFactory::getApplication()->input;

if ($tableName = $input->get('table', ''))
{
    echo $tableName;
}
?>

http://docs.joomla.org/Retrieving_request_data_using_JInput
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
ну начнем с того откуда в файле /home/acc/website.ru/www/modules/mod_mymodule/ajax.php возьмется класс JRequst? вы его туда подключали?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Условия отображения для конкретной группы пользователей Joomla 3.4.x

Автор dmik

Ответов: 15
Просмотров: 3401
Последний ответ 29.05.2020, 22:42:15
от voland
Подключить Joomla Framework в своем файле

Автор kolhoz

Ответов: 1
Просмотров: 1839
Последний ответ 06.12.2017, 17:15:42
от Aleks.Denezh
Переделать запросы к БД под Joomla

Автор Glog

Ответов: 3
Просмотров: 1545
Последний ответ 03.07.2017, 17:53:28
от Glog
Чем JFactory::getApplication()->input лучше JRequest::getVar()?

Автор Shustry

Ответов: 43
Просмотров: 16085
Последний ответ 13.01.2017, 12:18:41
от Septdir
Поддержка Joomla в PhpStorm

Автор b2z

Ответов: 51
Просмотров: 11666
Последний ответ 28.12.2016, 23:31:39
от b2z