Этот документ отслеживает обновления, реализованные в версии 3.10 для лучшей интеграции разработчиков расширений с Joomla! 4.

Добавлена поддержка языковых файлов без префиксов.

PR: https://github.com/joomla/joomla-cms/pull/19353

Этот PR добавляет поддержку непрефиксных языковых файлов в Joomla 3.10. Это означает, что теперь вы можете использовать как префиксные, так и непрефиксные языковые файлы так же, как вы можете это сделать в 4.0.

Пример (языковые файлы с префиксом)

 

/language/en-GB/en-GB.com_admin.ini
/language/en-GB/en-GB.com_admin.sys.ini

Пример (языковые файлы без префиксов)

 

/language/en-GB/com_admin.ini
/language/en-GB/com_admin.sys.ini

 

Переход поля коммутатора.

PR: https://github.com/joomla/joomla-cms/pull/30078

В версии 4.0 был реализован новый макет для радиокнопки. С этим изменением в 3.10 мы перенесли файл layoutfile, сохранив оригинальный макет, поэтому вы можете использовать одно и то же определение макета (`layout="joomla.form.field.radio.switcher"`) в 3.10 и 4.x

Пример

 

<field
	name="switchertest"
	type="radio"
	label="switcher test"
	class="btn-group btn-group-yesno"
	layout="joomla.form.field.radio.switcher"
	default="1"
>
	<option value="1">JYES</option>
	<option value="0">JNO</option>
</field>

 

Классы категорий Backport

PR: https://github.com/joomla/joomla-cms/pull/30346

Благодаря изменениям в этом PR вы теперь можете использовать одни и те же имена классов в 3.10 и 4.x. Пример его использования можно найти здесь: https://github.com/joomla/joomla-cms/pull/30346#issuecomment-685424752

Обработка таблицы _supportNullValue.

PR: https://github.com/joomla/joomla-cms/pull/30102

С этим изменением в классе Joomla\CMS\Table вы можете использовать опцию `$_supportNullValue` из 4.x, чтобы указать, что столбцы полностью поддерживают значение NULL в базе данных.

Подготовка 3.10 к версионированию контента 4.0.

PR: https://github.com/joomla/joomla-cms/pull/29584

Этот PR переносит несколько классов, необходимых для реализации версионности элементов содержимого в одном и том же коде для расширений в версиях 3.x и 4.0. Чтобы поддерживать версионность в стиле 3.x и 4.0, вам придется сначала реализовать версионность в стиле 3.x. Чтобы получить работу в стиле 4.0, просто позвольте вашему классу таблицы реализовать интерфейс VersionableTableInterface (и метод, который он определяет) и позвольте вашему контроллеру элементов и модели использовать соответствующий признак Versionable. В версии 3.x эти черты пусты, в версии 4.0 они содержат всю логику, необходимую для версионирования.