De 4.1 à 4.2

Stash remplacé par Phpfastcache

La bibliothèque de cache interne Stash a été remplacée par Phpfastcache. Phpfastcache est mieux entretenu, fournit plus de pilotes de cache et ajoute plus de fonctionnalités à l’implémentation du cache. Cette modification ne devrait causer aucun problème sur les installations existantes. Si vous avez configuré Memcache ou Redis dans votre elgg-config/settings.php, vous pourriez avoir besoin de mettre à jour votre configuration.

Valeurs booléennes des Metadata et des Annotation

Le modèle de base de données a été modifié pour conserver les valeurs booléennes intactes entre l’enregistrement et la récupération. Avant ce changement, si vous enregistriez une valeur booléenne, elle était renvoyée sous la forme d’un entier. Désormais elle reste un booléen.

Avertissement

Si vous avez précédemment enregistré des valeurs booléennes, elles seront sous forme d’entiers dans la base de données (jusqu’à ce qu’elles soient de nouveau enregistrées).

Fonctions des messages système

Le fonctions system_message() et register_error() ont été remplacées par elgg_register_success_message() et elgg_register_error_message(). Les nouvelles fonctions ont la capacité de passer des options supplémentaires au registre des messages système.

Fonctions Javascript

Les bibliothèques javascript Elgg ont connu une refonte massive. Beaucoup de fonctions ont été dépréciées. Vous pouvez trouver toutes les fonctions obsolètes et globales dans views/default/core/js/deprecated.js.

Messages système

Si vous utilisez les messages système dans votre javascript, vous devriez maintenant requérir le module elgg/system_messages.

Jetons de sécurité

Si vous utilisez elgg.security.addToken() dans votre javascript, vous devriez maintenant requérir le module elgg/security.

Traductions

Si vous utilisez elgg.echo() dans votre javascript, vous devriez maintenant requérir le module elgg/i18n.

Fonctions UI

Le menu déroulant de l’utilisateur n’est plus initialisé à partir du fichier ui.js global, mais requiert le javascript à la demande à partir de la vue icon/user/default.

ElggUser & ElggEntity

Les équivalents javascript de ElggUser et ElggEntity ne devraient plus être utilisés. L’entité utilisateur connecté ne devrait plus être référencée dans les données de la page elgg.session.user. Vous pouvez trouver ses attributs dans elgg.user sous forme de tableau.

Sécurité

output/url a maintenant ajouté des fonctionnalités de sécurité pour aider à bloquer les sorties générées par des utilisateurs malveillants. La vue prend en charge $vars['allowed_schemes'] qui contient une liste des schémas d’URL autorisés. Le $vars['href'] fourni est mis en correspondance avec la liste autorisée. Si l’URL n’a pas de schéma autorisé, l’URL sera préfixée par denied:.

Cela aidera à empêcher que des entrées utilisateur telles que javascript:alert('just testing'); ne soient présentées aux utilisateurs.

Par défaut, les schémas suivants sont autorisés : http, https, ftp, sftp, ssh, file

Si vous utilisez le modèle elgg_view('output/url', ['text' => 'something', 'href' => 'javascript:void(0);']) mettez à jour votre code pour définir `` href`` à false.

Groupes

Le nom du menu des onglets de la page des membres du groupe a été remplacé pour utiliser la logique de menu de filtre par défaut. Réécrivez vos hooks de plugin menu:groups_members en menu:filter:groups/members. Puisqu’il s’agit d’un menu différent, l’entité de groupe actuelle est désormais disponible dans le paramètre de hook filter_entity.

APIs dépréciées

Fonctions de la bibliothèque

  • elgg_view_menu_item() utilisez elgg_view('navigation/menu/elements/item/url', ['item' => $myMenuItem])

  • register_error() utilisez elgg_register_error_message()

  • system_message() utilisez elgg_register_success_message()