Liste des événements dans le noyau
Pour plus d’informations sur le fonctionnement des événements, visitez Événements.
Contenu
Note
Some events are marked with this means those events also have a :before
and :after
event
Also see Event sequence
Certains événements sont marqués avec cela signifie que ces événements permettent de modifier la sortie d’un événement
Événements système
- activate, plugin
Renvoyez false pour empêcher l’activation du plugin.
- cache:clear, system
Efface les caches internes et externes, par défaut, y compris system_cache, simplecache et memcache. Il est possible de l’utiliser pour réinitialiser d’autres caches comme APC, OPCache ou WinCache.
- cache:generate, <view>
Filtre la sortie de la vue pour une URL
/cache
quand simplecache est désactivé. Notez que cela sera déclenché pour chaque requête à/cache
– aucun entête Expires n’est utilisé quand simplecache est désactivé.- cache:invalidate, system
Invalide les caches internes et externes.
- cache:purge, system
Purge les caches internes et externes. Il s’agit de supprimer le contenu ancien/obsolète des caches.
- commands, cli
Permet aux plugins d’enregistrer leurs propres commandes exécutables via le binaire
elgg-cli
. Les gestionnaires doivent renvoyer un tableau de noms de classes de commande. Les commandes doivent étendre\Elgg\Cli\Command
pour être exécutables.- cron, <period>
Déclenché par le cron pour chaque période.
Le tableau
$params
va contenir :time
- l’horodatage du lancement de la commande crondt
- l’objet\DateTime
du moment où la commande cron a été lancéelogger
- instance de\Elgg\Logger\Cron
pour enregistrer toute information dans le journal cron
- cron:intervals, system
Permet la configuration d’intervalles de cron personnalisés
- deactivate, plugin
Renvoyez false pour éviter la désactivation du plugin.
- diagnostics:report, system
Filtre la sortie pour le téléchargement du rapport de diagnostic.
- elgg.data, page
Filters uncached, page-specific configuration data to pass to the client. More info
- format, friendly:title
Formate un titre « sympathique » pour les chaînes de caractères. Ceci est utilisé pour générer des URLs.
- format, friendly:time
Formate une date « sympathique » pour le timestamp
$params['time']
.- format, strip_tags
Filtre une chaîne pour supprimer les balises. La chaîne d’origine est passée par
$params['original_string']
et un ensemble facultatif de balises autorisées est passé par$params['allowed_tags']
.- gc, system
Autorise les plugins à exécuter la collecte des déchets - « garbage collection » - pour
$params['period']
.- generate, password
Permet aux plugins de générer de nouveaux mots de passe textuels aléatoires.
- init:cookie, <name>
Renvoyez false pour remplacer la définition d’un cookie.
- init, system
Les plugins ont tendance à utiliser cet événement pour l’initialisation (extension des vues, enregistrement des rappels, etc.)
- languages, translations
Permet aux plugins d’ajouter/supprimer des langues des langues configurables du système.
- log, systemlog
Appelé pour tous les événements déclenchés par le plugin
system_log
. Utilisé en interne parElgg\SystemLog\Logger::log()
pour remplir la tablesystem_log
.- login_url, site
Filtre l’URL de connexion du site. Le tableau
$params
contient un tableau d’éléments de requête ajoutés à l’URL de connexion par le script appelant. L’événement doit renvoyer une URL absolue de la page de connexion.- output:before, page
Dans
elgg_view_page()
, ceci filtre$vars
avant qu’il soit transmis à la vue de la coquille de la page (page/<page_shell>
). Pour arrêter d’envoyer l’entête X-Frame-Options, désenregistrez le gestionnaireElgg\Page\SetXFrameOptionsHeaderHandler::class
de cet événement.- output, page
Dans
elgg_view_page()
, ceci filtre la valeur de retour renvoyée.- parameters, menu:<menu_name>
Déclenché par
elgg_view_menu()
. Utilisé pour modifier les variables de menu (comme l’ordre de tri) avant le rendu.Le tableau
$params
va contenir :name
- nom du menusort_by
- paramètre de tri préféréd’autres paramètres passés à
elgg_view_menu()
- plugins_load, system
Déclenché avant que les plugins ne soient chargés. Rarement utilisé. init, system est utilisé à la place. Peut être utilisé pour charger des bibliothèques supplémentaires.
- plugins_boot, system
Déclenché juste après le chargement des plugins. Rarement utilisé. init, system est utilisé à la place.
- prepare, html
Déclenché par
elgg_format_html()
et utilisé pour préparer du HTML non sûr.La valeur
$return
est un tableau :html
- La chaîne de caractères HTML en train d’être préparéeoptions
- Options de préparation
- prepare, menu:<menu_name>
Filtre le tableau des sections de menu avant leur affichage. Chaque section est une touche de chaîne mappée à une zone d’éléments de menu. Il s’agit d’un bon événement pour trier, ajouter, supprimer et modifier des éléments de menu. Déclenché par
elgg_view_menu()
etelgg()->menus->prepareMenu()
.Le tableau
$params
va contenir :selected_item
-ElggMenuItem
sélectionné dans le menu, le cas échéant
La valeur de retour est une instance de
\Elgg\Menu\PreparedMenu
. Le menu préparé est une collection d’objets\Elgg\Menu\MenuSection
, qui sont à leur tour des collections d’objets\ElggMenuItem
.- prepare, menu:<menu_name>:<type>:<subtype>
Version plus granulaire de l’événement de menu déclenché avant l’événement prepare, menu:<menu_name>.
Uniquement appliqué si les paramètres de menu contiennent - params[“entity”] avec un
\ElggEntity
(<type>
est\ElggEntity::type
et<subtype>
est\ElggEntity::subtype` `) ou - params['annotation'] avec un ``\ElggAnnotation
(<type>
est\ElggAnnotation::getType()
et<subtype>
est\ElggAnnotation::getSubtype() ``) ou - params['relationship'] avec un ``\ElggRelationship
(<type>
est\ElggRelationship::getType()
et<subtype>
est\ElggRelationship::getSubtype( )
)- ready, system
Déclenché après l’événement
init, system
. Tous les plugins sont entièrement chargés et le moteur est prêt à servir les pages.- regenerate_site_secret:before, system
Renvoyez false pour annuler la régénération du secret du site. Vous devez également fournir un message à l’utilisateur.
- regenerate_site_secret:after, system
Déclenché après que le secret du site a été régénéré.
- register, menu:<menu_name>
Filtre la liste initiale des éléments de menu issus de la configuration, avant que le menu n’ait été divisé en sections. Déclenché par
elgg_view_menu()
etelgg()->menus->getMenu()
.Le tableau
$params
contiendra les paramètres renvoyés par l’événementparameters, menu:<menu_name>
.La valeur de retour est une instance de
\Elgg\Menu\MenuItems
contenant des objets\ElggMenuItem
.Les gestionnaires d’événements peuvent ajouter/supprimer des éléments à la collection à l’aide de l’API collection, ainsi que des opérations d’accès au tableau.
- register, menu:<menu_name>:<type>:<subtype>
Version plus granulaire de l’événement de menu déclenché avant l’événement prepare, menu:<menu_name>.
Uniquement appliqué si les paramètres de menu contiennent - params[“entity”] avec un
\ElggEntity
(<type>
est\ElggEntity::type
et<subtype>
est\ElggEntity::subtype` `) ou - params['annotation'] avec un ``\ElggAnnotation
(<type>
est\ElggAnnotation::getType()
et<subtype>
est\ElggAnnotation::getSubtype() ``) ou - params['relationship'] avec un ``\ElggRelationship
(<type>
est\ElggRelationship::getType()
et<subtype>
est\ElggRelationship::getSubtype( )
)- register, menu:filter:<filter_id>
Permet aux plugins de modifier les onglets de filtre de mise en page sur les mises en page qui spécifient le paramètre
<filter_id>
. Les paramètres et les valeurs de retour sont les mêmes que dans l’événementregister, menu:<menu_name>
Si
filter_id
vautfilter
(valeur par défaut), alors les ongletsall
,mine
etfriends
seront générés sur la base d’informations fournies, ou seront testés pour des routes similaires à la route actuelle.params[“all_link”] sera utilisé pour l’onglet
all
params[“mine_link”] sera utilisé pour l’onglet
mine
params[“friends_link”] sera utilisé pour l’onglet
friend
Si ce qui précède n’est pas fourni, une route sera essayée en fonction de
params['entity_type']
etparams['entity_subtype']
. S’il n’est pas fourni,entity_type
etentity_subtype
seront basés sur la détection de la route actuelle. Par exemple, si la route actuelle estcollection:object:blog:all
entity_type
seraobject
etentity_subtype
serablog
. - L’ongletall
sera basé sur la routecollection:<entity_type>:<entity_subtype>:all
- L’ongletmine
sera basé sur la routecollection:<entity_type>:<entity_subtype>:owner
- L’onglet `` friend`` sera basé sur la routecollection:<entity_type>:<entity_subtype>:friends
Si les routes ne sont pas enregistrés, les onglets n’apparaîtront pas.
- registration_url, site
Filtre l’URL d’inscription du site. Peut être utilisé par les plugins pour attacher des codes d’invitation, des codes de référence, etc. à l’URL d’inscription. Le tableau
$params
contient un tableau d’éléments de requête ajoutés à l’URL d’enregistrement par le script appelant. L’événement doit renvoyer une URL absolue vers la page d’inscription.- reload:after, translations
Déclenché après que les traductions ont été (re)chargées.
- sanitize, input
Filtre l’entrée GET et POST. Ceci est utilisé par
get_input()
pour assainir les entrées utilisateur.- seeds, database
Permet aux plugins d’enregistrer leurs propres semences de base de données. Les graines remplissent la base de données avec de fausses entités à des fins de test. Les graines doivent étendre la classe
\Elgg\Database\Seeds\Seed
pour qu’elle soit exécutable viaelgg-cli database:seed
.- send:before, http_response
Déclenché avant l’envoi d’une réponse HTTP. Les gestionnaires recevront une instance de la réponse SymfonyComponentHttpFoundationResponse qui doit être envoyée au demandeur. Les gestionnaires peuvent mettre fin à l’événement et empêcher l’envoi de la réponse en renvoyant false.
- send:after, http_response
Déclenché après l’envoi d’une réponse HTTP. Les gestionnaires recevront une instance de la réponse SymfonyComponentHttpFoundationResponse qui a été envoyée au demandeur.
- shutdown, system
Déclenché après l’envoi de la page à l’utilisateur. Des opérations coûteuses pourraient être faites ici sans que cela fasse attendre l’utilisateur.
Note
Selon la configuration de votre serveur, la sortie PHP peut ne pas être affichée avant la fin du processus. Cela signifie que tous les processus longs retarderont toujours le chargement de la page.
Note
Cet événement est préféré à l’utilisation de register_shutdown_function
car vous n’avez peut-être pas accès à tous les services Elgg (par ex. la base de données) dans la fonction d’arrêt, alors que vous l’aurez dans l’événement.
Note
La session Elgg est déjà terminée avant cet événement. La manipulation de la session n’est plus possible.
- simplecache:generate, <view>
Filtre la sortie de la vue pour une URL
/cache
quand simplecache est activé.- upgrade, system
Déclenché une fois la mise à niveau du système terminée. Tous les scripts de mise à niveau sont exécutés, mais les caches ne sont pas effacés.
- upgrade:execute, system
Déclenché lors de l’exécution d’un
ElggUpgrade
. L’objet$object
de l’événement est leElggUpgrade
.
Événements utilisateur
- ban, user
Déclenché avant qu’un utilisateur ne soit banni. Retournez false pour l’éviter.
- change:email, user
Déclenché avant la modification de l’adresse email de l’utilisateur. Permet aux plugins d’implémenter une logique supplémentaire requise pour modifier l’email, par ex. validation supplémentaire par email. Le gestionnaire d’événements doit renvoyer false pour empêcher que l’e-mail soit modifié immédiatement.
Le tableau
$params
va contenir :user
-\ElggUser
, dont les paramètres ont été sauvegardésemail
- Adresse e-mail qui passe les vérifications sanitairesrequest
-\Elgg\Request
vers le contrôleur de l’action
- invalidate:after, user
Déclenché lorsque la validation du compte de l’utilisateur a été révoquée.
- login, user
Triggered when a user is being logged in.
- login:forward, user
Filtre l’URL vers laquelle l’utilisateur sera redirigé après la connexion.
- login:first, user
Déclenché après une connexion réussie. Uniquement s’il n’y a pas de connexion précédente.
- logout:after, user
Déclenché après que l’utilisateur se soit déconnecté.
- logout:before, user
Déclenché pendant la déconnexion. Renvoyer false empêche l’utilisateur de se déconnecter.
- make_admin, user
Déclenché avant qu’un utilisateur ne soit promu administrateur. Retournez false pour l’éviter.
- profileiconupdate, user
L’utilisateur a modifié son icône de profil
- profileupdate, user
L’utilisateur a modifié son profil
- register, user
Déclenché par l’action
register
après l’enregistrement de l’utilisateur. Renvoyezfalse
pour supprimer l’utilisateur. Notez que la fonctionregister_user
ne déclenche pas cet événement. Les gestionnaires d’événements peuvent lancer\Elgg\Exceptions\Configuration\RegistrationException
avec un message d’erreur à afficher à l’utilisateur.Le tableau
$params
va contenir :user
- L’entité utilisateur nouvellement enregistréeTous les paramètres envoyés avec la requête à l’action (comprend
password
,friend_guid
,invitecode
, etc.)
- registeruser:validate:email, all
Renvoie un booléen si la chaîne dans
$params['email']
est une adresse email valide. Le gestionnaire d’événements peut lancer\Elgg\Exceptions\Configuration\RegistrationException
avec un message d’erreur à afficher à l’utilisateur.- registeruser:validate:password, all
Renvoie un booléen si la chaîne dans
$params['password']
est un mot de passe valide. Le gestionnaire d’événements peut lancer une\Elgg\Exceptions\Configuration\RegistrationException
avec un message d’erreur à afficher à l’utilisateur.- registeruser:validate:username, all
Renvoie un booléen si la chaîne dans
$params['username']
est un nom d’utilisateur valide. Le gestionnaire d’événements peut lancer une\Elgg\Exceptions\Configuration\RegistrationException
avec un message d’erreur à afficher à l’utilisateur.- remove_admin, user
Déclenché avant que le rôle d’administrateur ne soit retiré à un utilisateur. Retournez false pour l’éviter.
- unban, user
Déclenché avant qu’un utilisateur ne soit réintégré. Retournez false pour l’éviter.
- username:character_blacklist, user
Filtre la chaîne et supprime les caractères interdits pour valider le nom d’utilisateur lors de l’inscription. La valeur de retour doit être une chaîne composée des caractères refusés. La chaîne par défaut se trouve dans
$params['blacklist']
.- usersettings:save, user
Déclenché dans l’action globale pour enregistrer les paramètres utilisateur. Le gestionnaire d’événements doit retourner
false
pour empêcher que les formulaires persistants ne soient effacés (c’est-à-dire pour indiquer que certaines valeurs n’ont pas été enregistrées). Ne renvoyez pastrue
depuis votre gestionnaire d’événements, car vous écraseriez la sortie des autres événements, mais renvoyez plutôtnull
pour indiquer une opération réussie.Le tableau
$params
va contenir :user
-\ElggUser
, dont les paramètres ont été sauvegardésrequest
-\Elgg\Request
vers le contrôleur de l’action
- validate, user
Lorsqu’un utilisateur s’inscrit, le compte de l’utilisateur est désactivé. Cet événement est déclenché pour permettre à un plugin de déterminer comment l’utilisateur doit être validé (par exemple, par le biais d’un e-mail avec un lien de validation).
- validate:after, user
Déclenché lorsque le compte utilisateur a été validé.
Événements des relations
- create, relationship
Déclenché après la création d’une relation. Renvoyez false pour supprimer la relation qui vient d’être créée.
- delete, relationship
Déclenché avant la suppression d’une relation. Renvoyez false pour éviter qu’elle soit supprimée.
- join, group
Déclenché après que l’utilisateur
$params['user']
a rejoint le groupe$params['group']
.- leave, group
Déclenché avant que l’utilisateur
$params['user']
n’ait quitté le groupe$params['group']
.
Événements des entités
- comments, <entity_type>
Déclenché dans
elgg_view_comments()
. S’il renvoie du contenu, celui-ci remplace la vuepage/elements/comments
.- comments:count, <entity_type>
Renvoie le nombre de commentaires sur
$params['entity']
.- create, <entity type>
Déclenché pour les entités user, group, object et site après leur création. Déclenché juste avant l’événement
create:after
, principalement pour des raisons de rétrocompatibilité. L’utilisation de l’événementcreate:after
est préférable.- create:after, <entity type>
Déclenché pour les entités user, group, object et site après la création.
- create:before, <entity type>
Déclenché pour les entités user, group, object et site avant la création. Renvoyez false pour empêcher la création de l’entité.
- delete, <entity type>
Triggered when an entity is permanently removed from the database. Also see Restore capability
- disable, <entity type>
Déclenché avant qu’une entité soit désactivée. Retournez false pour éviter la désactivation.
- disable:after, <entity type>
Déclenché après qu’une entité a été désactivée.
- enable, <entity type>
Retournez false pour éviter l’activation.
- enable:after, <entity type>
Déclenché après qu’une entité a été activée.
- likes:count, <entity_type>
Renvoie le nombre de mentions J’aime pour
$params['entity']
.- trash, <entity type>
Triggered when an entity is marked as deleted in the database. Also see Restore capability
- update, <entity type>
Déclenché avant une mise à jour pour les entités user, group, object et site. Renvoyez false pour empêcher la mise à jour. La méthode d’entité
getOriginalAttributes()
peut être utilisée pour identifier les attributs qui ont changé depuis la dernière fois que l’entité a été enregistrée.- update:after, <entity type>
Déclenché après une mise à jour pour les entités user, group, object et site. La méthode d’entité
getOriginalAttributes()
peut être utilisée pour identifier les attributs qui ont changé depuis la dernière fois que l’entité a été enregistrée.
Événements des métadonnées
- create, metadata
Appelé après qu’une métadonnée a été créée. Retournez false pour supprimer la métadonnée qui vient d’être créée.
- delete, metadata
Appelé avant que métadonnée soit supprimée. Retournez false pour éviter la suppression.
- update, metadata
Appelé après qu’une métadonnée a été modifiée. Retournez false pour supprimer la métadonnée.
Événements des annotations
- annotate, <entity type>
Appelé avant que l’annotation soit créée. Retournez false pour éviter l’annotation de cette entité.
- create, annotation
Appelé après que l’annotation a été créée. Retournez false pour supprimer l’annotation.
- delete, annotation
Appelé avant que l’annotation soit supprimée. Retournez false pour éviter la suppression.
- update, annotation
Appelé après qu’une annotation a été modifiée. Retournez false pour supprimer l’annotation.
Événements de la rivière
- create:after, river
Appelé après qu’un élément de la rivière a été créé.
- create:before, river
Appelé avant que l’élément river ne soit enregistré dans la base de données. Renvoie
false
pour empêcher la création de l’élément.- delete:after, river
Déclenché après qu’un élément de la rivière a été supprimé.
- delete:before, river
Déclenché avant qu’un élément de la rivière soit supprimé. Renvoyer false annule la suppression.
Événements des accès
- access_collection:url, access_collection
Peut être utilisé pour filtrer l’URL de la collection d’accès.
Le tableau
$params
va contenir :access_collection
- ElggAccessCollection
- access_collection:name, access_collection
Peut être utilisé pour filtrer le nom affiché (niveau d’accès lisible) de la collection d’accès.
Le tableau
$params
va contenir :access_collection
- ElggAccessCollection
- access:collections:read, user
Filtre le tableau des IDs d’accès que l’utilisateur
$params['user_id']
peut voir.Avertissement
Le gestionnaire doit soit ne pas utiliser les parties de l’API qui utilisent le système d’accès (déclenchant à nouveau l’événement), soit ignorer le deuxième appel. Sinon, une boucle infinie sera créée.
- access:collections:write, user
Filtre un tableau d’IDs d’accès sur lesquels l’utilisateur
$params['user_id']
peut écrire. Danselgg_get_write_access_array()
, cet événement filtre la valeur de retour, afin qu’il puisse être utilisé pour modifier les options disponibles dans la vueinput/access
. Pour les plugins principaux, la valeur « input_params » a les clés « entity » (ElggEntity|false), « entity_type » (string), « entity_subtype » (string), « container_guid » (int) fournies. Une valeur d’entité vide signifie généralement que le formulaire doit créer un nouvel objet.Avertissement
Le gestionnaire doit soit ne pas utiliser les parties de l’API qui utilisent le système d’accès (déclenchant à nouveau l’événement), soit ignorer le deuxième appel. Sinon, une boucle infinie sera créée.
- access:collections:write:subtypes, user
Renvoie un tableau de sous-types de collection d’accès à utiliser lors de la récupération des collections d’accès appartenant à un utilisateur, dans le cadre de la fonction
elgg_get_write_access_array()
.- access:collections:add_user, collection
Déclenché avant d’ajouter l’utilisateur
$params['user_id']
à la collection$params['collection_id']
. Retournez false pour éviter l’ajout.- access:collections:remove_user, collection
Déclenché avant de supprimer l’utilisateur
$params[’user_id']
de la collection$params['collection_id']
. Renvoyez false pour éviter la suppression.- create, access_collection
Déclenché durant la création d’une
ElggAccessCollection
.- delete, access_collection
Déclenché durant la suppression d’une
ElggAccessCollection
.- get_sql, access
Filtre les clauses SQL limitant/autorisant l’accès aux entités et aux annotations.
Note
L’événement est déclenché même si l’accès est ignoré. Les gestionnaires devront peut-être vérifier si l’accès est ignoré et retourner une réponse plus tôt, si les clauses ajoutées ne doivent s’appliquer qu’à des contextes à accès contrôlé.
La valeur
$return
est un tableau imbriqué deands
et deors
.$params
comprend :table_alias
- alias de la table principale utilisée dans la clause de sélectionignore_access
- selon que les accès sont ignorés ou activésuse_enabled_clause
- selon que les entités désactivées sont affichées/cachéesaccess_column
- colonne de la table principale contenant l’ID de la collection d’accèsowner_guid_column
- colonne de la table principale faisant référence au GUID du propriétaireguid_column
- colonne de la table principale faisant référence au GUID de l’entitéenabled_column
- colonne de la table principale faisant référence à l’état activé de l’entitéquery_builder
- une instance deQueryBuilder
- update, access_collection
Déclenché durant la mise à jour d’une
ElggAccessCollection
.
Événements des permissions
- container_logic_check, <entity_type>
Déclenché par
ElggEntity:canWriteToContainer()
avant de déclencher les événementspermissions_check
etcontainer_permissions_check
. Contrairement aux événements des permissions, la vérification logique peut être utilisée pour empêcher certains types d’entités d’être contenus par d’autres types d’entités, par ex. les réponses aux discussions ne doivent être contenues que par les discussions. Cet événement peut également être utilisé pour appliquer une logique d’état, par ex. pour interdire les nouvelles réponses pour les discussions fermées.Le gestionnaire devrait renvoyer
false
pour empêcher une entité de contenir une autre entité. La valeur par défaut transmise à l’événement estnull
, donc le gestionnaire peut vérifier si un autre événement a modifié la valeur en vérifiant si la valeur de retour est définie. Si cet événement renvoiefalse
, les événementscontainer_permissions_check
etpermissions_check
ne seront pas déclenchés.Le tableau
$params
va contenir :container
- Une entité qui sera utilisée comme conteneuruser
- L’utilisateur qui sera propriétaire de l’entité à écrire dans le conteneursubtype
- Subtype de l’entité à écrire dans le conteneur (le type d’entité est déduit à partir du type d’événement)
- container_permissions_check, <entity_type>
Renvoie un booléen pour indiquer si l’utilisateur
$params['user']
peut utiliser l’entité$params['container']
comme conteneur pour une entité<entity_type>
et le sous-type$params['subtype']
.Dans les rares cas où une entité est créée sans le
container_guid
ni leowner_guid
correspondant à l’utilisateur connecté, cet événement est appelé deux fois, et lors du premier appel$params['container ']
sera le propriétaire, et pas le véritable conteneur de l’entité.Le tableau
$params
va contenir :container
- Une entité qui sera utilisée comme conteneuruser
- L’utilisateur qui sera propriétaire de l’entité à écrire dans le conteneursubtype
- Subtype de l’entité à écrire dans le conteneur (le type d’entité est déduit à partir du type d’événement)
- permissions_check, <entity_type>
Renvoie un booléen pour indiquer si l’utilisateur
$params['user']
peut modifier l’entité$params['entity']
.- permissions_check:delete, <entity_type>
Renvoie un booléen pour indiquer si l’utilisateur
$params['user']
peut supprimer l’entité$params['entity']
. Vaut par défaut$entity->canEdit()
.- permissions_check:delete, river
Renvoyez un booléen pour indiquer si l’utilisateur
$params['user']
peut supprimer l’élément de la rivière$params['item']
. Par défaut àtrue
pour les administrateurs etfalse
pour les autres utilisateurs.- permissions_check:download, file
Renvoie un booléen pour indiquer si l’utilisateur
$params['user']
peut télécharger le fichier dans$params['entity']
.Le tableau
$params
va contenir :entity
- Instance deElggFile
user
- Utilisateur qui va télécharger le fichier
- permissions_check, widget_layout
Renvoie un booléen pour indiquer si
$params['user']
peut modifier les widgets dans le contexte passé par$params['context']
et avec le propriétaire de page$params['page_owner']
.- permissions_check:comment, <entity_type>
Renvoie un booléen pour indiquer si l’utilisateur
$params['user']
peut commenter l’entité$params['entity']
.- permissions_check:annotate:<annotation_name>, <entity_type>
Renvoie un booléen pour indiquer si l’utilisateur
$params['user']
peut créer une annotation<annotation_name>
sur l’entité$params['entity']
. Si l’utilisateur est connecté, la valeur par défaut est true.Note
Ceci est appelé avant l’événement plus général
permissions_check:annotate
, et sa valeur de retour est la valeur initiale de cet événement.- permissions_check:annotate, <entity_type>
Renvoie un booléen pour indiquer si l’utilisateur
$params['user']
peut créer une annotation$params['annotation_name']
sur l’entité$params['entity']
. Si l’utilisateur est connecté, la valeur par défaut est true.- api_key, use
Déclenché dans la classe
\Elgg\WebServices\PAM\API\APIKey
. Renvoyer false empêche l’authentification de la clef.- gatekeeper, <entity_type>:<entity_subtype>
Filtre le résultat de
elgg_entity_gatekeeper()
pour bloquer ou autoriser l’accès à une entité à laquelle l’utilisateur aurait ou n’aurait pas accès autrement. Un gestionnaire peut renvoyerfalse
ou une instance de\Elgg\Exceptions\HttpException
pour empêcher l’accès à une entité. Un gestionnaire peut retournertrue
pour remplacer le résultat du gatekeeper. Important l’entité reçue par cet événement est récupérée en ignorant les accès, et en incluant les entités désactivées, vous devez donc faire attention à ne pas contourner le système d’accès.le tableau
$params
comprend :entity
- Entité à laquelle on accèdeuser
- L’utilisateur qui accède à l’entité (null
implique l’utilisateur connecté)
Événements des notifications
- dequeue, notifications
Appelé lorsqu’un objet ElggData est supprimé de la file d’attente des notifications pour être traité
- enqueue, notifications
Appelé lorsqu’un objet ElggData est en train d’être ajouté à la file d’attente des notifications
Les événements suivants sont répertoriés chronologiquement au cours de la durée de vie de l’événement de notification. Notez que tous les événements ne s’appliquent pas aux notifications instantanées.
- enqueue, notification
Peut être utilisé pour empêcher un événement de notification d’envoyer des notifications subscription. Le gestionnaire d’événements doit renvoyer
false
pour empêcher qu’un événement de notification d’abonnement ne soit mis en file d’attente.le tableau
$params
comprend :object
- objet de l’événement de notificationaction
- action qui a déclenché l’événement de notification. Par exemple, correspond àpublish
quandelgg_trigger_event('publish', 'object', $object)
est appelé
- get, subscriptions
Filtre les abonnés de l’événement de notification. S’applique aux notifications d’abonnement subscriptions et instantanées instant. Lors d’un événement d’abonnement, par défaut, la liste des abonnés se compose des utilisateurs abonnés à l’entité conteneur de l’objet de l’événement. En cas d’événement de notification instantanée, la liste des abonnés se compose des utilisateurs précédemment passés en tant que destinataires à
notify_user()
IMPORTANT Validez toujours les types d’événement, d’objet et/ou d’action de notification avant d’ajouter de nouveaux destinataires pour vous assurer que vous n’envoyez pas accidentellement des notifications à des destinataires inattendus. Prenons une situation dans laquelle un plugin de mentions envoie une notification instantanée à un utilisateur mentionné - tout événement agissant sur un sujet ou un objet sans valider un événement ou un type d’action (par exemple inclure un propriétaire du fil de discussion d’origine) pourrait finir par envoyer des notifications aux mauvais utilisateurs.
le tableau
$params
comprend :event
- instance de\Elgg\Notifications\NotificationEvent
qui décrit l’événement de notificationorigin
-subscriptions_service
ouinstant_notifications
methods_override
- préférence de méthode de remise pour les notifications instantanées
Les gestionnaires doivent renvoyer un tableau de la forme :
array(
<user guid> => array('sms'),
<user_guid2> => array('email', 'sms', 'ajax')
);
- send:before, notifications
Déclenché avant le traitement de la file d’attente des événements de notification. Peut être utilisé pour mettre fin à l’événement de notification. S’applique aux notifications d’abonnement subscriptions et instantanées instant.
le tableau
$params
comprend :event
- instance de\Elgg\Notifications\NotificationEvent
qui décrit l’événement de notificationsubscriptions
- une liste d’abonnements. Voir l’événement'get', 'subscriptions'
pour plus de détails
- prepare, notification
Un événement de haut niveau qui peut être utilisé pour modifier une instance de
\Elgg\Notifications\Notification
avant qu’elle ne soit envoyée à l’utilisateur. S’applique aux abonnements et aux notifications instantanées. Cet événement est déclenché avant une'prepare', 'notification:<action>:<entity_type>:<entity_subtype>'
plus granulaire et après'send:before', 'notifications
. Le gestionnaire d’événements doit renvoyer un objet de notification modifié.$params
peut varier en fonction du type de notification et peut comprendre :event
- instance de\Elgg\Notifications\NotificationEvent
qui décrit l’événement de notificationobject
- objet de la notificationevent
. Peut êtrenull
pour les notifications instantanéesaction
- action qui a déclenché la notificationevent
. Peut avoir pour valeur par défautnotify_user
pour les notifications instantanéesmethod
- méthode d’envoi (par ex.email
,site
)sender
- expéditeurrecipient
- destinatairelanguage
- langue de la notification (langue du destinataire)origin
-subscriptions_service
ouinstant_notifications
- prepare, notification:<action>:<entity_type>:<entity_type>
Un événement granulaire qui peut être utilisé pour filtrer une notification
\Elgg\Notifications\Notification
avant qu’elle ne soit envoyée à l’utilisateur. S’applique aux subscriptions et aux notifications instant. En cas de notifications instantanées qui n’ont pas reçu d’objet, l’événement sera appelé'prepare', 'notification:<action>'
. Dans le cas de notifications instantanées qui n’ont pas reçu de nom d’action, il sera par défautnotify_user
.$params
comprend :event
- instance de\Elgg\Notifications\NotificationEvent
qui décrit l’événement de notificationobject
- objet de la notificationevent
. Peut êtrenull
pour les notifications instantanéesaction
- action qui a déclenché la notificationevent
. Peut avoir pour valeur par défautnotify_user
pour les notifications instantanéesmethod
- méthode d’envoi (par ex.email
,site
)sender
- expéditeurrecipient
- destinatairelanguage
- langue de la notification (langue du destinataire)origin
-subscriptions_service
ouinstant_notifications
- format, notification:<method>
Cet événement peut être utilisé pour formater une notification avant qu’elle soit transmise à l’événement
'send', 'notification:<method>'
. S’applique aux notifications subscriptions et instant. Le gestionnaire d’événement doit renvoyer une instance de\Elgg\Notifications\Notification
. L’événement ne reçoit aucun$params
. Quelques cas d’utilisation :Supprime les balises du titre et du corps de la notification pour les notifications par e-mail en texte brut
Styles HTML en ligne pour les e-mails de notification HTML
Envelopper la notification dans un modèle, ajouter une signature, etc.
- send, notification:<method>
Délivre une notification. S’applique aux notifications d’abonnement subscriptions et instantanées instant. Le gestionnaire doit retourner
true
oufalse
pour indiquer le résultat de la remise.le tableau
$params
comprend :notification
- un objet de notification\Elgg\Notifications\Notification
- send:after, notifications
Déclenché après que toutes les notifications dans la file d’attente pour l’événement notifications ont été traitées. S’applique aux notifications d’abonnement subscriptions et instantanées instant.
le tableau
$params
comprend :event
- instance de\Elgg\Notifications\NotificationEvent
qui décrit l’événement de notificationsubscriptions
- une liste d’abonnements. Voir l’événement'get', 'subscriptions'
pour plus de détailsdeliveries
- une matrice des statuts de remise par utilisateur pour chaque méthode de livraison
E-mails
- prepare, system:email
Déclenché par
elgg_send_email()
. S’applique à tous les emails système et de notification sortants. Cet événement vous permet de modifier une instance de\Elgg\Email
avant qu’elle soit transmise à l’agent de transport de courrier électronique. Cet événement peut être utilisé pour modifier l’expéditeur, le destinataire, l’objet, le corps et/ou les entêtes de l’email.$params
est vide. La valeur de retour$return
est une instance de\Elgg\Email
.- transport, system:email
Déclenché par
elgg_send_email()
. S’applique à tous les emails système et de notification sortants. Cet événement vous permet d’implémenter un transport de courrier électronique personnalisé, par ex. envoyer des emails via un service proxy tiers tel que SendGrid ou Mailgun. Le gestionnaire doit retournertrue
pour indiquer que l’email a bien été transporté.$params
contient :email
- Une instance de\Elgg\Email
- validate, system:email
Déclenché par
elgg_send_email()
. S’applique à tous les emails système et de notification sortants. Cet événement vous permet de supprimer ou de mettre sur liste blanche les emails sortants, par ex. lorsque le site est en mode développement. Le gestionnaire doit retournerfalse
pour supprimer l’envoi du courrier électronique.$params
contient :email
- Une instance de\Elgg\Email
- zend:message, system:email
Déclenché par le gestionnaire de transport de courrier électronique par défaut (Elgg utilise
laminas/laminas-mail
). S’applique à tous les emails système et de notification sortants qui n’ont pas été transportés à l’aide de l’événement transport, system:email. Cet événement vous permet de modifier une instance de\Laminas\Mail\Message
avant qu’elle soit transmise au transport de courrier électronique Laminas.$params
contient :email
- Une instance de\Elgg\Email
Événements des fichiers
- download:url, file
- Permet aux plugins de filtrer l’URL de téléchargement du fichier.
Par défaut, l’URL de téléchargement est générée par le service de fichiers.
le tableau
$params
comprend :entity
- instance deElggFile
use_cookie
- utiliser ou non un cookie pour sécuriser le lien de téléchargementexpires
- une représentation sous forme de chaîne indiquant quand le lien de téléchargement doit expirer
- inline:url, file
- Permet aux plugins de filtrer l’URL en ligne du fichier image.
Par défaut, l’URL en ligne - inline - est générée par le service de fichiers.
le tableau
$params
comprend :entity
- instance deElggFile
use_cookie
- utiliser ou non un cookie pour sécuriser le lien de téléchargementexpires
- une représentation sous forme de chaîne indiquant quand le lien de téléchargement doit expirer
- mime_type, file
Renvoie le type MIME pour le nom de fichier
$params['filename']
avec le nom de fichier original$params['original_filename']
et avec le type MIME détecté par défaut de$params['default']
.- simple_type, file
L’événement fournit
$params['mime_type']
(par exempleapplication/pdf
ouimage/jpeg
) et détermine une catégorie globale commedocument
ouimage
. Le plugin file fourni et les autres plugins tiers stockent généralement les métadonnéessimpletype
sur les entités de fichiers et les utilisent lors du service d’icônes et de la construction de filtres et de menusege*
.- upload, file
Permet aux plugins d’implémenter une logique personnalisée pour déplacer un fichier téléchargé dans une instance de ElggFile. Le gestionnaire doit renvoyer
true
pour indiquer que le fichier téléchargé a été déplacé. Le gestionnaire doit renvoyerfalse
pour indiquer que le fichier téléchargé n’a pas pu être déplacé. D’autres valeurs de retour indiqueront queElggFile::acceptUploadedFile
devrait poursuivre la logique de téléchargement par défaut.le tableau
$params
comprend :file
- instance deElggFile
dans laquelle écrireupload
- instance deUploadedFile
de Symfony
- upload:after, file
Appelé après qu’un fichier téléchargé a été écrit dans le répertoire de fichiers. Reçoit une instance du
ElggFile
dans lequel le fichier téléchargé a été écrit. LeElggFile
peut ou non être une entité avec un GUID.
Événements des actions
- action:validate, <action>
Déclenchement avant l’exécution du script d’action/du contrôleur. Cet événement doit être utilisé pour valider/modifier la saisie de l’utilisateur, avant de poursuivre l’action. Le gestionnaire d’événements peut lancer une instance de
\Elgg\Exceptions\Http\ValidationException
ou renvoyerfalse
pour interrompre l’exécution.le tableau
$params
comprend :request
- instance de\Elgg\Request
- action_gatekeeper:permissions:check, all
Déclenché après la validation d’un jeton CSRF. Renvoyez false pour empêcher la validation.
- forward, <reason>
Filtre l’URL pour rediriger un utilisateur lorsque
forward($url, $reason)
est appelé. Dans certains cas, le tableauparams
va contenir une instance de\Elgg\Exceptions\HttpException
qui a déclenché l’erreur.- response, action:<action>
Filtrez une instance de
\Elgg\Http\ResponseBuilder
avant qu’elle ne soit envoyée au client. Cet événement peut être utilisé pour modifier le contenu de la réponse, le code d’état, l’URL de transfert ou définir des en-têtes de réponse supplémentaires. Notez que la valeur<action>
est analysée à partir de l’URL de la requête, vous ne pourrez donc peut-être pas filtrer les réponses des appels action() si elles sont imbriquées dans un autre fichier de script d’action.
Ajax
- ajax_response, *
When the
elgg/Ajax
module is used, this event gives access to the response object (\Elgg\Services\AjaxResponse
) so it can be altered/extended. The event type depends on the method call:méthode elgg/Ajax
type d’événement
action()
action:<action_name>
path()
path:<url_path>
view()
view:<view_name>
form()
form:<action_name>
- ajax_response, action:<action_name>
Filtre les réponses
action/
avant qu’elles soient renvoyées au moduleelgg/Ajax
.- ajax_response, path:<path>
Filtre les réponses ajax avant qu’elles soient renvoyées au module
elgg/Ajax
. Ce type d’événement ne sera utilisé que si le chemin ne commence pas par « action/ » ou « ajax/ ».- ajax_response, view:<view>
Filtre les réponses
ajax/view/
avant qu’elles soient renvoyées au moduleelgg/Ajax
.- ajax_response, form:<action_name>
Filtre les réponses
ajax/form/
avant qu’elles soient renvoyées au moduleelgg/Ajax
.
Routage
- response, path:<path>
Filtre une instance de
\Elgg\Http\ResponseBuilder
avant qu’elle ne soit envoyée au client. Ce type d’événement ne sera utilisé que si le chemin ne commence pas par « action/ » ou « ajax/ ». Cet événement peut être utilisé pour modifier le contenu de la réponse, le code d’état, l’URL de transfert ou définir des entêtes de réponse supplémentaires. Notez que la valeur<path>
est analysée à partir de l’URL de la requête, donc les plugins utilisant l’événementroute
doivent utiliser le<path>
d’origine pour filtrer la réponse, ou passer à l’utilisation deroute:rewrite
événement.- route:config, <route_name>
Permet de modifier la configuration de la route avant son enregistrement. Cet événement peut être utilisé pour modifier le chemin, les valeurs par défaut, les pré-requis, ainsi que pour définir/supprimer un middleware. Veuillez noter que le gestionnaire de cet événement doit être enregistré en dehors du gestionnaire d’événement
init
, car les routes principales sont enregistrées lors de l’événementplugins_boot
.- route:rewrite, <identifier>
Permet de modifier le chemin de l’URL relative au site pour une demande entrante. Voir Routage pour plus de détails. Veuillez noter que le gestionnaire de cet événement doit être enregistré en dehors du gestionnaire d’événement
init
, car les réécritures de route ont lieu après la fin de l’événementplugins_boot
.
Vues
- attributes, htmlawed
Permet de modifier des attributs individuels.
- allowed_styles, htmlawed
Configure les styles autorisés pour HTMLawed.
- config, htmlawed
Filtre le tableau HTMLawed
$config
.- form:prepare:fields, <form_name>
Préparez les valeurs des champs à utiliser dans le formulaire. Par ex. lors de la modification d’un blog, remplissez-le avec les valeurs actuelles du blog. Les valeurs du formulaire collant seront automatiquement ajoutées aux valeurs des champs (si disponibles).
- head, page
Dans
elgg_view_page()
, filtre la valeur de retour de$vars['head']
, qui contient un tableau avec les clefstitle
,metas
etlinks
, oùmetas
est un tableau d’éléments à formater sous la forme de balises d’entête<meta>
, etlinks
est un tableau d’éléments à formater sous la forme de baslises d’entête<link>
. Chaque élément meta et link contient un ensemble de paires de clés/valeurs qui sont formatées en attributs de balise html, par ex.
return [
'title' => 'Current page title',
'metas' => [
'viewport' => [
'name' => 'viewport',
'content' => 'width=device-width',
]
],
'links' => [
'rss' => [
'rel' => 'alternative',
'type' => 'application/rss+xml',
'title' => 'RSS',
'href' => elgg_format_url($url),
],
'icon-16' => [
'rel' => 'icon',
'sizes' => '16x16',
'type' => 'image/png',
'href' => elgg_get_simplecache_url('graphics/favicon-16.png'),
],
],
];
- layout, page
Dans
elgg_view_layout()
, filtre le nom de la disposition. Le tableau$params
comprend :identifier
- identifiant de la page en cours de rendusegments
- Segments d’URL de la page en cours de renduautres
$vars
reçues parelgg_view_layout()
- response, form:<form_name>
Filtrez une instance de
\Elgg\Http\ResponseBuilder
avant qu’elle ne soit envoyée au client. S’applique à la demande adressée à/ajax/form/<form_name>
. Cet événement peut être utilisé pour modifier le contenu de la réponse, le code d’état, l’URL de transfert ou définir des entêtes de réponse supplémentaires.- response, view:<view_name>
Filtrez une instance de
\Elgg\Http\ResponseBuilder
avant qu’elle soit envoyée au client. S’applique à la requête adressée à/ajax/view/
. Cet événement peut être utilisé pour modifier le contenu de la réponse, le code d’état, l’URL de transfert ou définir des entêtes de réponse supplémentaires.- shell, page
Dans
elgg_view_page()
, filtre le nom de la coquille - page shell - de la page- spec, htmlawed
Filtre la chaîne HTMLawed
$spec
(vide par défaut).- table_columns:call, <name>
Lorsque la méthode
elgg()->table_columns->$name()
est appelée, cet événement est appelé pour permettre aux plugins de remplacer ou de fournir une implémentation. Les gestionnaires reçoivent les arguments de la méthode via$params['arguments']
et doivent renvoyer une instance deElgg\Views\TableColumn
s’ils souhaitent spécifier la colonne directement.- vars:compiler, css
Permet aux plugins de modifier les variables CSS transmises à CssCrush pendant la compilation. Voyez les variables CSS <_guides/theming#css-vars>.
- view, <view_name>
Filtre le contenu renvoyé par la vue
- view_vars, <view_name>
Filtre le tableau
$vars
passé à la vue
Recherche
- search:config, search_types
Implémenté dans le plugin search. Filtre un tableau de types de recherche personnalisés. Cela permet aux plugins d’ajouter des types de recherche personnalisés (par ex. une recherche par mots-clefs ou par localisation géographique). L’ajout d’un type de recherche personnalisé permettra d’étendre l’interface utilisateur du plugin de recherche avec des liens et des listes appropriés.
- search:config, type_subtype_pairs
Implémenté dans le plugin search. Filtre les paires de types/sous-types d’entités avant l’exécution de la recherche d’entité. Permet aux plugins de supprimer certains types/sous-types d’entités des résultats de recherche, de regrouper plusieurs sous-types, ou de réorganiser des sections de recherche.
- search:fields, <entity_type>
Déclenché par
elgg_search()
. Filtre les champs de recherche avant que les clauses de recherche ne soient préparées. La valeur$return
contient un tableau avec les noms de chaque type de propriété d’entité, qui devrait être comparé à la requête de recherche. Le tableau$params
contient un tableau de paramètres de recherche transmis et filtrés parelgg_search()
.
return [
'attributes' => [],
'metadata' => ['title', 'description'],
'annotations' => ['revision'],
];
- search:fields, <entity_type>:<entity_subtype>
Voyez search:fields, <entity_type>
- search:fields, <search_type>
Voyez search:fields, <entity_type>
- search:format, entity
Implémenté dans le plugin search. Permet aux plugins de renseigner les données volatiles de l’entité avant qu’elles ne soient transmises à la vue de recherche. Ceci est utilisé pour mettre en surbrillance les correspondances de la recherche, extraire les sous-chaînes pertinentes dans les champs de texte long, etc.
- search:options, <entity_type>
Déclenché par
elgg_search()
. Prépare les clauses de recherche (options) à transmettre àelgg_get_entities()
.- search:options, <entity_type>:<entity_subtype>
Voyez search:options, <entity_type>
- search:options, <search_type>
Voyez search:options, <entity_type>
- search:params, <search_type>
Déclenché par
elgg_search()
. Filtre les paramètres de recherche (requête, tri, champs de recherche, etc.) avant que les clauses de recherche ne soient préparées pour un type de recherche donné. Le noyau de Elgg ne prend en charge que le type de rechercheentities
.- search:results, <search_type>
Déclenché par
elgg_search()
. Reçoit les options normalisées adaptées à l’appelelgg_get_entities()
et doit renvoyer un tableau d’entités correspondant aux options de recherche. Cet événement est conçu pour être utilisé par des plugins intégrant des services d’indexation tiers, tels que Solr et Elasticsearch.
Autres
- config, comments_per_page
Filtre le nombre de commentaires affichés par page. La valeur par défaut est 25.
$params['entity']
contiendra l’entité contenant ou null si elle n’est pas fournie. Utilisezelgg_comments_per_page()
pour obtenir la valeur.- config, comments_latest_first
Filtre l’ordre des commentaires. Vaut
true
par défaut pour le plus récent en premier.$params['entity']
indique l’entité contenante, ou null si elle n’est pas fournie.- default, access
Dans
elgg_get_default_access()
, cet événement filtre la valeur de retour, afin de pouvoir l’utiliser pour modifier la valeur par défaut dans la vue input/access. Pour les plugins principaux, la valeur « input_params » fournit les clés « entity » (ElggEntity|false), « entity_type » (string), « entity_subtype » (string), « container_guid » (int). Une valeur d’entité vide signifie généralement que le formulaire doit créer un nouvel objet.- classes, icon
Peut être utilisé pour filtrer les classes CSS appliquées aux glyphes d’icônes. Par défaut, Elgg utilise FontAwesome. Les plugins peuvent utiliser cet événement pour passer à une autre famille de polices et remapper les classes d’icônes.
- entity:icon:sizes, <entity_type>
Déclenché par
elgg_get_icon_sizes()
, définit le type d’entité/le sous-type de tailles d’icônes spécifiques.entity_subtype
sera transmis dans le tableau$params
à la fonction de rappel.- entity:<icon_type>:sizes, <entity_type>
Permet de filtrer les tailles pour les types d’icônes personnalisés, voir
entity:icon:sizes, <entity_type>
.L’événement doit renvoyer un tableau associatif où les clés sont les noms des tailles d’icônes (par ex. « large ») et les valeurs sont des tableaux avec les clés suivantes :
w
- Largeur de l’image en pixelsh
- Hauteur de l’image en pixelssquare
- Le ratio devrait-il être carré (true/false)upscale
- L’image doit-elle être agrandie si elle est plus petite que la largeur et la hauteur indiquées (true/false)crop
- Est-ce que le recadrage est autorisé sur cette taille d’image (true/false, par défaut : true)Si le tableau de configuration d’une taille d’image est vide, l’image sera enregistrée en tant que copie exacte de la source sans redimensionnement ni recadrage.
Exemple :
return [
'small' => [
'w' => 60,
'h' => 60,
'square' => true,
'upscale' => true,
],
'large' => [
'w' => 600,
'h' => 600,
'upscale' => false,
],
'original' => [],
];
- entity:icon:url, <entity_type>
Déclenché lorsque l’URL de l’icône de l’entité est demandée, voir les icônes des entités. La fonction de rappel doit renvoyer l’URL de l’icône de dimension
$params['size']
pour l’entité$params['entity']
. Les paramètres suivants sont disponibles via le tableau$params
:- entity
Entité pour laquelle l’url de l’icône est demandée.
- viewtype
Le type de vue, par exemple
'default'
ou'json'
.- size
Dimension demandée, voir les icônes des entités pour les valeurs possibles.
Exemple sur comment mettre en place une icône par défaut Gravatar pour les utilisateurs qui n’ont pas encore téléchargé un avatar :
// Priority 600 so that handler is triggered after avatar handler
elgg_register_event_handler('entity:icon:url', 'user', 'gravatar_icon_handler', 600);
/**
* Default to icon from gravatar for users without avatar.
*
* @param \Elgg\Event $event 'entity:icon:url', 'user'
*
* @return string|null
*/
function gravatar_icon_handler(\Elgg\Event $event): ?string {
$entity = $event->getEntityParam();
$size = $event->getParam('size');
// Allow users to upload avatars
if ($entity->hasIcon($size)) {
return null;
}
// Generate gravatar hash for user email
$hash = md5(strtolower(trim($entity->email)));
// Default icon size
$size = '150x150';
// Use configured size if possible
$config = elgg_get_icon_sizes('user');
$key = $event->getParam('size');
if (isset($config[$key])) {
$size = $config[$key]['w'] . 'x' . $config[$key]['h'];
}
// Produce URL used to retrieve icon
return "https://www.gravatar.com/avatar/{$hash}?s={$size}";
}
- entity:<icon_type>:url, <entity_type>
Permet de filtrer les URLs pour les types d’icônes personnalisés, voir
entity:icon:url, <entity_type>
- entity:icon:file, <entity_type>
Déclenché par
ElggEntity::getIcon()
, et permet aux plugins de fournir un objet alternatifElggIcon
qui pointe vers un emplacement personnalisé de l’icône dans le répertoire de fichiers. Le gestionnaire doit renvoyer une instance deElggIcon
ou une exception sera lancée.- entity:<icon_type>:file, <entity_type>
Permet de filtrer l’objet du fichier d’icône pour les types d’icônes personnalisés ; voyez
entity:icon:file, <entity_type>
- entity:<icon_type>:prepare, <entity_type>
Déclenché par les méthodes
ElggEntity::saveIcon*()
et peut être utilisé pour préparer une image à partir d’un fichier téléchargé ou lié. Cet événement peut être utilisé par ex. pour faire pivoter l’image avant qu’elle ne soit redimensionnée/recadrée, ou peut être utilisé pour extraire une image si le fichier téléchargé est une vidéo. Le gestionnaire doit renvoyer une instance deElggFile
avec un simpletype qui se résout en image. La valeur$return
transmise à l’événement est une instance deElggFile
qui pointe vers une copie temporaire du fichier téléchargé ou lié.Le tableau
$params
contient :entity
- entité propriétaire des icônesfile
- fichier d’entrée original avant qu’il ne soit modifié par d’autres événements
- entity:<icon_type>:save, <entity_type>
Déclenché par les méthodes
ElggEntity:::saveIcon*()
, et qui peut être utilisé pour appliquer une logique de manipulation d’image personnalisée pour redimensionner/recadrer les icônes. Le gestionnaire doit renvoyertrue
pour empêcher les API du noyau de redimensionner/rogner les icônes. Le tableau$params
contient :entity
- entité propriétaire des icônesfile
- objetElggFile
qui pointe vers le fichier image à utiliser comme source pour les icônesx1
,y1
,x2
,y2
- coordonnées de découpe
- entity:<icon_type>:saved, <entity_type>
Déclenché par les méthodes
ElggEntity::saveIcon*()
une fois les icônes créées. Cet événement peut être utilisé par les plugins pour créer des éléments dans la rivière, mettre à jour les coordonnées de recadrage pour les types d’icônes personnalisés, etc. Le gestionnaire peut accéder aux icônes créées en utilisantElggEntity::getIcon()
. Le tableau$params
contient :entity
- entité propriétaire des icônesx1
,y1
,x2
,y2
- coordonnées de découpe
- entity:<icon_type>:delete, <entity_type>
Déclenché par la méthode
ElggEntity::deleteIcon()
et peut être utilisé pour les opérations de nettoyage. Cet événement est déclenché avant la suppression des icônes. Le gestionnaire peut renvoyerfalse
pour empêcher la suppression des icônes. Le tableau$params
contient :entity
- entité propriétaire des icônes
- entity:url, <entity_type>
Renvoie l’URL de l’entité
$params['entity']
. Remarque : Généralement, il est préférable de remplacer la méthodegetUrl()
d’ElggEntity. Cet événement doit être utilisé lorsqu’il n’est pas possible de sous-classer (comme si vous souhaitez étendre un plugin fourni sans remplacer de nombreuses vues).- extender:url, <annotation|metadata>
Renvoie l’URL de l’annotation ou les métadonnées
$params['extender']
.- fields, <entity_type>:<entity_subtype>
Renvoie un tableau de champs utilisable par
elgg_view_field()
. Le résultat doit être renvoyé sous la forme d’un tableau de champs. Il est nécessaire de fournirname
et#type
pour chaque champ.
$result = [];
$result[] = [
'#type' => 'longtext',
'name' => 'description',
];
return $result;
- get_list, default_widgets
Filtre une liste de widgets par défaut à ajouter pour les utilisateurs nouvellement enregistrés. La liste est un tableau de tableaux dans le format :
array(
'name' => elgg_echo('name'),
'widget_columns' => 3,
'widget_context' => $widget_context,
'event_name' => $event_name,
'event_type' => $event_type,
'entity_type' => $entity_type,
'entity_subtype' => $entity_subtype,
)
- handlers, widgets
Déclenché lorsqu’une liste de widgets disponibles est nécessaire. Les plugins peuvent ajouter ou supprimer des widgets de cette liste de manière conditionnelle, ou modifier des attributs de widgets existants comme
context
oumultiple
.- maintenance:allow, url
- Retourne un booléen si l’URL
$params['current_url']
et le chemin$params['current_path']
sont autorisés pendant le mode de maintenance.
- Retourne un booléen si l’URL
- plugin_setting, <entity type>
Peut être utilisé pour modifier la valeur du paramètre en cours d’enregistrement
Params contient : -
entity
- L”ElggEntity
où le paramètre du plugin est enregistré -plugin_id
- L’ID du plugin pour lequel le paramètre est enregistré -name
- Le nom du paramètre en cours d’enregistrement -valeur
- La valeur d’origine du paramètre en cours d’enregistrementLa valeur de retour doit être un scalaire afin de pouvoir l’enregistrer dans la base de données. Une erreur sera journalisée si ce n’est pas le cas.
- public_pages, walled_garden
Filtre une liste d’URLs (chemins) qui peuvent être vues par les utilisateurs déconnectés en mode jardin clos - walled garden. Les gestionnaires doivent renvoyer un tableau de chaînes regex qui autoriseront l’accès si elles correspondent. Veuillez noter que les routes publiques du système sont transmises comme valeur par défaut à l’événement et que les plugins doivent veiller à ne pas remplacer accidentellement ces valeurs.
Le tableau
$params
contient :url
- URL de la page testée pour l’accessibilité publique
- relationship:url, <relationship_name>
Filtre l’URL pour l’objet de la relation
$params['relationship']
.- robots.txt, site
Filtre les valeurs de robots.txt pour
$params['site']
.- setting, plugin
Filtre les paramètres du plugin.
$params
contient :plugin
- Une instance de ElggPluginplugin_id
- L’ID du pluginname
- Le nom du paramètrevalue
- La valeur à définir
- to:object, <entity_type|metadata|annotation|relationship|river_item>
Convertit l’entité
$params['entity']
en objet StdClass. Ceci est utilisé principalement pour exporter des propriétés d’entité vers des formats de données portables comme JSON et XML.
Plugins
Groupes
- tool_options, group
Filtre une collection d’outils disponibles au sein d’un groupe spécifique :
Le retour
$return
est\Elgg\Collections\Collection<\Elgg\Groups\Tool>
, une collection d’outils de groupe.Le tableau
$params
contient :entity
-\ElggGroup
Web Services
- register, api_methods``
Déclenché lors de la construction de l’ApiRegistrationService, ce qui permet d’ajouter/supprimer/modifier des configurations de webservice
- rest, init
Déclenché par le gestionnaire de webservices rest. Les plugins peuvent configurer leurs propres gestionnaires d’authentification, puis renvoyer
true
pour empêcher les gestionnaires par défaut d’être enregistrés.- rest:output, <method_name>
Filtrer le résultat (et par la suite la sortie) de la méthode API