Почитать другие заметки или статьи

Идея этой небольшой заметки появилась в момент переноса сайтов с Joomla 3 на Joomla 4. В старых версиях Joomla визуальный редактор выводился методом getEditor класса JFactory. Однако, в Joomla 4 данный метод был удален и при попытке вызова визуального редактора старым способом мы получаем ошибку:

Call to undefined method Joomla\CMS\Factory::getEditor()

В Joomla 4 для вызова визуального редактора используется следующая конструкция:

 JEditor::getInstance('название редактора, который отображаем');

Будет здорово построить код таким образом, чтобы отображался именно тот визуальный редактор, который установлен в настройках пользователя, а если таковой не установлен, то пускай он берется из общих настроек системы.

Поэтому я предлагаю вариант кода, представленный ниже:

use Joomla\CMS\Factory;
use Joomla\Registry\Registry;

$application = Factory::getApplication();

$default_editor = Factory::getConfig()->get('editor'); // Получаем редактор установленный в общих настройках сайта
$user = $application->getIdentity(); // Получаем пользователя
$user->params = new Registry($user->params); // Получаем  параметры
$user->editor = $user->params->get('editor', $default_editor); // Получаем из настроек пользователя значение редактора

$wysiwyg = JEditor::getInstance($user->editor); // Получили объект редактора

$textValue = 'Какой то текст, который будет выводиться в редакторе при его отображении на экране';

$wysiwyg->display('text', $textValue, '100%', '400px', '', '', $buttons=true); // Отображаем редактор на сайте

Как видим, при желании можно программно задать определенный редактор, установить ширину, высоту и включить или отключить в редакторе отображение кнопок под редактором