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

Mick_20

  • Завсегдатай
  • 1029
  • 13 / 0
  • Что тут писать?
Подключил в материале файл со ссылками:
require_once('адрес к файлу');

Все работает. Джумловские фишки все тоже работают.

Но когда перехожу по ссылке в др файл, то фишки джумловские не работают.
Где мне надо чего дописать чтоб заработали?
« Последнее редактирование: 07.06.2014, 08:45:04 от b2z »
Мой сайт про корабли
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Подключение фреймворка Joomla в стороннем файле:

Код: php
<?php
    /* Initialize Joomla framework */
    if (!defined('_JEXEC')) {
        define( '_JEXEC', 1 );
        define('JPATH_BASE', dirname(__FILE__) );
        define( 'DS', DIRECTORY_SEPARATOR );
        /* Required Files */
        require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
        require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
        /* To use Joomla's Database Class */
        require_once ( JPATH_BASE .DS.'libraries'.DS.'joomla'.DS.'factory.php' );
        require_once ( JPATH_LIBRARIES.DS.'joomla'.DS.'import.php'); // Joomla library imports.
        /* Create the Application */
        $app = JFactory::getApplication('site')->initialise();
    }
?>

Это случай, когда сторонний файл находится в корне. Если же он там не находится, то необходимо внести изменение в:
Код: php
define( 'JPATH_BASE', dirname(__FILE__));
*

Mick_20

  • Завсегдатай
  • 1029
  • 13 / 0
  • Что тут писать?
то что нужно. спасибо +
« Последнее редактирование: 29.10.2012, 16:51:47 от smart »
Мой сайт про корабли
*

mcreature

  • Новичок
  • 9
  • 0 / 0
Добрый день!
У меня есть сторонний php-скрипт, лежит в корне Joomla, запускается кронтабом с хостинга. Хочу подключить класс джумловского плагина, чтобы использовать пару функций из него.
Мне для этого надо ведь фреймворк джумловский подключить, правильно?
Но вот вариант выше не работает. Просто подключение класса через include/require тоже ничего не дает. Joomla 2.5
Подскажите, пожалуйста, как правильно такие подключения делаются?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Вариант выше работает. Проверяйте что вы делаете не так.
*

mcreature

  • Новичок
  • 9
  • 0 / 0
Закомментив эту строчку, скрипт начал отрабатывать:
Код
require_once ( JPATH_LIBRARIES.DS.'joomla'.DS.'import.php');

Похоже проблема в константе JPATH_LIBRARIES

А, ну так конечно, import.php находится не в папке libraries/joomla, а в libraries
Всем спасибо.
« Последнее редактирование: 06.06.2014, 17:07:16 от mcreature »
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
На самом деле эти строки лишние:
Код: php
/* To use Joomla's Database Class */
require_once ( JPATH_BASE .DS.'libraries'.DS.'joomla'.DS.'factory.php' );
require_once ( JPATH_LIBRARIES.DS.'joomla'.DS.'import.php'); // Joomla library imports.

Вполне достаточно framework.php, а в нем уже подключаются все нужные файлы:

Код: php
define('_JEXEC', 1);
define('JPATH_BASE', dirname(__FILE__));
define('DS', DIRECTORY_SEPARATOR);

/* Required files */
require_once JPATH_BASE . DS . 'includes' . DS . 'defines.php';
require_once JPATH_BASE . DS . 'includes' . DS . 'framework.php';

/* Create the Application */
$app = JFactory::getApplication('site')->initialise();
*

mcreature

  • Новичок
  • 9
  • 0 / 0
b2z, спасибо.

Но вот цель всего этого была в подключении класса из собственного плагина.
Но после:
Код
require_once ( JPATH_BASE .DS.'plugins'.DS.'system'.DS.'expimport'.DS.'expimport.php' );
JLoader::getClassList() показывает, что моего класса в списке нет.

Возможно вообще подключить класс из плагина?

зы: наврал я выше, в этом проекте у меня Joomla 3. Это может что-то менять?
« Последнее редактирование: 06.06.2014, 17:35:58 от mcreature »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Код: php
$dispatcher	= JDispatcher::getInstance();
JPluginHelper::importPlugin('user');
$results = $dispatcher->trigger('onContentPrepareData', array('com_admin.profile', $data));
Объявляете диспетчер, импортируете плагины необходимой вам группы или конкретно ваш плагин (второй аргумент с названием плагина надо добавить в importPlugin), запускаете триггер с названием нужной вам функции, передаете ей нужные аргументы.
*

mcreature

  • Новичок
  • 9
  • 0 / 0
Arkadiy, да, совсем про это забыл. Спасибо, теперь все работает!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать такой сайт на Joomla?

Автор tester124545

Ответов: 2
Просмотров: 421
Последний ответ 28.10.2025, 06:03:09
от wishlight
Простенький калькулятор одной функции на JS (не Joomla)

Автор Dorfman

Ответов: 10
Просмотров: 1152
Последний ответ 23.11.2020, 13:39:14
от sivers
Переход по ссылки и запуск функции? [РЕШЕНО]

Автор warlocksp

Ответов: 19
Просмотров: 1581
Последний ответ 21.02.2020, 12:06:24
от warlocksp
[РЕШЕНО] Скроллинг страницы вниз?

Автор warlocksp

Ответов: 3
Просмотров: 1028
Последний ответ 02.02.2020, 15:56:55
от warlocksp
Разобраться с небольшим кодом PHP (РЕШЕНО)

Автор Шмайсер

Ответов: 18
Просмотров: 1424
Последний ответ 16.01.2020, 21:47:56
от sivers