С 5.x до 6.0

Базы данных

Требования к БД

  • Минимальная версия MySQL теперь 8.0

  • Минимальная версия MariaDB теперь 10.6

Состояние удаления

Сущности теперь могут быть помечены как удалённые в базе данных. Это позволяет восстанавливать сущности из базы данных, если удаление было выполнено слишком рано.

Примечание

Из-за изменений в ElggEntity::delete() работа ElggFile::delete() была изменена. Ранее можно было создать символьную ссылку на файл в другом месте (другими способами, кроме как через Elgg), и при удалении ElggFile можно было удалить только ссылку, а не целевой файл. Это было изменено, и ElggFile::delete() теперь всегда удаляет как символьную ссылку, так и целевой файл.

См.также

Проверьте документацию database или документацию Возможность восстановления для получения дополнительной информации.

ES-модули

Мы больше не используем RequireJS для подключения AMD JavaScript-модулей. Вместо этого мы теперь полагаемся на нативное использование модулей ECMAScript. Все модули могут быть указаны под тем же именем, что и импортируемый модуль.

Composer

Требования к PHP

Минимальная версия PHP теперь 8.1. Также теперь требуется включить модуль intl.

PHPUnit

Elgg теперь использует PHPUnit 10.5. Возможно, вам потребуется обновить ваши тесты.

Аннотации

Из-за конфликта имён в псевдониме соединения по умолчанию между таблицами annotations и metadata, псевдоним соединения по умолчанию для таблицы annotations был изменён с n_table на a_table.

Если ваш код использует очень специфичные предложения (select, where, order_by и т.д.), вам нужно обновить ваш код. Если вы используете \Elgg\Database\QueryBuilder для частей вашего запроса, всё должно быть в порядке.

Колонка enabled

Колонка enabled для аннотаций была удалена. Аннотация больше не может быть включена или отключена. Вы больше не можете выполнять вызовы API enable и disable для аннотаций. Другие связанные функции API были удалены.

Иконки сущностей

Координаты обрезки

Координаты обрезки иконки по умолчанию (icon) теперь хранятся единообразно, так же как и для других типов иконок. Метаданные x1, x2, y1 и y2 больше не существуют. Используйте новую функцию \ElggEntity getIconCoordinates().

Icontime

Метаданные icontime были удалены из базы данных. Это был ненадёжный способ проверить, была ли загружена иконка. Это хранилось только для типа иконки icon.

Надёжный способ проверить, была ли загружена иконка — использовать функцию \ElggEntity::hasIcon().

Заголовки

Использование заголовков (h1, h2, h3) было пересмотрено во всей кодовой базе, чтобы убедиться, что они используются там, где это уместно, и в правильном порядке. Вы можете прочитать больше о предполагаемом использовании в Доступность.

Наиболее заметные изменения следующие:

  • H1 всегда является заголовком страницы (и больше не логотипом / названием сайта)

  • Модули (info, sidebar, widgets) используют заголовок H2

  • Заголовки H3 в заголовках сводок сущностей / отношений / аннотаций были заменены обычным текстовым элементом

Изменения в структуре CSS и HTML

Структура HTML страниц была изменена. Сводки сущностей и страницы полного просмотра сущностей были обернуты в элемент article. Элементы боковой панели теперь используют HTML-элемент aside. Модули (как виджеты или info-модули) теперь используют элемент section вместо div. Дублирующиеся классы CSS на одном элементе, такие как elgg-body и elgg-layout-body, были удалены.

Elgg предоставлял некоторые вспомогательные классы для создания сеточной разметки (как elgg-grid, elgg-col, elgg-row). Эти вспомогательные классы были удалены. Вы можете делать всё это с помощью обычного CSS, такого как display: grid.

Некоторые другие изменения стилей включают новый цвет фона для body, улучшенный стиль хлебных крошек и более простой чип блока владельца.

Изменения в функциях

Удалённые функции библиотеки

  • elgg_disable_annotations() была удалена

  • elgg_enable_annotations() была удалена

  • elgg_set_view_location() была удалена

  • elgg_strrchr() была удалена

  • elgg_strripos() была удалена

  • elgg_unrequire_css() была удалена. Используйте elgg_unregister_external_file('css', $view) в качестве замены.

Удалённые функции классов

  • \ElggAnnotation->enable()

  • \ElggAnnotation->disable()

  • \ElggEntity->disableAnnotations()

  • \ElggEntity->enableAnnotations()

  • \ElggEntity->getTags() используйте elgg_get_metadata() в качестве альтернативы.

Параметры функций библиотеки

  • elgg_get_entity_statistics() теперь требует array из $options для использования с elgg_get_entities().

  • У elgg_get_simplecache_url() удалён второй аргумент ($subview). Полное имя $view должно быть указано в качестве первого аргумента.

Различные изменения API

  • Интерфейс \Elgg\EntityIcon был удалён. Реализованные функции в \ElggEntity были перемещены в \Elgg\Traits\Entity\Icons

  • Имена представлений из папки представлений „css“ или „js“ теперь всегда должны указываться полным именем представления (ранее можно было опустить первую папку, если это было „css“ или „js“)

Удалённые значения конфигурации

  • system_cache_loaded