De 2.2 à 2.3
Contenu
Version de PHP
PHP 5.5 a atteint la date de fin de support en Juillet 2016. Afin de s’assurer que les sites Elgg soient sécurisés, nous exigeons désormais PHP 5.6 pour les nouvelles installations.
Les installations existantes peuvent continuer à utiliser PHP 5.5 jusqu’à Elgg 3.0.
Afin de mettre à niveau Elgg vers la version 2.3 en utilisant composer avec PHP 5.5, vous pouvez avoir besoin d’utiliser le drapeau --ignore-platform-reqs
.
APIs dépréciées
Enregistrement pour le hook
to:object
par le nom de l’extenseur : Utilisez les hooksto:object, annotation
etto:object, metadata
à la place.
ajax_forward_hook()
: N’est plus utilisé comme gestionnaire pour le hook “forward”,”all”`. La réponse Ajax est maintenant enveloppée par laResponseFactory
ajax_action_hook()
: N’est plus utilisé comme gestionnaire pour le hook “action”,”all”. La mise en mémoire tampon de la sortie commence maintenant avant que le hook ne soit déclenché dansActionsService
elgg_error_page_handler()
: N’est plus utilisé comme gestionnaire pour les hooks “forward”,<error_code>
get_uploaded_file()
: Utilisez la nouvelle API d’envoi de fichiers à la place
get_user_notification_settings()
: UtilisezElggUser::getNotificationSettings()
set_user_notification_setting()
: UtilisezElggUser::setNotificationSetting()
événement
pagesetup, system
: Utilisez le menu ou les hooks de la coquille de la page - page shell - à la place.Le JavaScript
elgg.walled_garden
est obsolète : Utilisez le module AMDelgg/walled_garden
à la place.
elgg()->getDb()->getTableprefix()
: Utilisezelgg_get_config('dbprefix')
.
update_entity_last_action()
est une fonction privée : Évitez de mettre à jour manuellement le timestamp de la dernière action.Définir un
access_id
non-public sur une métadonnée est obsolète. Voyez ci-dessous.
get_resized_image_from_existing_file()
: Utilisezelgg_save_resized_image()
.
get_resized_image_from_uploaded_file()
: Utilisezelgg_save_resized_image()
en combinaison avec l’API d’envoi de fichier
get_image_resize_parameters()
sera supprimé.
elgg_view_input()
: Utilisezelgg_view_field()
. Toutes nos excuses pour le changement d’API.
Vues obsolètes
resources/file/world
: Utilisez la vueresources/file/all
.
resources/pages/world
: Utilisez la vueresources/pages/all
.
walled_garden.js
: Utilisez le moduleelgg/walled_garden
à la place.
Nouvelle API pour la gestion des pages et des actions
Les gestionnaires de pages et les fichiers de script d’action doivent maintenant renvoyer une instance de \Elgg\Http\ResponseBuilder
. Les plugins devraient utiliser les fonctions suivantes pour créer des réponses :
elgg_ok_response()
envoie une réponse 2xx avec des données HTML (gestionnaire de page) ou JSON (actions)
elgg_error_response()
envoie une réponse 4xx ou 5xx sans contenu/donnée
elgg_redirect_response()
redirige silencieusement la requête
Nouvelle API pour travailler avec l’envoi de fichiers
elgg_get_uploaded_files()
- renvoie un tableau d’objets Symfony de fichiers téléchargés
ElggFile::acceptUploadedFile()
- déplace un fichier téléchargé dans le répertoire de fichiers de Elgg
Nouvelle API pour la manipulation d’images
Le nouveau service de manipulation d’images met en œuvre une approche plus efficace pour recadrer et redimensionner les images.
elgg_save_resized_image()
- recadre et redimensionne une image aux dimensions choisies
Nouvelle API pour les événements
elgg_clear_event_handlers()
- similaire àelgg_clear_plugin_hook_handlers
cette fonction supprime tous les gestionnaires d’événements enregistrés
Nouvelle API pour la signature des URLs
Les URLs peuvent désormais être signées avec une clef HMAC SHA-256 et validées à tout moment avant l’expiration de l’URL. Cette fonctionnalité peut être utilisée pour tokenizer l’URL d’action dans les notifications par e-mail, ainsi que d’autres utilisations en dehors de l’installation Elgg.
elgg_http_get_signed_url()
- signe l’URL avec la clef HMAC
elgg_http_validate_signed_url()
- valide l’URL signée
elgg_signed_request_gatekeeper()
- gardien qui valide la signature de la requête en cours
Vues de formulaire extensibles
Le rendu du pied de page du formulaire peut maintenant être reporté jusqu’à ce que la vue du formulaire et ses extensions aient terminé le rendu. Cela permet aux plugins de collaborer sur les vues de formulaire sans casser la logique de balisage.
elgg_set_form_footer()
- définit le pied de page du formulaire pour un rendu différé
elgg_get_form_footer()
- renvoie le pied de page du formulaire actuellement défini
Métadonnées access_id
Il est maintenant obsolète de créer des métadonnées avec une valeur explicite de access_id
autre que ACCESS_PUBLIC
.
Dans Elgg 3.0, les métadonnées ne sont pas contrôlées et sont disponibles dans tous les contextes. Si votre plugin repose sur le contrôle d’accès des métadonnées, il serait sage de migrer le stockage vers des annotations ou des entités à la place.
Nouvelle API pour extraire des noms de classes à partir de tableaux
Semblable à elgg_extract()
, elgg_extract_class()
extrait la clef class
(si elle est présente), la fusionne avec les noms de classe existants, et renvoie toujours un tableau.
Notifications
Un hook de haut niveau
'prepare','notification'
est maintenant déclenché pour les notifications instantanées et d’abonnement et peut être utilisé pour modifier les objets de notification quel que soit leur type.le hook
'format','notification:<method>'
est maintenant déclenché pour les notifications instantanées et d’abonnement et peut être utilisé pour formater la notification (par ex. pour supprimer des balises HTML, envelopper le corps de la notification dans un modèle, etc.).Les notifications instantanées sont désormais traitées par le service de notifications, de sorte que la quasi-totalité des hooks applicables aux notifications d’abonnement s’appliquent également aux notifications instantanées.
elgg_get_notification_methods()
peut être utilisé pour obtenir les méthodes de notification enregistréesAjout de
ElggUser::getNotificationSettings()
etElggUser::setNotificationSetting()
Les fonctions de liste d’entités peuvent générer des tableaux
Dans des fonctions telles que elgg_list_entities($options)
, le rendu sous forme de tableau est possible en définissant $options['list_type'] = 'table'
et en fournissant un tableau de colonnes de tableau dans $options['columns']
. Chaque colonne est un objet Elgg\Views\TableColumn
, généralement créé via des méthodes du service elgg()->table_columns
.
Les plugins peuvent fournir ou modifier ces méthodes d’usine - factory methods (voir Elgg\Views\TableColumn\ColumFactory
). Pour un exemple d’utilisation, consultez la vue admin/users/newest
.
Composants d’onglets en ligne
Le composant des onglets en ligne peut désormais être rendu avec la vue page/components/tabs
. Le composant permet de basculer entre pré-remplissage et chargement-par-ajax. Voir page/components/tabs
dans les vues du noyau et theme_sandbox/components/tabs
dans le plugin developers pour des instructions d’utilisation et des exemples.
API pour modifier l’URL d’inscription et de connexion
elgg_get_registration_url()
doit être utilisé pour obtenir l’URL d’inscription sur le site
elgg_get_login_url()
doit être utilisé pour obtenir l’URL de connexion du sitele hook
registration_url, site
peut être utilisé pour modifier l’URL d’inscription par défautle hook
login_url, site
peut être utilisé pour modifier l’URL de connexion par défaut
Prise en charge des jeux de champs - fieldsets - dans les formulaires
elgg_view_field()
remplaceelgg_view_input()
. Elle dispose d’une API similaire, mais accepte un seul tableau.
elgg_view_field()
prend en charge#type
,#label
,#help
et#class
, permettant l’envoi de versions non préfixées à la vue d’entrée$vars
.La nouvelle vue
input/fieldset
peut être utilisée pour rendre un ensemble de champs, chacun rendu avecelgg_view_field()
.
Lightbox
Le CSS de Lightbox n’est plus chargé en tant que fichier CSS externe. Le thème Lightbox étend maintenant
elgg.css
etadmin.css
La configuration de lightbox par défaut est maintenant définie via le hook
'elgg.data','site'
côté serveur