De 3.x à 4.0
Composer
Pré-requis PHP
Pour être compatible avec PHP 8, nous devions augmenter la version minimale de PHP à 7.4. Les versions PHP < 7.4 sont déjà en fin de vie.
Projet composer
La racine du projet composer n’est plus gérée comme un plugin semi-fonctionnel. Les langues du répertoire languages ne sont plus importées, les vues du répertoire views ne sont plus enregistrées, les services PHP DI du elgg-services.php ne sont plus enregistrés et le fichier start.php n’est plus inclus.
Si vous avez besoin d’une modification spécifique à votre installation Elgg, vous devez créer un plugin et vous assurer que le plugin est le dernier dans l’ordre des plugins pour vous permettre de surcharger tout ce que vous avez besoin de changer.
Doctrine DBAL
Elgg a remplacé la v2 de la dépendance doctrine/dbal par la v3. L’un des changements les plus notables est que si vous travaillez avec QueryBuilders et utilisez la fonction $qb->fetch(), vous n’obtiendrez plus un objet, mais un tableau. Si vous voulez que vos lignes soient utilisables comme classes, vous pouvez utiliser elgg()->db->getData($qb). Un autre changement important est que si vous fournissez vos propres paramètres de requête, vous ne devez plus préfixer les clés avec deux points dans les paramètres, mais continuer à le faire dans la requête.
PHP-DI
Cette fonctionnalité a été mise à jour pour utiliser la dernière version de PHP-DI. Le changement le plus notable pour Elgg est la nécessité de changer la définition de votre service de plugin pour utiliser \DI\create() au lieu de \DI\object().
ZendMail remplacé par LaminasMail
En raison de la dépréciation de la bibliothèque Zend\Mail et de son remplacement par Laminas\Mail toutes les références ont été mises à jour.
Dépendances composer supprimées
bower-asset/jquery-treeviewles js et css associés ne sont plus disponibles dans le systèmebower-asset/jquery.imgareaselectles js et css associés ne sont plus disponibles dans le systèmenpm-asset/formdata-polyfilltous les navigateurs modernes ont un support, plus besoin d’un polyfillnpm-asset/jquery-formutilisez la fonctionnalité native FormDatanpm-asset/weakmap-polyfilltous les navigateurs modernes ont un support, plus besoin d’un polyfillsimpletest/simpletest
JavaScript
AJAX
Les fonctions d’assistance Ajax suivantes ont été supprimées au profit de leurs homologues dans le module asynchrone elgg/Ajax. * elgg.action() * elgg.get() * elgg.getJSON() * elgg.post()
La fonction ajax elgg.api a été déplacée vers la fonction executeMethod dans le module asynchrone elgg/webservices du plugin webservices. D’autres fonctions et attributs elgg.ajax ont été supprimés du système. De plus, la gestion héritée des appels ajax a été supprimée du système.
Classes
La logique javascript pour démarrer automatiquement du javascript pour votre plugin et enregistrer des hooks via la classe Elgg/Plugin a été supprimée du système. Cette fonctionnalité n’a jamais été utilisée par le noyau et à peine vue dans les plugins. Utilisez le javascript chargé par AMD ou étendez elgg.js pour un javascript toujours chargé.
La classe javascript ElggPriorityList a été supprimée du système.
Hooks système
Les modules AMD pour elgg/init et elgg/ready ont été supprimés. Le hook init, system est toujours disponible, mais cela n’a de sens de s’appuyer sur ce hook que pour des bibliothèques js non chargées par AMD. Les déclencheurs boot, system et ready, system ont été supprimés du système. Remplacez par init, system pour le même effet.
jQuery
La bibliothèque jQuery a été mise à jour vers la dernière version (v3.5.x). Il s’agit d’une mise à jour majeure de la version utilisée dans Elgg 3.x. Pour plus d’informations sur ce qui a changé entre ces versions, vous devriez jeter un œil au site Web de jQuery.
jQuery UI
La bibliothèque jQuery UI a été mise à jour vers la v1.12.x. La bibliothèque n’est plus chargée en entier par défaut. Si vous devez utiliser des fonctionnalités de la bibliothèque, vous pouvez les exiger dans votre propre script. Par exemple, pour pouvoir utiliser la fonctionnalité de tri, procédez comme suit :
require('jquery-ui/widgets/sortable');
// or in your own AMD script
define(['jquery-ui/widgets/sortable'], function() {
// use the sortable
});
Changements JS divers
Le module AMD
elgg/widgetsne renvoie plus d’objet et ne vous oblige plus à appelerinitsur le module
Notifications
La gestion des notifications avant Elgg 1.9 a été supprimée. Les fonctions et hooks associés n’existent plus.
Abonnements
La relation dans la base de données qui stocke la méthode d’abonnement pour les notifications a été modifiée de notifymethod à notify:method.
Destinataires multiples
Un ElggEmail prend désormais en charge plusieurs destinataires en To, Cc et Bcc. Les fonctions de récupération associées telles que getTo() renverront désormais toujours un tableau.
Paramètres
Un stockage générique pour les préférences de notification a été introduit dans \ElggUser::setNotificationSetting() et \ElggUser::getNotificationSettings(), les paramètres de notification ont maintenant un but “purpose”.
Par exemple, group_join peut être utilisé pour gérer l’abonnement par défaut que vous obtenez avec un groupe lorsque vous rejoignez le groupe.
Le plugin Notifications a une gestion générique de l’affichage et de l’enregistrement des paramètres. Pour afficher le paramètre, étendez la vue notifications/settings/records (pluriel) avec une vue qui utilise notifications/settings/record (singulier).
Lors de la demande de paramètres de notification autres que le paramètre par défaut, si l’utilisateur n’a pas encore enregistré de paramètre, cela reviendra aux paramètres de notification par défaut.
La gestion des préférences de notification pour l’ajout de nouveaux utilisateurs à une collection d’amis a été supprimée.
Salutation et signature de la notification
Pour pouvoir avoir une salutation et une signature plus génériques pour les notifications de courrier sortant, nous avons supprimé ces textes de diverses chaînes de traduction et les avons déplacés vers des traductions génériques. Cela signifie que vous devrez mettre à jour vos traductions pour refléter le nouveau texte et également vérifier votre code pour les utilisations des notifications où vous fournissez votre propre texte de salutation ou de signature. Vous pouvez en savoir plus sur ce nouveau comportement dans Notifications.
Plugin Notifications
Le plugin Notifications a été supprimé. Toutes les fonctionnalités du plugin font désormais partie du noyau Elgg. Certaines pages (comme les paramètres de notification de groupe) ont été déplacées vers le bon plugin.
Cela signifie que les gestionnaires d’événements, les gestionnaires de hooks, les actions, les vues et les clefs de langue ont été déplacés, retirés ou renommés.
Gestion de l’événement de notification
Les hooks de notification ne reçoivent plus le paramètre origin.
Notification sur le site
Le plugin de notifications du site affiche désormais l’objet de la notification par défaut. Si une notification de site a été créée avec la fonction d’usine SiteNotification::factory(), davantage d’informations de la notification d’origine sont stockées avec la notification de site :
Le sujet de la notification
subjectest stocké danstitleLe résumé de la notification
summaryest stocké danssummaryLe corps de la notification
bodyest stocké dansdescription
Séparation de OkResponse, ErrorResponse et RedirectResponse
Les classes Elgg\Http\ErrorResponse et Elgg\Http\RedirectResponse étaient des extensions de Elgg\Http\OkReponse, ce qui compliquait la validation des réponses (par exemple dans les hooks). Les classes ont été séparées pour permettre des contrôles plus faciles et plus clairs.
Toutes les classes étendent maintenant Elgg\Http\Response et implémentent Elgg\Http\ReponseBuilder. Le code d’erreur HTTP par défaut lors de l’utilisation de elgg_error_response() a été modifié pour renvoyer un code d’état 400.
Modèle de données
Modifications de schéma
Les colonnes
access_id,owner_guidetenableddans la tablemetadataont été suppriméesLa colonne
enableddans la tablerivera été suppriméeLa colonne
relationshipdans la tableentity_relationshipsa maintenant une longueur maximale de 255 (au lieu de 50)
Attributs ElggEntity
Définir les attributs type, subtype et enabled d’une ElggEntity n’est plus possible en utilisant la fonction de définition magique. Changer le type n’est plus possible, utilisez la classe de base correcte pour votre entité (ex. ElggObject, ElggGroup ou ElggUser).
Pour changer le subtype utilisez la fonction setSubtype($subtype)
// this no longer works and throws an \Elgg\Exceptions\InvalidArgumentException
$object = new ElggObject();
$object->subtype = 'my_subtype';
// The correct use is
$object->setSubtype('my_subtype');
Pour changer l’état activé enabled d’une entité utilisez les fonctions correctes
// this no longer works and throws an \Elgg\Exceptions\InvalidArgumentException
$object = new ElggObject();
$object->enabled = 'no';
// The correct use is
$object->enable(); // to enable
$object->disable(); // to disable
Attributs ElggUser
La définition des métadonnées admin et banned d’un ElggUser n’est plus possible en utilisant la fonction de définition magique.
Pour changer l’état d’administrateur admin, utilisez les fonctions makeAdmin() and removeAdmin()
// this no longer works and throws an \Elgg\Exceptions\InvalidArgumentException
$user = new ElggUser()
$user->admin = 'yes';
// The correct use is
$user->makeAdmin(); // to give the admin role
$user->removeAdmin(); // to remove the admin role
Pour changer l’état de bannissement banned, utilisez les fonctions ban() et unban()
// this no longer works and throws an \Elgg\Exceptions\InvalidArgumentException
$user = new ElggUser()
$user->banned = 'yes';
// The correct use is
$user->ban(); // to ban the user
$user->unban(); // to unban the user
Développement de plugin
Initialisation du plugin
Les fichiers suivants ne sont plus inclus lors de l’amorçage d’un plugin :
activate.phputilisezPluginBootstrap->activate()deactivate.phputilisezPluginBootstrap->deactivate()views.phputilisezelgg-plugin.phpstart.phputilisezelgg-plugin.phpet/ouPluginBootstrap
Manifeste du plugin
Le fichier manifeste du plugin n’est plus utilisé. Des éléments du manifeste ont été supprimés ou déplacés vers différents emplacements.
Il n’est plus possible d’exiger un paramètre php ini spécifique.
pré-requis de version de php -> composer require
pré-requis d’extension php -> composer require
conflits du plugin -> conflits composer
pré-requis du plugin -> elgg-plugin
pré-requis de position du plugin -> elgg-plugin
version du plugin -> elgg-plugin
activation du plugin lors de l’installation -> elgg-plugin
nom du plugin -> elgg-plugin
description du plugin -> composer.json
catégories du plugin -> composer.json
licence du plugin -> composer.json
lien vers le repo du plugin -> composer.json
lien de publication du plugin -> composer.json
lien vers la page d’accueil du plugin -> composer.json
auteurs/contributeurs du plugin -> composer.json
Configurations de champ hookables
Certains plugins avaient la possibilité de configurer les champs des entités dans leur configuration. Ces fonctionnalités ont été remplacées par un service central qui fournit un mécanisme pour demander une configuration de champ hookable pour un certain type/sous-type.
Vous pouvez demander ces configurations à l’aide du code suivant :
$fields = elgg()->fields->get('<entity_type>', '<entity_subtype');
Les résultats seront un tableau avec des configurations de champs utilisables dans elgg_view_field($field)
La fonctionnalité associée suivante a été remplacée par cette nouvelle méthode :
La configuration pour
pagesn’est plus disponible danselgg_get_config('pages')utilisezelgg()->fields->get('object', 'page')La configuration pour
groupn’est plus disponible danselgg_get_config('group')utilisezelgg()->fields->get('group', 'group')La configuration de
profile_fieldsn’est plus disponible danselgg_get_config('profile_fields')utilisezelgg()->fields->get('user', 'user')La configuration de
pages,groupetuser:profileviaelgg_set_confign’est plus possible. Utilisez une fonction de rappel sur le hookfields, <entity_type>:<entity_subtype>.Le hook
profile:fields, groupa été remplacé par le nouveau hookfields, group:groupLe hook
profile:fields, usera été remplacé par le nouveau hookfields, user:user
Enregistrement des noms de métadonnées de balise
En raison de diverses limitations de cette implémentation, elle a été supprimée du système. Les fonctions d’API associées suivantes ont été supprimées :
elgg_get_registered_tag_metadata_names()elgg_register_tag_metadata_name()elgg_unregister_tag_metadata_name()
Si vous avez besoin que des champs spécifiques puissent être recherchés, vous devez les enregistrer avec les crochets search:fields associés. Les clés de langue des balises tagnames:xxx associées ne sont plus enregistrées dans le système.
La fonction ElggEntity::getTags() renverra désormais uniquement les métadonnées de balise avec le nom tags par défaut. Si vous souhaitez vérifier des champs supplémentaires contenant des balises, vous devez le demander spécifiquement.
Widgets par défaut
La gestion magique de la création de widgets par défaut a été réduite. Vous devez maintenant enregistrer le rappel Elgg\Widgets\CreateDefaultWidgetsHandler dans l’événement lorsque vous souhaitez que les widgets par défaut soient créés. La configuration default_widget_info n’est plus présente dans le système. Utilisez le hook get_list, default_widgets pour obtenir la valeur.
Vous devez également mettre à jour les données de votre gestionnaire de hook get_list, default_widgets pour renvoyer event_name (anciennement event) et event_type.
Permissions du conteneur
Les paramètres de fonction pour ElggEntity::canWriteToContainer() nécessitent maintenant un $type et un $subtype à transmettre. Il s’agit de donner plus d’informations au hook résultant afin de pouvoir déterminer si un utilisateur est autorisé à accéder en écriture au conteneur.
Plugins
Plugin Activity
Ce plugin a reçu une réécriture bien nécessaire. Les différentes pages (all/owner/friends) ont maintenant leurs propres vues de ressources et de listes.
Plugin Diagnostics
Ce plugin a été supprimé, mais l’action pour générer un rapport est toujours disponible. Vous pouvez le trouver sur la page d’administration Information/Server.
Plugin Discussions
Ce plugin n’ajoute plus d’onglet au menu des filtres sur les pages des groupes
L’élément de menu du site
discussionsest maintenant toujours présent
Plugin Search
La sortie des résultats de la recherche n’utilise plus la classe d’assistance Elgg\Search\Formatter pour la préparation du contenu du résultat. Cette logique a été entièrement déplacée dans les vues.
Les fonctions associées prepareEntity et getSearchView dans la classe Elgg\Search\Service ont été supprimées.
Le hook search:format, entity a été retiré.
Plugin Web services
Le plugin Web Services a reçu une réécriture complète, ceci est principalement lié au fonctionnement interne du plugin.
Classes retirées
ElggHMACCachea été remplacé par_elgg_services()->hmacCacheTable(pour un usage interne uniquement)Elgg\Notifications\Eventa été remplacé parElgg\Notifications\SubscriptionNotificationEvent
Fonctions supprimées
create_api_user()a été remplacé par_elgg_services()->apiUsersTable->createApiUser()create_user_token()a été remplacé par_elgg_services()->usersApiSessions->createToken()get_api_user()a été remplacé par_elgg_services()->apiUsersTable->getApiUser()get_standard_api_key_array()utilisez\Elgg\WebServices\ElggApiClient::setApiKeys()get_user_tokens()a été remplacé par_elgg_services()->usersApiSessions->getUserTokens()pam_auth_session()remove_api_user()a été remplacé par_elgg_services()->apiUsersTable->removeApiUser()remove_expired_user_tokens()a été remplacé par_elgg_services()->usersApiSessions->removeExpiresTokens()remove_user_token()a été remplacé par_elgg_services()->usersApiSessions->removeToken()send_api_call()utilisez\Elgg\WebServices\ElggApiClientsend_api_get_call()utilisez\Elgg\WebServices\ElggApiClientsend_api_post_call()utilisez\Elgg\WebServices\ElggApiClientservice_handler()validate_user_token()a été remplacé par_elgg_services()->usersApiSessions->validateToken()ws_page_handler()ws_rest_handler()a été remplacé par\Elgg\WebServices\RestServiceController
Changements divers
La valeur de configuration pour
servicehandlera été suppriméeDans certains cas extrêmes, la valeur par défaut d’un paramètre API ne sera pas appliquée
Fonctions typées
Les fonctions suivantes ont maintenant leurs arguments typés, cela peut provoquer des erreurs TypeError. De plus, certaines fonctions de classe ont une valeur de retour typée, et vous devriez mettre à jour votre définition de fonction.
Paramètres de la fonction de classe
ElggEntity::setLatLong()requiert maintenant un nombre à virgule flottantefloatpour$latet$longElggUser::setNotificationSetting()requiert maintenant une chaîne de caractèresstringpour$methodet un booléenboolpour$enabledElgg\Database\Seeds\Seed::__construct()requiert maintenant un entierintpour$limitElgg\Http\ErrorResponse::__construct()requiert maintenant un entierintpour$status_codeElgg\Http\OkResponse::__construct()requiert maintenant un entierintpour$status_codeElgg\Http\RedirectResponse::__construct()requiert maintenant un entierintpour$status_codeElgg\I18n\Translator::getInstalledTranslations()requiert maintenant un booléenboolpour$calculate_completenessSiteNotification::setActor()requiert maintenant une chaîneElggEntitypour$entitySiteNotification::setURL()requiert maintenant une chaîne de caractèresstringpour$urlSiteNotification::setRead()requiert maintenant un booléenboolpour$read
Type de retour d’une fonction de classe
Elgg\Upgrade\Batch::getVersion()requiert maintenant une valeur de retour entièreintElgg\Upgrade\Batch::shouldBeSkipped()requiert maintenant une valeur de retour booléenneboolElgg\Upgrade\Batch::needsIncrementOffset()requiert maintenant une valeur de retour booléenneboolElgg\Upgrade\Batch::countItems()requiert maintenant un entierintcomme valeur de retourElgg\Upgrade\Batch::run()requiert maintenant une valeur de retourElgg\Upgrade\Result
Paramètres de la fonction de bibliothèque
add_user_to_access_collection()requiert maintenant un entierintpour$user_guidet$collection_idcan_edit_access_collection()requiert maintenant un entierintpour$collection_idet$user_guidcreate_access_collection()requiert maintenant une chaîne de caractèresstringpour$nameet un entierintpour$owner_guiddelete_access_collection()requiert maintenant un entierintpour$collection_idelgg_action_exists()exige maintenant une chaîne de caractèresstringpour$actionelgg_add_admin_notice()requiert maintenant une chaîne de caractèresstringpour$idet$messageelgg_admin_notice_exists()requiert maintenant une chaîne de caractèresstringpour$idelgg_annotation_exists()requiert maintenant un entierintpour$entity_guid, une chaîne de caractèresstringpour$nameet un entierintpour$owner_guidelgg_delete_admin_notice()requiert maintenant une chaîne de caractèresstringpour$idelgg_delete_annotation_by_id()requiert maintenant un entierintpour$idelgg_deprecated_notice()requiert maintenant une chaîne de caractèresstringpour$msget$dep_versionelgg_error_response()requiert maintenant un entierintpour$status_codeelgg_get_access_collections()requiert maintenant un tableauarraypour$optionselgg_get_annotation_from_id()requiert maintenant un entierintpour$idelgg_get_subscriptions_for_container()requiert maintenant un entierintpour$container_guidelgg_get_plugin_from_id()requiert maintenant une chaîne de caractèresstringpour$plugin_idelgg_get_plugin_setting()requiert maintenant une chaîne de caractèresstringpour$nameet$plugin_idelgg_get_plugin_user_setting()requiert maintenant une chaîne de caractèresstringpour$nameet$plugin_idet un entierintpour$user_guidelgg_get_plugins()requiert maintenant une chaîne de caractèresstringpour$statuselgg_get_river_item_from_id()requiert maintenant un entierintpour$idelgg_list_annotations()requiert maintenant un tableauarraypour$optionselgg_ok_response()requiert maintenant un entierintpour$status_codeelgg_plugin_exists()requiert maintenant une chaîne de caractèresstringpour$plugin_idelgg_redirect_response()requiert maintenant un entierintpour$status_codeelgg_register_action()requiert maintenant une chaîne de caractèresstringpour$actionet$accesselgg_send_email()requiert maintenant un\Elgg\Emailpour$emailelgg_set_plugin_user_setting()requiert maintenant une chaîne de caractèresstringpour$nameet$plugin_idet un entierintpour$user_guidelgg_unregister_action()requiert maintenant une chaîne de caractèresstringpour$actionget_access_array()requiert maintenant un entierintpour$user_guidget_access_collection()requiert maintenant un entierintpour$collection_idget_entity_statistics()requiert maintenant un entierintpour$owner_guidget_members_of_access_collection()requiert maintenant un entierintpour$collection_idet un booléenboolpour$guids_onlyget_readable_access_level()requiert maintenant un entierintpour$entity_access_idget_write_access_array()requiert maintenant un entierintpour$user_guidet un booléenboolfor$flushhas_access_to_entity()requiert maintenant uneElggEntitypour$entityetElggUserpour$userremove_user_from_access_collection()requiert maintenant un entierintpour$user_guidet$collection_idsystem_log_get_log()requiert maintenant un tableauarraypour$optionsmessageboard_add()requiert maintenant les typesElggUser,ElggUser,stringetintelgg_register_external_file()requiert maintenant que tous les arguments soient de typestringelgg_unregister_external_file()requiert maintenant que tous les arguments soient de typestringelgg_load_external_file()requiert maintenant que tous les arguments soient de typestringelgg_get_loaded_external_files()requiert maintenant que tous les arguments soient de typestring
Modification dans les paramètres de fonction
Fonctions de classe
Elgg\Http\ResponseBuilder::setStatusCode()n’a plus de valeur par défautElggEntity::canWriteToContainer()n’a plus de valeur par défaut pour$typeet$subtypemais ces paramètres sont obligatoires
Fonctions de la bibliothèque
elgg_get_page_owner_guid()n’accepte plus$guidcomme paramètreget_access_array()n’accepte plus$flushcomme paramètreelgg_register_external_file()n’accepte plus$prioritycomme paramètre
Renommage des fonctions de callback du gestionnaire de hook/d’événement
Une attention particulière est requise si vous désenregistrez les callbacks dans vos plugins car vous devrez peut-être mettre à jour votre code.
Noyau
access_friends_acl_get_name()changé pourElgg\Friends\AclNameHandler::classaccess_friends_acl_add_friend()changé pourElgg\Friends\AddToAclHandler::classaccess_friends_acl_create()changé pourElgg\Friends\CreateAclHandler::classaccess_friends_acl_remove_friend()changé pourElgg\Friends\RemoveFromAclHandler::class_elgg_add_admin_widgets()changé pourElgg\Widgets\CreateAdminWidgetsHandler::class_elgg_admin_check_admin_validation()changé pourElgg\Users\Validation::checkAdminValidation()_elgg_admin_header_menu()changé pourElgg\Menus\AdminHeader::register()etElgg\Menus\AdminHeader::registerMaintenance()_elgg_admin_footer_menu()changé pourElgg\Menus\AdminFooter::registerHelpResources()_elgg_admin_notify_admins_pending_user_validation()changé pourElgg\Users\Validation::notifyAdminsAboutPendingUsers()_elgg_admin_page_menu()changé pourElgg\Menus\Page::registerAdminAdminister()etElgg\Menus\Page::registerAdminConfigure()etElgg\Menus\Page::registerAdminInformation()_elgg_admin_page_menu_plugin_settings()changé pourElgg\Menus\Page::registerAdminPluginSettings()_elgg_admin_prepare_admin_notification_make_admin()changé pourElgg\Notifications\MakeAdminUserEventHandler_elgg_admin_prepare_admin_notification_remove_admin()changé pourElgg\Notifications\RemoveAdminUserEventHandler_elgg_admin_prepare_user_notification_make_admin()changé pourElgg\Notifications\MakeAdminUserEventHandler_elgg_admin_prepare_user_notification_remove_admin()changé pourElgg\Notifications\RemoveAdminUserEventHandler_elgg_admin_save_notification_setting()changé pourElgg\Users\Settings::setAdminValidationNotification()_elgg_admin_set_registration_forward_url()changé pourElgg\Users\Validation::setRegistrationForwardUrl()_elgg_admin_user_unvalidated_bulk_menu()changé pourElgg\Menus\UserUnvalidatedBulk::registerActions()_elgg_admin_user_validation_login_attempt()changé pourElgg\Users\Validation::preventUserLogin()_elgg_admin_user_validation_notification()changé pourElgg\Users\Validation::notifyUserAfterValidation()_elgg_admin_upgrades_menu()changé pourElgg\Menus\Filter::registerAdminUpgrades()Les actions
_elgg_cache_init()ont été combinées dansElgg\Application\SystemEventHandlers::ready()_elgg_clear_caches()changé pourElgg\Cache\EventHandlers::clear()_elgg_comments_access_sync()changé pourElgg\Comments\SyncContainerAccessHandler::class_elgg_comments_container_permissions_override()changé pourElgg\Comments\ContainerPermissionsHandler::class_elgg_comments_permissions_override()changé pourElgg\Comments\EditPermissionsHandler::class_elgg_comments_prepare_content_owner_notification()changé pourElgg\Notifications\CreateCommentEventHandler_elgg_comments_prepare_notification()changé pourElgg\Notifications\CreateCommentEventHandler_elgg_comments_social_menu_setup()changé pourElgg\Menus\Social::registerComments()_elgg_create_default_widgets()changé pourElgg\Widgets\CreateDefaultWidgetsHandler::class_elgg_create_notice_of_pending_upgrade()changé pourElgg\Upgrade\CreateAdminNoticeHandler::class_elgg_db_register_seeds()changé pourElgg\Database\RegisterSeedsHandler::class_elgg_disable_caches()changé pourElgg\Cache\EventHandlers::disable()_elgg_default_widgets_permissions_override()changé pourElgg\Widgets\DefaultWidgetsContainerPermissionsHandler::class_elgg_disable_password_autocomplete()changé pourElgg\Input\DisablePasswordAutocompleteHandler::class_elgg_enable_caches()changé pourElgg\Cache\EventHandlers::enable()_elgg_filestore_move_icons()changé pourElgg\Icons\MoveIconsOnOwnerChangeHandler::class_elgg_filestore_touch_icons()changé pourElgg\Icons\TouchIconsOnAccessChangeHandler::class_elgg_head_manifest()changé pourElgg\Views\AddManifestLinkHandler::class_elgg_annotations_default_menu_items()changé pourElgg\Menus\Annotation::registerDelete()_elgg_walled_garden_menu()changé pourElgg\Menus\WalledGarden::registerHome()_elgg_site_menu_init()changé pourElgg\Menus\Site::registerAdminConfiguredItems()_elgg_site_menu_setup()changé pourElgg\Menus\Site::reorderItems()_elgg_entity_menu_setup()changé pourElgg\Menus\Entity::registerEdit()etElgg\Menus\Entity::registerDelete()_elgg_entity_navigation_menu_setup()changé pourElgg\Menus\EntityNavigation::registerPreviousNext()_elgg_enqueue_notification_event()changé pourElgg\Notifications\EnqueueEventHandler::class_elgg_groups_container_override()changé pourElgg\Groups\MemberPermissionsHandler::class_elgg_groups_comment_permissions_override()changé pourElgg\Comments\GroupMemberPermissionsHandler::class_elgg_htmlawed_filter_tags()changé pourElgg\Input\ValidateInputHandler::class_elgg_invalidate_caches()changé pourElgg\Cache\EventHandlers::invalidate()_elgg_widget_menu_setup()changé pourElgg\Menus\Widget::registerEdit()etElgg\Menus\Widget::registerDelete()_elgg_login_menu_setup()changé pourElgg\Menus\Login::registerRegistration()etElgg\Menus\Widget::registerResetPassword()_elgg_nav_public_pages()changé pourElgg\WalledGarden\ExtendPublicPagesHandler::class_elgg_notifications_cron()changé pourElgg\Notifications\ProcessQueueCronHandler::class_elgg_notifications_smtp_default_message_id_header()changé pourElgg\Email\DefaultMessageIdHeaderHandler::class_elgg_notifications_smtp_thread_headers()changé pourElgg\Email\ThreadHeadersHandler::class_elgg_rebuild_public_container()changé pourElgg\Cache\EventHandlers::rebuildPublicContainer()_elgg_river_update_object_last_action()changé pourElgg\River\UpdateLastActionHandler::class_elgg_rss_menu_setup()changé pourElgg\Menus\Footer::registerRSS()_elgg_plugin_entity_menu_setup()changé pourElgg\Menus\Entity::registerPlugin()_elgg_purge_caches()changé pourElgg\Cache\EventHandlers::purge()_elgg_river_menu_setup()changé pourElgg\Menus\River::registerDelete()_elgg_save_notification_user_settings()changé pourElgg\Notifications\SaveUserSettingsHandler::class_elgg_session_cleanup_persistent_login()changé pourElgg\Users\CleanupPersistentLoginHandler::class_elgg_set_lightbox_config()changé pourElgg\Javascript\SetLightboxConfigHandler::class_elgg_set_user_default_access()changé pourElgg\Users\Settings::setDefaultAccess()_elgg_set_user_email()changé pourElgg\Users\Settings::setEmail()_elgg_set_user_password()changé pourElgg\Users\Settings::setPassword()_elgg_set_user_language()changé pourElgg\Users\Settings::setLanguage()_elgg_set_user_name()changé pourElgg\Users\Settings::setName()_elgg_set_user_username()changé pourElgg\Users\Settings::setUsername()_elgg_send_email_notification()changé pourElgg\Notifications\SendEmailHandler::class_elgg_upgrade_completed()changé pourElgg\Upgrade\UpgradeCompletedAdminNoticeHandler::class_elgg_upgrade_entity_menu()changé pourElgg\Menus\Entity::registerUpgrade()_elgg_user_ban_notification()changé pourElgg\Users\BanUserNotificationHandler::class_elgg_user_get_subscriber_unban_action()changé pourElgg\Notifications\UnbanUserEventHandler_elgg_user_prepare_unban_notification()changé pourElgg\Notifications\UnbanUserEventHandler_elgg_user_settings_menu_register()changé pourElgg\Menus\Page::registerUserSettings()etElgg\Menus\Page::registerUserSettingsPlugins()_elgg_user_settings_menu_prepare()changé pourElgg\Menus\Page::cleanupUserSettingsPlugins()elgg_user_hover_menu()changé pourElgg\Menus\UserHover::registerAvatarEdit()etElgg\Menus\UserHover::registerAdminActions()_elgg_user_set_icon_file()changé pourElgg\Icons\SetUserIconFileHandler::class_elgg_user_title_menu()changé pourElgg\Menus\Title::registerAvatarEdit()_elgg_user_page_menu()changé pourElgg\Menus\Page::registerAvatarEdit()_elgg_user_topbar_menu()changé pourElgg\Menus\Topbar::registerUserLinks()_elgg_user_unvalidated_menu()changé pourElgg\Menus\UserUnvalidated::register()_elgg_views_amd()changé pourElgg\Views\AddAmdModuleNameHandler::class_elgg_views_file_help_upload_limit()changé pourElgg\Input\AddFileHelpTextHandler::class_elgg_views_init()a été combiné dansElgg\Application\SystemEventHandlers::init()_elgg_views_minify()changé pourElgg\Views\MinifyHandler::class_elgg_views_prepare_favicon_links()changé pourElgg\Page\AddFaviconLinksHandler::class_elgg_views_preprocess_css()changé pourElgg\Views\PreProcessCssHandler::class_elgg_views_send_header_x_frame_options()changé pourElgg\Page\SetXFrameOptionsHeaderHandler::class_elgg_walled_garden_init()fusionné dansElgg\Application\SystemEventHandlers::initLate()_elgg_walled_garden_remove_public_access()changé pourElgg\WalledGarden\RemovePublicAccessHandler::class_elgg_widgets_widget_urls()changé pourElgg\Widgets\EntityUrlHandler::classelgg_prepare_breadcrumbs()changé pourElgg\Page\PrepareBreadcrumbsHandler::classElgg\Profiler::handleOutputchangé pourElgg\Debug\Profiler::classusers_initcombiné dansElgg\Application\SystemEventHandlers::initLate()
Plugins
_developers_entity_menuchangé pourElgg\Developers\Menus\Entity::registerEntityExplorer_developers_page_menuchangé pourElgg\Developers\Menus\Page::register_elgg_activity_owner_block_menuchangé pourElgg\Activity\Menus\OwnerBlock::registerUserItemetElgg\Activity\Menus\OwnerBlock::registerGroupItemblog_archive_menu_setupchangé pourElgg\Blog\Menus\BlogArchive::registerblog_owner_block_menuchangé pourElgg\Blog\Menus\OwnerBlock::registerUserItemetElgg\Blog\Menus\OwnerBlock::registerGroupItemblog_prepare_notificationchangé pourElgg\Blog\Notifications\PublishBlogEventHandlerblog_register_db_seedschangé pourElgg\Blog\Database::registerSeedsbookmarks_footer_menuchangé pourElgg\Bookmarks\Menus\Footer::registerbookmarks_owner_block_menuchangé pourElgg\Bookmarks\Menus\OwnerBlock::registerUserItemetElgg\Bookmarks\Menus\OwnerBlock::registerGroupItembookmarks_page_menuchangé pourElgg\Bookmarks\Menus\Page::registerbookmarks_prepare_notificationchangé pourElgg\Bookmarks\Notifications\CreateBookmarksEventHandlerbookmarks_register_db_seedschangé pourElgg\Bookmarks\Database::registerSeedsckeditor_longtext_idchangé pourElgg\CKEditor\Views::setInputLongTextIDViewVarckeditor_longtext_menuchangé pourElgg\CKEditor\Menus\LongText::registerTogglerdashboard_default_widgetschangé pourElgg\Dashboard\Widgets::extendDefaultWidgetsListdevelopers_log_eventschangé pourElgg\Developers\HandlerLogger::trackEventetElgg\Developers\HandlerLogger::trackHookdiagnostics_basic_hookchangé pourElgg\Diagnostics\Reports::getBasicdiagnostics_globals_hookchangé pourElgg\Diagnostics\Reports::getGlobalsdiagnostics_phpinfo_hookchangé pourElgg\Diagnostics\Reports::getPHPInfodiagnostics_sigs_hookchangé pourElgg\Diagnostics\Reports::getSigsdiscussion_comment_permissionschangé pourElgg\Discussions\Permissions::preventCommentOnClosedDiscussiondiscussion_get_subscriptionschangé pourElgg\Discussions\Notifications::addGroupSubscribersToCommentOnDiscussionSubscriptionsdiscussion_owner_block_menuchangé pourElgg\Discussions\Menus\OwnerBlock::registerGroupItemdiscussion_prepare_comment_notificationchangé pourElgg\Discussions\Notifications::prepareCommentOnDiscussionNotificationdiscussion_prepare_notificationchangé pourElgg\Discussions\Notifications\CreateDiscussionEventHandlerdiscussion_register_db_seedschangé pourElgg\Discussions\Database::registerSeedsElgg\DevelopersPlugins\*changé pourElgg\Developers\*Elgg\Discussions\Menus::registerSiteMenuItemchangé pourElgg\Discussions\Menus\Site::registerElgg\Discussions\Menus::filterTabschangé pourElgg\Discussions\Menus\Filter::filterTabsForDiscussionsembed_longtext_menuchangé pourElgg\Embed\Menus\LongText::registerembed_select_tabchangé pourElgg\Embed\Menus\Embed::selectCorrectTabembed_set_thumbnail_urlchangé pourElgg\Embed\Icons::setThumbnailUrlexpages_menu_register_hookchangé pourElgg\ExternalPages\Menus\ExPages::registerfile_handle_object_deletechangé pourElgg\File\Icons::deleteIconOnElggFileDeletefile_prepare_notificationchangé pourElgg\File\Notifications\CreateFileEventHandlerfile_register_db_seedschangé pourElgg\File\Database::registerSeedsfile_set_custom_icon_sizeschangé pourElgg\File\Icons::setIconSizesfile_set_icon_filechangé pourElgg\File\Icons::setIconFilefile_set_icon_urlchangé pourElgg\File\Icons::setIconUrlfile_owner_block_menuchangé pourElgg\File\Menus\OwnerBlock::registerUserItemetElgg\File\Menus\OwnerBlock::registerGroupItem_elgg_friends_filter_tabschangé pourElgg\Friends\Menus\Filter::registerFilterTabs_elgg_friends_page_menuchangé pourElgg\Friends\Menus\Page::register_elgg_friends_register_access_typechangé pourElgg\Friends\Access::registerAccessCollectionType_elgg_friends_setup_title_menuchangé pourElgg\Friends\Menus\Title::register_elgg_friends_setup_user_hover_menuchangé pourElgg\Friends\Menus\UserHover::register_elgg_friends_topbar_menuchangé pourElgg\Friends\Menus\Topbar::register_elgg_friends_widget_urlschangé pourElgg\Friends\Widgets::setWidgetUrl_elgg_send_friend_notificationchangé pourElgg\Friends\Notifications::sendFriendNotificationElgg\Friends\FilterMenu::addFriendRequestTabschangé pourElgg\Friends\Menus\Filter::addFriendRequestTabsElgg\Friends\RelationshipMenu::addPendingFriendRequestItemschangé pourElgg\Friends\Menus\Relationship::addPendingFriendRequestItemsElgg\Friends\RelationshipMenu::addPendingFriendRequestItemschangé pourElgg\Friends\Menus\Relationship::addPendingFriendRequestItemsElgg\Friends\Relationships::createFriendRelationshipchangé pourElgg\Friends\Relationships::removePendingFriendRequest_groups_gatekeeper_allow_profile_pagechangé pourElgg\Groups\Access::allowProfilePage_groups_page_menuchangé pourElgg\Groups\Menus\Page::register_groups_page_menu_group_profilechangé pourElgg\Groups\Menus\Page::registerGroupProfile_groups_relationship_invited_menuchangé pourElgg\Groups\Menus\Relationship::registerInvitedItems_groups_relationship_member_menuchangé pourElgg\Groups\Menus\Relationship::registerRemoveUser_groups_relationship_membership_request_menuchangé pourElgg\Groups\Menus\Relationship::registerMembershipRequestItems_groups_title_menuchangé pourElgg\Groups\Menus\Title::register_groups_topbar_menu_setupchangé pourElgg\Groups\Menus\Topbar::registergroups_access_default_overridechangé pourElgg\Groups\Access::overrideDefaultAccessgroups_create_event_listenerchangé pourElgg\Groups\Group::createAccessCollectiongroups_default_page_owner_handlerchangé pourElgg\Groups\PageOwner::detectPageOwnergroups_entity_menu_setupchangé pourElgg\Groups\Menus\Entity::registeretElgg\Groups\Menus\Entity::registerFeaturegroups_fields_setupchangé pourElgg\Groups\FieldsHandlergroups_members_menu_setupchangé pourElgg\Groups\Menus\GroupsMembers::registergroups_set_access_collection_namechangé pourElgg\Groups\Access::getAccessCollectionNamegroups_set_urlchangé pourElgg\Groups\Group::getEntityUrlgroups_setup_filter_tabschangé pourElgg\Groups\Menus\Filter::registerGroupsAllgroups_update_event_listenerchangé pourElgg\Groups\Group::updateGroupgroups_user_join_event_listenerchangé pourElgg\Groups\Group::joinGroupgroups_user_leave_event_listenerchangé pourElgg\Groups\Group::leaveGroupgroups_write_acl_plugin_hookchangé pourElgg\Groups\Access::getWriteAccessinvitefriends_add_friendschangé pourElgg\InviteFriends\Users::addFriendsOnRegisterinvitefriends_register_page_menuchangé pourElgg\InviteFriends\Menus\Page::registerlikes_permissions_checkchangé pourElgg\Likes\Permissions::allowLikedEntityOwnerlikes_permissions_check_annotatechangé pourElgg\Likes\Permissions::allowLikeOnEntitylikes_social_menu_setupchangé pourElgg\Likes\Menus\Social::registermembers_register_filter_menuchangé pourElgg\Members\Menus\Filter::registermessages_can_editchangé pourElgg\Messages\Permissions::canEditmessages_can_edit_containerchangé pourElgg\Messages\Permissions::canEditContainermessages_purgechangé pourElgg\Messages\User::purgeMessagesmessages_register_topbarchangé pourElgg\Messages\Menus\Topbar::registermessages_user_hover_menuchangé pourElgg\Messages\Menus\UserHover::registeretElgg\Messages\Menus\Title::registernotifications_update_collection_notifychangé pourElgg\Notifications\Relationships::updateUserNotificationsPreferencesOnACLChangenotifications_update_friend_notifychangé pourElgg\Friends\Relationships::applyFriendNotificationsSettingsnotifications_relationship_removechangé pourElgg\Friends\Relationships::deleteFriendNotificationSubscriptionetElgg\Groups\Relationships::removeGroupNotificationSubscriptions_notifications_page_menuchangé pourElgg\Notifications\Menus\Page::register_notification_groups_title_menuchangé pourElgg\Notifications\Menus\Title::registerpages_container_permission_checkchangé pourElgg\Pages\Permissions::allowContainerWriteAccesspages_entity_menu_setupchangé pourElgg\Pages\Menus\Entity::registerpages_icon_url_overridechangé pourElgg\Pages\Icons::getIconUrlpages_owner_block_menuchangé pourElgg\Pages\Menus\OwnerBlock::registerUserItemetElgg\Pages\Menus\OwnerBlock::registerGroupItempages_prepare_notificationchangé pourElgg\Pages\Notifications\CreatePageEventHandlerpages_register_db_seedschangé pourElgg\Pages\Database::registerSeedspages_set_revision_urlchangé pourElgg\Pages\Extender::setRevisionUrlpages_write_access_options_hookchangé pourElgg\Pages\Views::removeAccessPublicpages_write_access_varschangé pourElgg\Pages\Views::preventAccessPublicpages_write_permission_checkchangé pourElgg\Pages\Permissions::allowWriteAccessElgg\Pages\Menus::registerPageMenuItemschangé pourElgg\Pages\Menus\PagesNav::register_profile_admin_page_menuchangé pourElgg\Profile\Menus\Page::registerAdminProfileFields_profile_fields_setupchangé pourElgg\Profile\FieldsHandler_profile_title_menuchangé pourElgg\Profile\Menus\Title::register_profile_topbar_menuchangé pourElgg\Profile\Menus\Topbar::register_profile_user_hover_menuchangé pourElgg\Profile\Menus\UserHover::register_profile_user_page_menuchangé pourElgg\Profile\Menus\Page::registerProfileEditprofile_default_widgets_hookchangé pourElgg\Profile\Widgets::getDefaultWidgetsListreportedcontent_user_hover_menuchangé pourElgg\ReportedContent\Menus\UserHover::registersearch_exclude_robotschangé pourElgg\Search\Site::preventSearchIndexingsearch_output_tagchangé pourElgg\Search\Views::setSearchHrefsite_notifications_register_entity_menuchangé pourElgg\SiteNotifications\Menus\Entity::registersite_notifications_sendchangé pourElgg\SiteNotifications\Notifications::createSiteNotifications_uservalidationbyemail_user_unvalidated_bulk_menuchangé pourElgg\UserValidationByEmail\Menus\UserUnvalidatedBulk::register_uservalidationbyemail_user_unvalidated_menuchangé pourElgg\UserValidationByEmail\Menus\UserUnvalidated::registeruservalidationbyemail_after_registration_urlchangé pourElgg\UserValidationByEmail\Response::redirectToEmailSentuservalidationbyemail_check_manual_loginchangé pourElgg\UserValidationByEmail\User::preventLoginuservalidationbyemail_disable_new_userchangé pourElgg\UserValidationByEmail\User::disableUserOnRegistrationsystem_log_archive_cronchangé pourElgg\SystemLog\Cron::rotateLogssystem_log_default_loggerchangé pourElgg\SystemLog\Logger::logsystem_log_delete_cronchangé pourElgg\SystemLog\Cron::deleteLogssystem_log_listenerchangé pourElgg\SystemLog\Logger::listensystem_log_user_hover_menuchangé pourElgg\SystemLog\Menus\UserHover::registerthewire_add_original_posterchangé pourElgg\TheWire\Notifications\CreateTheWireEventHandlerthewire_owner_block_menuchangé pourElgg\TheWire\Menus\OwnerBlock::registerthewire_prepare_notificationchangé pourElgg\TheWire\Notifications\CreateTheWireEventHandlerthewire_setup_entity_menu_itemschangé pourElgg\TheWire\Menus\Entity::register
Exceptions retravaillées
Toutes les exceptions du système Elgg étendent désormais Elgg\Exceptions\Exception et se trouvent dans l’espace de noms Elgg\Exceptions
Exceptions déplacées
ClassExceptionutilisezElgg\Exceptions\ClassExceptionConfigurationExceptionutilisezElgg\Exceptions\ConfigurationExceptionCronExceptionutilisezElgg\Exceptions\CronExceptionDatabaseExceptionutilisezElgg\Exceptions\DatabaseExceptionDataFormatExceptionutilisezElgg\Exceptions\DataFormatExceptionInstallationExceptionutilisezElgg\Exceptions\Configuration\InstallationExceptionInvalidParameterExceptionutilisezElgg\Exceptions\InvalidParameterExceptionIOExceptionutilisezElgg\Exceptions\FileSystem\IOExceptionLoginExceptionutilisezElgg\Exceptions\LoginExceptionPluginExceptionutilisezElgg\Exceptions\PluginExceptionRegistrationExceptionutilisezElgg\Exceptions\Configuration\RegistrationExceptionSecurityExceptionutilisezElgg\Exceptions\SecurityExceptionElgg\Database\EntityTable\UserFetchFailureExceptionutilisezElgg\Exceptions\Database\UserFetchFailureExceptionElgg\Di\FactoryUncallableExceptionutilisezElgg\Exceptions\Di\FactoryUncallableExceptionElgg\Di\MissingValueExceptionutilisezElgg\Exceptions\Di\MissingValueExceptionElgg\Http\Exception\AdminGatekeeperExceptionutilisezElgg\Exceptions\Http\Gatekeeper\AdminGatekeeperExceptionElgg\Http\Exception\AjaxGatekeeperExceptionutilisezElgg\Exceptions\Http\Gatekeeper\AjaxGatekeeperExceptionElgg\Http\Exception\GroupToolGatekeeperExceptionutilisezElgg\Exceptions\Http\Gatekeeper\GroupToolGatekeeperExceptionElgg\Http\Exception\LoggedInGatekeeperExceptionutilisezElgg\Exceptions\Http\Gatekeeper\LoggedInGatekeeperExceptionElgg\Http\Exception\LoggedOutGatekeeperExceptionutilisezElgg\Exceptions\Http\Gatekeeper\LoggedOutGatekeeperExceptionElgg\Http\Exception\UpgradeGatekeeperExceptionutilisezElgg\Exceptions\Http\Gatekeeper\UpgradeGatekeeperExceptionElgg\I18n\InvalidLocaleExceptionutilisezElgg\Exceptions\I18n\InvalidLocaleExceptionElgg\BadRequestExceptionutilisezElgg\Exceptions\Http\BadRequestExceptionElgg\CsrfExceptionutilisezElgg\Exceptions\Http\CsrfExceptionElgg\EntityNotFoundExceptionutilisezElgg\Exceptions\Http\EntityNotFoundExceptionElgg\EntityPermissionsExceptionutilisezElgg\Exceptions\Http\EntityPermissionsExceptionElgg\GatekeeperExceptionutilisezElgg\Exceptions\Http\GatekeeperExceptionElgg\GroupGatekeeperExceptionutilisezElgg\Exceptions\Http\Gatekeeper\GroupGatekeeperExceptionElgg\HttpExceptionutilisezElgg\Exceptions\HttpExceptionElgg\PageNotFoundExceptionutilisezElgg\Exceptions\Http\PageNotFoundExceptionElgg\ValidationExceptionutilisezElgg\Exceptions\Http\ValidationExceptionElgg\WalledGardenExceptionutilisezElgg\Exceptions\Http\Gatekeeper\WalledGardenException
Exceptions supprimées
CallExceptionClassNotFoundExceptionIncompleteEntityExceptionInvalidClassExceptionNotificationExceptionNotImplementedExceptiondu plugin Web Services
Traits retravaillés
Afin de mieux organiser l’espace de noms Elgg, tous les Traits ont été déplacés vers l’espace de noms Elgg\Traits
Elgg\Cacheablea été déplacé versElgg\Traits\CacheableElgg\Cli\PluginsHelpera été déplacé versElgg\Traits\Cli\PluginsHelperElgg\Cli\Progressinga été déplacé versElgg\Traits\Cli\ProgressingElgg\Database\Seeds\Seeding\GroupHelpersa été déplacé versElgg\Traits\Seeding\GroupHelpersElgg\Database\Seeds\Seeding\TimeHelpersa été déplacé versElgg\Traits\Seeding\TimeHelpersElgg\Database\Seeds\Seedinga été déplacé versElgg\Traits\SeedingElgg\Database\LegacyQueryOptionsAdaptera été déplacé versElgg\Traits\Database\LegacyQueryOptionsAdapterElgg\Debug\Profilablea été déplacé versElgg\Traits\Debug\ProfilableElgg\Di\ServiceFacadea été déplacé versElgg\Traits\Di\ServiceFacadeElgg\Entity\ProfileDataa été déplacé versElgg\Traits\Entity\ProfileDataElgg\Loggablea été déplacé versElgg\Traits\LoggableElgg\Notifications\EventSerializationa été déplacé versElgg\Traits\Notifications\EventSerializationElgg\TimeUsinga été déplacé versElgg\Traits\TimeUsing
Modifications d’API diverses
La valeur par défaut pour
ignore_empty_bodyetprevent_double_submitlors de l’utilisation deelgg_view_forma été changé pourtrue.Les formulaires de paramètres de plugin (
plugins/{$plugin_id}/settings) ne reçoivent plus$vars['plugin'], utilisez$vars['entity']Elgg\Router\Middleware\WalledGarden::isPublicPage()ne peut plus être appelé de manière statiqueElgg\Cli\Plugin Helper::get Dependents()n’est plus disponible publiquementElggPlugin::getLanguagesPath()n’est plus disponible publiquementUn
\ElggBatchn’implémente plus l’interfaceElgg\BatchResultmais a toujours les mêmes fonctionnalitésUne
\ElggEntityn’implémente plus l’interfaceLocatablemais a toujours les mêmes fonctionnalitésUn
\Elgg\Eventn’implémente plus les interfaces\Elgg\ObjectEventet\Elgg\UserEventmais a toujours les mêmes fonctionnalitésLa vue
output/iconn’utilise plus la variable de vueconvertElggData::save()renvoie désormais toujours unbooltel que documenté. Toutes les classes d’extension ont été mises à jour (par exempleElggEntity,ElggMetadata,ElggRelationship, etc.)Elgg\Email::getTo()renvoie désormais toujours unarrayElggPlugin::activate()etElggPlugin::deactivate()peuvent maintenant lancer uneElgg\Exceptions\PluginExceptionavec plus d’informations sur l’échec\ElggRelationship::RELATIONSHIP_LIMITa été supprimé utilisez ElggDatabaseRelationshipsTable::RELATIONSHIP_COLUMN_LENGTH``Les constantes
ORIGIN_SUBSCRIPTIONSetORIGIN_INSTANTdans\Elgg\Notifications\Notificationont été suppriméesVous ne pouvez plus utiliser l’événement
delete, <entity_type>pour empêcher la suppression d’une entité. Utilisez l’événementdelete:before, <entity_type>Les fichiers externes ne sont plus classés par priorité mais seront retournés dans le même ordre qu’ils sont enregistrés
L’interface
Friendablea été supprimée. Les fonctions implémentées dansElggUseront été déplacées versElgg\Traits\Entity\FriendsLe drapeau de configuration
profile_using_customn’est plus disponibleLa valeur de retour de
elgg_create_river_item()serafalsedans le cas où la création a été empêchée par l’événement'create:before', 'river'La constante
ELGG_PLUGIN_USER_SETTING_PREFIXa été supprimée, utilisez la fonction d’assistance\ElggUser::getNamespacedPluginSettingName()La constante
ELGG_PLUGIN_INTERNAL_PREFIXa été supprimée, pour obtenir le nom de paramètre privé de priorité du plugin utilisez\ElggPlugin::PRIORITY_SETTING_NAMELa classe
SiteNotificationFactorya été supprimée, utilisezSiteNotification::factory()La classe
Elgg\Email\Addressne lance plusLaminas\Mail\Exception\InvalidArgumentExceptionmais lance maintenantElgg\Exceptions\InvalidArgumentException
APIs dépréciées
Fonctions de classe
ElggPlugin::getUserSetting()utilisezElggUser::getPluginSetting()ElggPlugin::setUserSetting()utilisezElggUser::setPluginSetting()
Fonctions de la bibliothèque
forward()utilisez des instancesElgg\Exceptions\HttpExceptionouelgg_redirect_response()
Hooks plugin
'usersettings', 'plugin'utilisez le hook'plugin_setting', '<entity type>'
Fonctions supprimées
Fonctions de classe
Elgg\Config::getEntityTypes()utilisez la constanteElgg\Config::ENTITY_TYPESElggFile::setDescription()utilisez$file->description = $new_descriptionElggGroup::addObjectToGroup()ElggGroup::removeObjectFromGroup()ElggPlugin::getAllUserSettings()ElggPlugin::getDependencyReport()ElggPlugin::getError()ElggPlugin::unsetAllUserSettings()ElggPlugin::unsetAllUserAndPluginSettings()utilisezElggPlugin::unsetAllEntityAndPluginSettings()ElggWidget::getContext()utilisez$entity->contextElggWidget::setContext()utilisez$entity->context = $contextElgg\Notifications\NotificationsService::getDeprecatedHandler()Elgg\Notifications\NotificationsService::getMethodsAsDeprecatedGlobal()utilisezelgg_get_notification_methods()Elgg\Notifications\NotificationsService::registerDeprecatedHandler()Elgg\Notifications\NotificationsService::setDeprecatedNotificationSubject()Elgg\Email::getRecipient()utilisezElgg\Email::getTo()Elgg\Email::setRecipient()Elgg\Entity::getLocation()utilisez$entity->locationElgg\Entity::setLocation()utilisez$entity->location = $location
Fonctions de la bibliothèque
access_get_show_hidden_status()utilisezelgg()->session->getDisabledEntityVisibility()diagnostics_md5_dir()elgg_add_subscription()utilisez\ElggEntity::addSubscription()elgg_get_available_languages()utilisezelgg()->translator->getAvailableLanguages()elgg_get_all_plugin_user_settings()elgg_get_entities_from_plugin_user_settings()utilisezelgg_get_entities()avec les paramètres de configuration privés et préfixez le nom de votre paramètre avecplugin:user_setting:elgg_get_filter_tabs()utilise les hooks de menu sur'register', 'menu:filter:<filter_id>'elgg_get_loaded_css()utilisezelgg_get_loaded_external_files('css', 'head')elgg_get_loaded_js()utilisezelgg_get_loaded_external_files('js', $location)elgg_get_system_messages()utilisezelgg()->system_messages->loadRegisters()elgg_prepend_css_urls()elgg_remove_subscription()utilisez\ElggEntity::removeSubscription()elgg_set_plugin_setting()utilisez$plugin->setSetting($name, $value)elgg_set_plugin_user_setting()utilisezElggUser::setPluginSetting()elgg_set_system_messages()utilisezelgg()->system_messages->saveRegisters()elgg_unset_plugin_setting()utilisez$plugin->unsetSetting($name)elgg_unset_plugin_user_setting()utilisezElggUser::removePluginSetting()get_language_completeness()utilisezelgg()->translator->getLanguageCompleteness()get_installed_translations()utilisezelgg()->translator->getInstalledTranslations()group_access_options()pages_is_page()system_log_get_log()system_log_get_log_entry()system_log_get_object_from_log_entry()system_log_get_seconds_in_period()system_log_archive_log()system_log_browser_delete_log()thewire_get_parent()utilisez\ElggWire::getParent()validate_email_address()utilisezelgg()->accounts->assertValidEmail()validate_password()utilisezelgg()->accounts->assertValidPassword()validate_username()utilisezelgg()->accounts->assertValidUsername()
Vues / ressources supprimées
admin/develop_tools/inspect/webserviceselgg/thewire.jsinput/urlshortenermessages/jsa été déplacé versforms/messages/process.jsnavigation/menu/elements/item_depsla fonctionnalité a été fusionnée dansnavigation/menu/elements/itemobject/plugin/elements/contributorsnotifications/groupsnotifications/personalutiliseznotifications/settingsounotifications/usersnotifications/settings/personala été déplacé versnotifications/settings/recordsnotifications/settings/collectionsnotifications/settings/otherétendnotifications/settings/recordsnotifications/subscriptions/groupsutilisezforms/notifications/subscriptions/groupsnotifications/subscriptions/usersutilisezforms/notifications/subscriptions/usersresources/comments/viewutilisez\Elgg\Controllers\CommentEntityRedirectorresources/riverutilisezresources/activity/allouresources/activity/ownerouresources/activity/friendsreportedcontent/admin_cssthewire/previous
Hooks / événements supprimés
L’événement
created, rivera été supprimé. Utilisez l’événementcreate:after, river.Le hook
creating, rivera été supprimé. Utilisez l’événementcreate:before, riversi vous souhaitez bloquer la création d’un élément river.Le hook
filter_tabs, <context>a été supprimé. Utilisez le hookregister, menu:filter:<filter_id>Le hook
output, ajaxa été supprimé. Utilisez le hookajax_responsesi vous souhaitez modifier les résultats.Le hook
reportedcontent:adda été supprimé. Utilisez l’événementcreate, objectpour empêcher la création.Le hook
reportedcontent:archivea été supprimé. Utilisez le hookpermissions_check, object.Le hook
reportedcontent:deletea été supprimé. Utilisez l’événementdelete, objectpour empêcher la suppression.
Actions supprimées
L’action
reportedcontent/deletea été remplacée par une action de suppression d’entité générique