С 3.2 на 3.3

Версия PHP

PHP 7.1 достиг конца жизненного цикла в декабре 2019 года. Чтобы обеспечить безопасность сайтов на Elgg, мы теперь требуем PHP 7.2 для новых установок.

При обновлении с предыдущей установки Elgg убедитесь, что у вас установлена правильная версия PHP.

Чтобы иметь возможность тестировать Elgg на PHP 7.4, нам пришлось обновить набор тестов PHPUnit до версии 8.5. Это может потребовать некоторой переработки ваших собственных модульных/интеграционных тестов.

Более простое использование макета „default“

В настоящее время распространённым шаблоном является следующее:

$title = 'All blogs';

$content = elgg_list_entities([
        'type' => 'object',
        'subtype' => 'blog',
]);

$layout = elgg_view_layout('default', [
        'title' => $title,
        'content' => $content,
]);

echo elgg_view_page($title, $layout);

Мы сделали этот шаблон более простым. Теперь вы можете передать массив параметров макета во второй параметр elgg_view_page. Функция elgg_view_page будет использовать этот массив для обёртывания его в макет „default“. Она также добавляет заголовок страницы в макет.

Новый способ сделать это:

echo elgg_view_page('All blogs', [
        'content' => elgg_list_entities([
                'type' => 'object',
                'subtype' => 'blog',
        ]),
]);

Устаревшие названия макетов

Для облегчения перехода с Elgg 2.x на 3.x мы сохранили некоторые старые названия макетов („one_sidebar“, „one_column“, „two_sidebar“ и „content“) нетронутыми при использовании в функции elgg_view_layout. Начиная с Elgg 3.3 эти названия макетов устарели, и вам следует обновить свой код для использования нового макета „default“.

При изменении использования названия макета „content“ следует учитывать, что „content“ генерирует меню фильтра. Это меню немного отличается от обычного меню „filter“, генерируемого в макете „default“. Оно использует другие названия хуков. Если вы уже отключили фильтр в своём макете, вы можете изменить макет без каких-либо проблем.

Изменения в манифесте плагина

Мы работаем над удалением файла манифеста плагина. Некоторые функции манифеста будут заменены, а некоторые — удалены. Чтобы сделать этот переход немного проще, мы уже объявили устаревшими следующие функции API ElggPluginManifest:

  • getCopyright()

  • getDonationsPageURL()

  • getSuggests() используйте suggestions в composer

Устаревшие API

  • elgg_disable_query_cache()

  • elgg_enable_query_cache()

  • elgg_format_attributes() используйте elgg_format_element()

  • elgg_flush_caches() используйте elgg_clear_caches()

  • elgg_get_menu_item()

  • elgg_get_ordered_event_handlers() используйте elgg()->events->getOrderedHandlers()

  • elgg_get_ordered_hook_handlers() используйте elgg()->hooks->getOrderedHandlers()

  • elgg_invalidate_simplecache() используйте elgg_clear_caches()

  • elgg_is_menu_item_registered()

  • elgg_view_entity_annotations()

  • execute_delayed_write_query() используйте elgg()->db->registerDelayedQuery()

  • execute_delayed_read_query() используйте elgg()->db->registerDelayedQuery()

  • run_sql_script()

  • elgg_unset_all_plugin_settings() используйте \ElggPlugin::unsetAllSettings()

  • elgg_get_file_simple_type() используйте elgg()->mimetype->getSimpleType()

  • ElggFile::detectMimeType() используйте elgg()->mimetype->getMimeType()

  • generate_action_token() используйте elgg()->csrf->generateActionToken()

  • elgg_split()

Устаревшие значения конфигурации

  • simplecache_lastupdate используйте lastcache

Устаревшие команды CLI

  • elgg-cli flush используйте elgg-cli cache:clear

Устаревшие хуки

  • entity:annotate, <entity_type>