С 4.1 до 4.2

Stash заменён на Phpfastcache

Внутренняя библиотека кэширования Stash заменена на Phpfastcache. Phpfastcache лучше поддерживается, предоставляет больше драйверов кэша и добавляет больше возможностей в реализацию кэширования. Это изменение не должно вызывать проблем в существующих установках. Если у вас настроен Memcache или Redis в elgg-config/settings.php, возможно, потребуется обновить конфигурацию.

Булевы значения метаданных и аннотаций

Модель базы данных изменена для сохранения булевых значений без изменений между сохранением и получением. До этого изменения, если вы сохраняли булево значение, оно возвращалось как целое число. Теперь оно останется булевым.

Предупреждение

Если вы ранее сохраняли булевы значения, они останутся целыми числами в базе данных (до повторного сохранения).

Функции системных сообщений

Функции system_message() и register_error() заменены на elgg_register_success_message() и elgg_register_error_message(). Новые функции позволяют передавать дополнительные опции в реестр системных сообщений.

JavaScript функции

JavaScript библиотеки Elgg подверглись масштабной переработке. Многие функции объявлены устаревшими. Все устаревшие функции и глобальные переменные можно найти в views/default/core/js/deprecated.js.

Системные сообщения

Если вы используете системные сообщения в вашем JavaScript, теперь необходимо подключать модуль elgg/system_messages.

Токены безопасности

Если вы используете elgg.security.addToken() в вашем JavaScript, теперь необходимо подключать модуль elgg/security.

Переводы

Если вы используете elgg.echo() в вашем JavaScript, теперь необходимо подключать модуль elgg/i18n.

Функции пользовательского интерфейса

Меню при наведении на пользователя больше не инициализируется из глобального ui.js, а подключает JavaScript по требованию из view icon/user/default.

ElggUser и ElggEntity

JavaScript эквиваленты ElggUser и ElggEntity больше не следует использовать. Сущность авторизованного пользователя больше не должна ссылаться в данных страницы elgg.session.user. Вы можете найти её атрибуты в elgg.user в виде массива.

Безопасность

В output/url добавлены функции безопасности для предотвращения вредоносного пользовательского вывода. View поддерживает $vars['allowed_schemes'], который содержит список разрешённых схем URL. Предоставленный $vars['href'] будет проверен на соответствие разрешённому списку. Если URL не имеет разрешённой схемы, к нему будет добавлен префикс denied:.

Это поможет предотвратить отображение пользовательского ввода типа javascript:alert('just testing'); для пользователей.

По умолчанию разрешены следующие схемы: http, https, ftp, sftp, ssh, file

Если вы используете шаблон elgg_view('output/url', ['text' => 'something', 'href' => 'javascript:void(0);']), обновите код, установив href в false.

Группы

Название меню для вкладок на странице участников группы изменено для использования стандартной логики меню фильтрации. Перепишите хуки вашего плагина с menu:groups_members на menu:filter:groups/members. Поскольку это другое меню, текущая сущность группы теперь доступна в параметре хука filter_entity.

Устаревшие API

Функции библиотеки

  • elgg_view_menu_item() используйте elgg_view('navigation/menu/elements/item/url', ['item' => $myMenuItem])

  • register_error() используйте elgg_register_error_message()

  • system_message() используйте elgg_register_success_message()