De 4.x à 5.0

CKEditor

L’éditeur a été mis à jour vers la version 5. Cela apporte quelques nouvelles fonctionnalités (comme les mentions et les images dans le contenu) mais impacte également les plugins existants. Les plus notables sont The Wire (qui a désormais également mentionné le support) et la suppression du plugin Embed.

Le menu “longtext” associé n’est plus disponible.

Composer

Pré-requis PHP

La version minimale de PHP est maintenant 8.0.

Faker

La bibliothèque faker n’est plus maintenue par fzaninotto, nous sommes donc passés à un fork qui est maintenu par FakerPHP.

Événements et Hooks

Ces deux concepts similaires ont été fusionnés et nous ne ferons désormais référence qu’à des événements. Les « crochets » du service public n’existent plus. Tous les hooks peuvent maintenant être enregistrés dans la section « événements » de votre plugin. Si vous utilisez des rappels de hook qui attendent un argument ElggHook d’indication de type, vous devrez le mettre à jour vers ElggEvent.

Créer un événement

Les événements create, <object|group|user|site> ne peuvent plus être utilisés pour empêcher la création de l’entité. Utilisez create:before si vous souhaitez empêcher la création.

Paramètres privés

Le concept de paramètres privés a été supprimé du système. Tous les paramètres privés ont été copiés dans les métadonnées. Toutes les fonctions associées ont été supprimées.

Mises à niveau

Les mises à niveau asynchrones ou système ne sont plus des classes qui implémentent des interfaces, mais étendent des classes abstraites. Mettez à jour vos mises à niveau pour étendre les classes appropriées. La raison de ce changement est de pouvoir accéder à l’entité ElggUpgrade à partir du Batch qui exécute une partie de la mise à niveau. Vous pouvez accéder à la mise à niveau en appelant $this->getUpgrade().

Session

Si vous utilisez le service de session directement (ou via elgg_get_session()), vous devrez peut-être mettre à jour votre code. Diverses fonctions de cette classe ont été déplacées vers le service elgg()->session_manager.

Gestionnaires d’accès

Le middleware PageOwnerCanEditGatekeeper requiert désormais de définir un propriétaire de page. Ce contrôleur d’accès requiert désormais également un utilisateur connecté à tout moment.

Plugin Files

Les fichiers téléchargés à l’aide du plugin de fichiers « file » ne sont plus stockés avec le propriétaire mais avec l’entité du fichier. Les icônes de fichiers ont également été modifiées. Les images d’icônes ne sont disponibles que pour les types de fichiers image. La taille des icônes a été modifiée pour utiliser les tailles d’icône par défaut.

Plugin Embed

Le plugin embed a été supprimé.

JavaScript

Hooks système

Les fonctions de hook javascript ont été déplacées vers un module AMD. Si vous avez utilisé des hooks javascript, vous devez mettre à jour votre code pour utiliser le module elgg/hook. Le concept de “hooks instantanés” n’est plus présent dans le système.

L’événement 'init', 'system' n’est plus déclenché en javascript.

Fonctions supprimées

  • elgg.is_in_object_array

  • elgg.is_instant_hook

  • elgg.is_triggered_hook

  • elgg.push_to_object_array

  • elgg.register_hook_handler utilise la fonction register fournie par le module elgg\hooks

  • elgg.register_instant_hook

  • elgg.set_triggered_hook

  • elgg.trigger_hook utilisez la fonction trigger fournie par le module elgg\hooks

Exceptions

L’utilisation des exceptions dans Elgg a été revisitée. \Elgg\Exceptions\InvalidParameterException a été supprimé et remplacé par l’exception correcte. L’utilisation de \Elgg\Exceptions\InvalidArgumentException a également été vérifiée. Dans certains cas, l’exception a été remplacée par une exception plus appropriée.

ElggRiverItem

Il n’est désormais plus permis de définir des données arbitraires pendant l’exécution sur un ElggRiverItem. Étant donné que les données n’étaient disponibles que pendant l’exécution et n’étaient pas enregistrées dans la base de données, cette distinction a été supprimée. Lors de la définition d’un attribut non pris en charge, une \Elgg\Exceptions\RuntimeException est levée.

// this is allowed
$item = new \ElggRiverItem();
$item->subject_guid = elgg_get_logged_in_user_guid();

// this is no longer allowed (causes an \Elgg\Exceptions\RuntimeException)
$item = new \ElggRiverItem();
$item->foo = 'bar';

Options des métadonnées dans les fonctions de récupération (« getter »)

Auparavant, il existait une magie qui transformait la chaîne metadata_value en tableau si elle contenait un ,.

Cette magie a été supprimée. Vous devez maintenant fournir le tableau vous-même. En raison de cette magie, il était impossible de rechercher une valeur de métadonnées contenant un ,.

// previously
$options = [
        'metadata_name_value_pairs' => [
                'some_name' => 'some_value1, some_value2',
        ],
];

// would result into, thus giving it an OR value
$options = [
        'metadata_name_value_pairs' => [
                'name' => 'some_name',
                'value' => [
                        'some_value1',
                        'some_value2',
                ],
                'operand' => '=',
        ],
];

Modification dans les fonctions

Les fonctions suivantes ont maintenant leurs arguments et/ou valeurs de retour typées, ce qui peut provoquer des erreurs TypeError. De plus, certaines fonctions de classe ont leur type de valeur de retour indiqué et vous devez mettre à jour la définition de votre fonction. Certaines fonctions peuvent avoir leurs arguments modifiés, ou le type de retour a été modifié.

Types de retour des fonctions des bibliothèques

  • elgg_add_admin_notice() renvoie maintenant null en cas d’erreur au lieu d’un bool

  • elgg_create_river_item() renvoie désormaisun ElggRiverItem, ou null en cas d’échec

  • elgg_delete_metadata() ne renvoie plus null

  • elgg_delete_river() ne renvoie plus null

  • elgg_deprecated_notice() ne renvoie plus bool

  • elgg_generate_entity_url() renvoie maintenant null en cas d’erreur au lieu d’un bool

  • elgg_generate_url() renvoie maintenant null en cas d’erreur au lieu d’un bool

  • elgg_get_annotation_from_id() renvoie désormais null au lieu d’un bool si aucune annotation n’est trouvée

  • elgg_get_download_url() renvoie maintenant null en cas d’erreur

  • elgg_get_entity_as_row() renvoie désormais null au lieu d’un bool si aucune entité n’est trouvée

  • elgg_get_entity_dates() ne renvoie plus un bool

  • elgg_get_form_footer() ne renvoie plus un bool

  • elgg_get_inline_url() renvoie maintenant null en cas d’erreur

  • elgg_get_metadata_from_id() renvoie désormais null si aucune métadonnée n’a pu être trouvée

  • elgg_get_page_owner_entity() renvoie désormais null si le propriétaire de la page n’a pas pu être trouvé

  • elgg_get_river_item_from_id() renvoie désormais null si aucun élément de rivière n’a pu être trouvé

  • elgg_get_system_cache() renvoie désormais une instance de \Elgg\Cache\BaseCache au lieu de \ElggCache

  • elgg_get_uploaded_file() renvoie désormais null si aucun fichier n’a pu être trouvé ou si le fichier n’était pas valide

  • elgg_normalize_site_url() renvoie désormais null lorsque l’URL n’est pas une URL de site

  • elgg_register_action() ne renvoie plus un bool

  • elgg_register_menu_item() n’a plus de valeur de retour

  • elgg_register_widget_type() n’a plus de valeur de retour

  • elgg_set_form_footer() n’a plus de valeur de retour

  • elgg_trigger_after_event() n’a plus de valeur de retour

  • elgg_unregister_action() n’a plus de valeur de retour

  • elgg_unregister_event_handler() n’a plus de valeur de retour

  • elgg_unregister_notification_event() n’a plus de valeur de retour

  • elgg_unregister_notification_method() n’a plus de valeur de retour

  • elgg_unregister_widget_type() n’a plus de valeur de retour

  • elgg_view_annotation() ne renvoie plus un bool

  • elgg_view_comments() ne renvoie plus un bool

  • elgg_view_list_item() ne renvoie plus un bool

  • elgg_view_relationship() ne renvoie plus un bool

  • get_entity() renvoie désormais null au lieu d’un bool si aucune entité n’est trouvée

  • get_user() renvoie désormais null au lieu d’un bool si aucun utilisateur n’est trouvé

  • elgg_ws_expose_function() ne renvoie plus un bool

Paramètres de fonction des fonctions des bibliothèques

  • blog_prepare_form_vars() requiert désormais un ElggBlog pour $blog et un ElggAnnotation pour $revision

  • bookmarks_prepare_form_vars() requiert désormais un ElggBookmark pour $bookmark

  • discussion_prepare_form_vars() requiert désormais un ElggDiscussion pour $topic

  • elgg_add_action_tokens_to_url() requiert désormais un string pour $url et un bool pour $html_encode

  • elgg_can_edit_widget_layout() requiert désormais un string pour $context et un int pour $user_guid

  • elgg_clear_event_handlers() requiert désormais un string pour $event et $type

  • elgg_clear_sticky_form() requiert désormais un string pour $context

  • elgg_create_widget() requiert désormais un int pour $owner_guid et $access_id et un string pour $handler et $context

  • elgg_define_js() requiert désormais un string pour $name et un array pour $config

  • elgg_delete_system_cache() requiert désormais un string pour $type

  • elgg_echo() requiert désormais un string pour $message_key et un string pour $language

  • elgg_enqueue_notification_event() n’a plus besoin d’un $type

  • elgg_entity_exists() requiert désormais un int pour $guid

  • elgg_entity_gatekeeper() requiert désormais un int pour $guid, un string pour $type, un string pour $subtype et un bool pour $validate_can_edit

  • elgg_error_response() requiert désormais un string ou un array pour $message et un string pour $forward_url

  • elgg_extend_view() requiert désormais un string pour $view et $view_extension

  • elgg_extract() requiert désormais un bool pour $strict

  • elgg_format_bytes() requiert désormais un int pour $size et $precision

  • elgg_format_element() requiert désormais un string pour $tag_name et un string pour $text

  • elgg_format_html() requiert désormais un string pour $html

  • elgg_generate_action_url() requiert désormais un string pour $action et un booléen pour $add_csrf_tokens

  • elgg_generate_entity_url() requiert désormais un string pour $resource et $subresource

  • elgg_generate_url() requiert désormais un string pour $name

  • elgg_get_config() requiert désormais un string pour $name

  • elgg_get_download_url() requiert désormais un bool pour $use_cookie et un string pour $expires

  • elgg_get_embed_url() requiert désormais un string pour $size

  • elgg_get_entity_class() requiert désormais un string pour $type et un string pour $subtype

  • elgg_get_excerpt() requiert désormais un string pour $text et un int pour $num_chars

  • elgg_get_friendly_upload_error() requiert désormais un int pour $error_code

  • elgg_get_friendly_time() requiert désormais un int pour $time et $current_time

  • elgg_get_friendly_title() requiert désormais un string pour $title

  • elgg_get_icon_sizes() requiert désormais un string pour $entity_type et $entity_subtype

  • elgg_get_ini_setting_in_bytes() requiert désormais un string pour $setting

  • elgg_get_inline_url() requiert désormais un bool pour $use_cookie et un string pour $expires

  • elgg_get_login_url() requiert désormais un string pour $fragment

  • elgg_get_metadata_from_id() requiert désormais un int pour $id

  • elgg_get_registration_url() requiert désormais un string pour $fragment

  • elgg_get_request_data() requiert désormais un bool pour $filter_result

  • elgg_get_simplecache_url() requiert désormais un string pour $view et $sub_view

  • elgg_get_sticky_value() requiert désormais un string pour $form_name et une chaine de caractères pour $variable et un a bool pour $filter_result

  • elgg_get_sticky_values() requiert désormais un string pour $form_name et un bool pour $filter_result

  • elgg_get_title_input() requiert désormais un string pour $variable et une chaîne de caractères pour $default

  • elgg_get_uploaded_file() requiert désormais un string pour $input_name et un bool pour $check_for_validity

  • elgg_get_uploaded_files() requiert désormais un string pour $input_name

  • elgg_get_view_extensions() requiert désormais un string pour $view

  • elgg_get_widget_types() requiert désormais un string ou un array pour $context

  • elgg_get_widgets() requiert désormais un int pour $owner_guid et un string pour $context

  • elgg_group_tool_gatekeeper() requiert désormais un string pour $tool_name et un int pour $group_guid

  • elgg_html_decode() requiert désormais un string pour $string

  • elgg_http_add_url_query_elements() requiert désormais un string pour $url

  • elgg_http_build_url() requiert désormais un bool pour $html_encode

  • elgg_http_get_signed_url() requiert désormais un string pour $url et $expires

  • elgg_http_remove_url_query_element() requiert désormais un string pour $url et un string pour $element

  • elgg_http_url_is_identical() requiert désormais un string pour $url1 et $url2 et un array pour $ignore_params

  • elgg_http_validate_signed_url() requiert désormais un string pour $url

  • elgg_in_context() requiert désormais un string pour $context

  • elgg_is_sticky_form() requiert désormais un string pour $form_name

  • elgg_is_widget_type() requiert désormais un string pour $handler et $context

  • elgg_language_key_exists() requiert désormais un string pour $key et un string pour $language

  • elgg_list_entities() requiert désormais un callable pour $getter et un callable pour $viewer

  • elgg_list_entities_from_relationship_count() requiert désormais un array pour $options

  • elgg_list_relationships() requiert désormais un array pour $options

  • elgg_load_system_cache() requiert désormais un string pour $type

  • elgg_make_sticky_form() requiert désormais un string pour $form_name

  • elgg_normalize_site_url() requiert désormais un string pour $unsafe_url

  • elgg_normalize_url() requiert désormais un string pour $url

  • elgg_ok_response() requiert désormais un string ou un array pour $message et un string pour $forward_url

  • elgg_parse_emails() requiert désormais un string pour $text

  • elgg_push_context() requiert désormais un string pour $context

  • elgg_redirect_response() requiert désormais un string pour $forward_url

  • elgg_register_action() requiert désormais un string pour $filename

  • elgg_register_ajax_view() requiert désormais un string pour $view

  • elgg_register_error_message() requiert désormais un string|array pour $message

  • elgg_register_event_handler() requiert désormais un string pour $event et $type et un int pour $priority et un callable|string pour $callable

  • elgg_register_menu_item() requiert désormais un string pour $menu_name et un array|\ElggMenuItem pour $menu_item

  • elgg_register_notification_event() requiert désormais un string pour $object_type et $object_subtype

  • elgg_register_notification_method() requiert désormais un string pour $name

  • elgg_register_route() requiert désormais un string pour $name

  • elgg_register_simplecache_view() requiert désormais un string pour $view_name

  • elgg_register_success_message() requiert désormais un string|array pour $message

  • Le premier argument ($handler) de elgg_register_title_button() a été supprimé et requiert un string pour $name, $entity_type et $entity_subtype

  • elgg_register_viewtype_fallback() requiert désormais un string pour $viewtype

  • elgg_register_widget_type() ne supporte plus pour $options qu’un array adapté pour \Elgg\WidgetDefinition::factory()

  • elgg_remove_config() requiert désormais un string pour $name

  • elgg_require_js() requiert désormais un string pour $name

  • elgg_save_config() requiert désormais un string pour $name

  • elgg_save_resized_image() requiert désormais un string pour $source et un string pour $destination

  • elgg_save_system_cache() requiert désormais un string pour $type

  • elgg_set_config() requiert désormais un string pour $name

  • elgg_set_context() requiert désormais un string pour $context

  • elgg_set_entity_class() requiert désormais un string pour $type et un string pour $subtype et un string pour $class

  • elgg_set_form_footer() requiert désormais un string pour $footer

  • elgg_set_http_header() requiert désormais un string pour $header et un bool pour $replace

  • elgg_set_page_owner_guid() requiert désormais un int pour $guid

  • elgg_set_view_location() requiert désormais un string pour $view, $location et $viewtype

  • elgg_set_viewtype() requiert désormais un string pour $viewtype

  • elgg_strip_tags() requiert désormais un string pour $string et $allowable_tags

  • elgg_trigger_after_event() requiert désormais un string pour $event et $type

  • elgg_trigger_before_event() requiert désormais un string pour $event et $type

  • elgg_trigger_deprecated_event() requiert désormais un string pour $event, $type, $message et $version

  • elgg_trigger_event() requiert désormais un string pour $event et $type

  • elgg_unregister_ajax_view() requiert désormais un string pour $view

  • elgg_register_event_handler() requiert désormais un string pour $event et $type et un callable|string pour $callable

  • elgg_unregister_menu_item() requiert désormais un string pour $menu_name et $item_name

  • elgg_unregister_notification_event() requiert désormais un string pour $object_type et $object_subtype

  • elgg_unregister_notification_method() requiert désormais un string pour $name

  • elgg_unregister_route() requiert désormais un string pour $name

  • elgg_unregister_widget_type() requiert désormais un string pour $handler

  • elgg_unrequire_js() requiert désormais un string pour $name

  • elgg_validate_invite_code() requiert désormais un string pour $username et $code

  • elgg_validate_registration_data() requiert désormais un string pour $username, $name et $email, un bool pour $multiple et un string|array pour $password

  • elgg_view() requiert désormais un string pour $view et $viewtype et un bool pour $recurse

  • elgg_view_annotation_list() requiert désormais un array pour $annotations

  • elgg_view_deprecated() requiert désormais un string pour $view, $message et $version

  • elgg_view_comments() requiert désormais un ElggEntity pour $entity et un bool pour $add_comment

  • elgg_view_entity_icon() requiert désormais un string pour $size et un array pour $vars

  • elgg_view_entity_list() requiert désormais un array pour $entities

  • elgg_view_exists() requiert désormais un string pour $view et $viewtype et un array pour $vars

  • elgg_view_form() requiert désormais un string pour $action et un array pour $form_vars et $body_vars

  • elgg_view_icon() requiert désormais un string pour $name et un array pour $vars

  • elgg_view_image_block() requiert désormais un string pour $type, $title et $body

  • elgg_view_layout() requiert désormais un string pour $layout_name et un array pour $vars

  • elgg_view_message() requiert désormais un string pour $type et $body

  • elgg_view_page() requiert désormais un string pour $title et $page_shell, un array pour $vars et un string|array pour $body

  • elgg_view_relationship_list() requiert désormais un array pour $relationships

  • elgg_view_river_item() requiert désormais un ElggRiverItem pour $item

  • elgg_view_resource() requiert désormais un string pour $name

  • elgg_view_title() requiert désormais un string pour $title

  • embed_get_list_options() requiert désormais un array pour $options

  • embed_list_items() requiert désormais un array pour $entities et $vars

  • file_prepare_form_vars() requiert désormais un ElggFile pour $file

  • get_entity() requiert désormais un int pour $guid

  • get_input() requiert désormais un string pour $variable et un bool pour $filter_result

  • get_user() requiert désormais un int pour $guid

  • groups_get_group_join_menu_item() requiert désormais un ElggUser pour $user

  • groups_get_group_leave_menu_item() requiert désormais un ElggUser pour $user

  • groups_get_invited_groups() requiert désormais un int pour $user_guid, un bool pour $return_guids et un array pour $options

  • notify_user() requiert désormais un int|array pour $to et un int pour $from et un string pour $subject et $message

  • pages_get_navigation_tree() requiert désormais un ElggEntity pour $container

  • pages_prepare_form_vars() requiert désormais un ElggPage pour $page, un int pour $parent_guid et un ElggAnnotation pour $revision

  • pages_prepare_parent_breadcrumbs() requiert désormais un ElggPage pour $page

  • set_input() requiert désormais un string pour $variable

  • thewire_filter() requiert désormais un string pour $text

  • thewire_get_hashtags() requiert désormais un string pour $text

  • thewire_save_post() requiert désormais un string pour $text et $method et un int pour $userid, $access_id et $parent_guid

  • uservalidationbyemail_request_validation() requiert désormais un int pour $user_guid

  • elgg_ws_expose_function() requiert désormais un string pour $method, $description et $call_method, un array pour $parameters et un bool pour $require_api_auth, $require_user_auth et $assoc

  • elgg_ws_register_service_handler() requiert désormais un string pour $handler

  • elgg_ws_unexpose_function() requiert désormais un string pour $method et un string pour $http_request_method

  • elgg_ws_unregister_service_handler() requiert désormais un string pour $handler

Types de retour des fonctions de classes

  • \ElggEntity::deleteMetadata() ne renvoie plus null

  • \ElggEntity::getOwnedAccessCollection() ne renvoie plus false mais null quand aucune collection d’accès n’a été trouvée

  • \ElggEntity::setContainerGUID() ne renvoie plus un int

  • \ElggFile::getDownloadURL() renvoie maintenant null en cas d’erreur

  • \ElggFile::getInlineURL() renvoie maintenant null en cas d’erreur

  • \ElggMenuItem::factory() ne renvoie plus null en cas d’erreur

  • \Elgg\Page::getParentEntity() ne renvoie plus false mais null si aucune entité parente n’a été trouvée

Paramètres de la fonction de classe

  • \ElggAccessCollection::getObjectFromID() requiert désormais un int pour $id

  • \ElggAnnotation::getObjectFromID() requiert désormais un int pour $id

  • \ElggEntity::addRelationship() requiert désormais un int pour $guid_two et un string pour $relationship

  • \ElggEntity::cache() requiert désormais un bool pour $persist

  • \ElggEntity::canAnnotate() requiert désormais un int pour $user_guid et un string pour $annotation_name

  • \ElggEntity::canComment() requiert désormais un int pour $user_guid

  • \ElggEntity::canDelete() requiert désormais un int pour $user_guid

  • \ElggEntity::canEdit() requiert désormais un int pour $user_guid

  • \ElggEntity::canWriteToContainer() requiert désormais un int pour $user_guid et un string pour $type et $subtype

  • \ElggEntity::countAnnotations() requiert désormais un string pour $name

  • \ElggEntity::countEntitiesFromRelationship() requiert désormais un string pour $relationship et un bool pour $inverse_relationship

  • \ElggEntity::delete() requiert désormais un bool pour $recursive

  • \ElggEntity::deleteAnnotations() requiert désormais un string pour $name

  • \ElggEntity::deleteIcon() requiert désormais un string pour $type

  • \ElggEntity::deleteMetadata() requiert désormais un string pour $name

  • \ElggEntity::deleteOwnedAnnotations() requiert désormais un string pour $name

  • \ElggEntity::disable() requiert désormais un string pour $reason et un bool pour $recursive

  • \ElggEntity::disableAnnotations() requiert désormais un string pour $name

  • \ElggEntity::enable() requiert désormais un bool pour $recursive

  • \ElggEntity::enableAnnotations() requiert désormais un string pour $name

  • \ElggEntity::getAnnotationsAvg() requiert désormais un string pour $name

  • \ElggEntity::getAnnotationsMax() requiert désormais un string pour $name

  • \ElggEntity::getAnnotationsSum() requiert désormais un string pour $name

  • \ElggEntity::getIcon() requiert désormais un string pour $size et $type

  • \ElggEntity::getIconLastChange() requiert désormais un string pour $size et $type

  • \ElggEntity::getIconURL() requiert désormais un string ou un array pour $params

  • \ElggEntity::getObjectFromID() requiert désormais un int pour $id

  • \ElggEntity::getOwnedAccessCollections() requiert désormais un array pour $options

  • \ElggEntity::getOwnedAccessCollection() requiert désormais un string pour $subtype

  • \ElggEntity::getMetadata() requiert désormais un string pour $name

  • \ElggEntity::getVolatileData() requiert désormais un string pour $name

  • \ElggEntity::hasIcon() requiert désormais un string pour $size et $type

  • \ElggEntity::removeAllRelationships() ne permet plus de transmettre null à $relationship

  • \ElggEntity::removeRelationship() requiert désormais un int pour $guid_two et un string pour $relationship

  • \ElggEntity::saveIconFromElggFile() requiert désormais un string pour $type

  • \ElggEntity::saveIconFromLocalFile() requiert désormais un string pour $input_name et $type

  • \ElggEntity::saveIconFromUploadedFile() requiert désormais un string pour $input_name et $type

  • \ElggEntity::setContainerGUID() requiert désormais un int pour $container_guid

  • \ElggEntity::setDisplayName() requiert désormais un string pour $display_name

  • \ElggEntity::setMetadata() requiert désormais un string pour $name et $value_type et un bool pour $multiple

  • \ElggEntity::setTempMetadata() requiert désormais un string pour $name et un bool pour $multiple

  • \ElggEntity::setVolatileData() requiert désormais un string pour $name

  • \ElggEntity::updateLastAction() requiert désormais un int pour $posted

  • \ElggMetadata::getObjectFromID() requiert désormais un int pour $id

  • \ElggRelationship::getObjectFromID() requiert désormais un int pour $id

  • \ElggFile::getDownloadURL() requiert désormais un bool pour $use_cookie et un string pour $expires

  • \ElggFile::getInlineURL() requiert désormais un bool pour $use_cookie et un string pour $expires

  • \ElggGroup::isToolEnabled() requiert désormais un string pour $name

  • \ElggMenuItem::factory() requiert désormais un array pour $options

  • \ElggTempFile::getDownloadURL() requiert désormais un bool pour $use_cookie et un string pour $expires

  • \ElggTempFile::getInlineURL() requiert désormais un bool pour $use_cookie et un string pour $expires

  • \Elgg\WebServices\Di\ApiRegistrationService::registerApiMethod() requiert désormais un \Elgg\WebServices\ApiMethod comme unique paramètre

Classes déplacées

  • \ElggAutoP a été déplacé vers \Elgg\Views\AutoParagraph

  • \ElggCache a été déplacé vers \Elgg\Cache\BaseCache

  • \ElggDiskFilestore a été déplacé vers \Elgg\Filesystem\Filestore\DiskFilestore

  • \ElggFilestore a été déplacé vers \Elgg\Filesystem\Filestore

  • \ElggRewriteTester a été déplacé vers \Elgg\Router\RewriteTester

  • \ElggTempDiskFilestore a été déplacé vers \Elgg\Filesystem\Filestore\TempDiskFilestore

  • \Elgg\Database\SiteSecret a été déplacé vers \Elgg\Security\SiteSecret

APIs dépréciées

  • elgg_clear_plugin_hook_handlers utilisez elgg_clear_event_handlers

  • elgg_register_plugin_hook_handler utilisez elgg_register_event_handler

  • elgg_trigger_plugin_hook utilisez elgg_trigger_event_results

  • elgg_unregister_plugin_hook_handler utilisez elgg_unregister_event_handler

  • get_user_by_email utilisez elgg_get_user_by_email

  • get_user_by_username utilisez elgg_get_user_by_username

Classes retirées

  • Elgg\WebServices\ApiKeyForm

  • Loggable cette interface a été fusionnée dans la classe ElggData

Fonctions supprimées

  • blog_prepare_form_vars

  • bookmarks_prepare_form_vars

  • discussion_prepare_form_vars

  • elgg_get_breadcrumbs

  • elgg_pop_breadcrumb

  • elgg_set_email_transport utilisez _elgg_services()->set('mailer', ...)

  • elgg_trigger_deprecated_plugin_hook

  • elgg_ws_expose_function utilisez elgg-plugin.php ou l’événement 'register', 'api_methods'

  • file_prepare_form_vars

  • get_user_by_email utilisez elgg_get_user_by_email

  • get_user_by_username utilisez elgg_get_user_by_username

  • groups_prepare_form_vars

  • messages_prepare_form_vars

  • pages_prepare_form_vars

  • thewire_latest_guid

Fonctions de classe supprimées

  • \ElggWidget::saveSettings()

Événements supprimés

  • access:collections:addcollection, collection utilisez la séquence create, access_collection

  • access:collections:deletecollection, collection utilisez la séquence delete, access_collection

  • prepare, breadcrumbs utilisez register, menu:breadcrumbs

  • widget_settings, <widget_handler>

Exceptions supprimées

  • \Elgg\Exceptions\InvalidParameterException

Constantes

  • La constante REFERER mal orthographiée a été supprimée. Utilisez plutôt REFERRER.

  • La constante REFERRER a été remplacée par une chaîne de caractères avec la valeur __elgg_referrer