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¶
Inline tabs component can now be rendered with page/components/tabs
view. The components allows to switch between pre-populated and ajax-loaded.
See page/components/tabs
in core views and theme_sandbox/components/tabs
in developers plugin for usage instructions and examples.
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