Liste des hooks de plugin du noyau¶
Contenus
Hooks système¶
- page_owner, system
Filtre le page_owner de la page courante. Aucune option n’est passée.
siteid, system
- gc, system
Autorise les plugins à exécuter la collecte des déchets (« garbage collection ») pour
$params['period']
.- unit_test, system
Ajouter un test Simple Test. (Obsolète.)
- diagnostics:report, system
Filtre la sortie pour le téléchargement du rapport de diagnostic.
search_types, get_types
- cron, <period>
Déclenché par le cron pour chaque période.
- validate, input
Filtre l’entrée GET et POST. Ceci est utilisé par
get_input()
pour assainir les entrées utilisateur.- geocode, location
Déprécié à partir de 1.9.
- diagnostics:report, system
Filtre la sortie pour un rapport de diagnostic.
- debug, log
Déclenché par le Logger. Retourne false pour arrêter la méthode de journalisation par défaut.
$params
comprend :- level - Le niveau de débogage. Au choix parmi :
Elgg_Logger::OFF
Elgg_Logger::ERROR
Elgg_Logger::WARNING
Elgg_Logger::NOTICE
Elgg_Logger::INFO
msg - Le message
display - Est-ce que ce message devrait être affiché ?
- format, friendly:title
Formate un titre « amical » pour les chaînes de caractères. Ceci est utilisé pour générer des URLs.
- format, friendly:time
Formate une date « amicale » pour le timestamp
$params['time']
.- format, strip_tags
Filtre une chaîne pour supprimer les balises. La chaîne d’origine est passée sous le nom de
$params['original_string']
et un ensemble facultatif de balises autorisées est passé sous le nom de$params['allowed_tags']
.- output:before, page
Dans
elgg_view_page()
, ceci filtre$vars
avant qu’il ne soit transmis à la vue d’affichage de la coquille de la page (page/<page_shell>
). Pour supprimer l’envoi de l’entête X-Frame-Options, dé-enregistrez le gestionnaire_elgg_views_send_header_x_frame_options()
de ce hook.- output, page
Dans
elgg_view_page()
, ceci filtre la valeur de retour renvoyée.- output:before, layout
Dans
elgg_view_layout()
, filtre$params
avant qu’il ne soit passé à la vue de disposition.- output:after, layout
Dans
elgg_view_layout()
, filtre la valeur de retour de la vue de disposition.- 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.- 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()
.- prepare, menu:<menu_name>
Filtre le tableau des sections de menu avant qu’elles ne soient affichées. Chaque section est une clef de chaîne qui correspond à une zone d’éléments de menu. Il s’agit d’un bon hook pour trier, ajouter, supprimer et modifier les éléments de menu. Déclenché par
elgg_view_menu()
etelgg()->menus->prepareMenu()
.- creating, river
Les options pour
elgg_create_river_item
sont filtrées à travers ce hook. Vous pouvez modifier des valeurs ou renvoyerfalse
pour annuler la création de l’élément.- simplecache:generate, <view>
Déclenché lors de la génération du contenu mis en cache d’une vue.
- prepare, breadcrumbs
Dans elgg_get_breadcrumbs(), ceci filtre le fil d’Ariane enregistré avant de le renvoyer, ce qui permet à un plugin de modifier la stratégie de fil d’Ariane à l’échelle du site.
add, river
- elgg.data, site
Filtre les données de configuration mises en cache pour les transmettre au client. Plus d’informations
- elgg.data, page
Filtre les données de configuration non mises en cache et spécifiques à la page à transmettre au client. Plus d’informations
- registration_url, site
Filtre l’URL d’inscription sur le site. Peut être utilisé par les plugins pour ajouter des codes d’invitation, des codes de référence, etc. à l’URL d’inscription. Le tableau
$params
contient un tableau des éléments de la requête ajoutés à l’URL d’inscription par le script qui l’invoque. Le hook doit renvoyer une URL absolue de la page d’inscription.- login_url, site
Filtre l’URL de connexion du site. Le tableau
$params
contient un tableau des éléments de requête ajoutés à l’URL de connexion par le script qui l’invoque. Le hook doit renvoyer une URL absolue de la page de connexion.
Hooks utilisateur¶
- usersettings:save, user
Déclenché dans l’action globale pour enregistrer les paramètres utilisateur. Renvoyez false pour éviter que le formulaire persistant soit effacé.
- access:collections:write, user
Filtre un tableau d’autorisations d’accès pour lesquelles l’utilisateur
$params['user_id']
est autorisé à enregistrer du contenu. Les autorisations renvoyées sont de la forme (id => “Nom lisible par un Humain”).- registeruser:validate:username, all
Renvoyez un booléen pour indiquer si la chaîne dans
$params['username']
est un nom d’utilisateur valide.- registeruser:validate:password, all
Renvoyez un booléen pour indiquer si la chaîne dans
$params['password']
est un mot de passe valide.- registeruser:validate:email, all
Renvoyez un booléen pour indiquer si la chaîne dans
$params['email']
est une adresse email valide.- register, user
Déclenché par l’action
register
après que l’utilisateur se soit inscrit. Renvoyezfalse
pour supprimer l’utilisateur. Notez que la fonctionregister_user
ne déclenche pas ce hook.- login:forward, user
Filtre l’URL vers laquelle l’utilisateur sera dirigé après la connexion.
- find_active_users, system
Renvoyez le nombre d’utilisateurs actifs.
- status, user
Déclenché par The Wire (le Fil) lors de l’ajout d’une publication.
- username:character_blacklist, user
Filtre la chaîne et supprimer 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']
.
Hooks des objets¶
- comments, <entity_type>
Déclenché dans
elgg_view_comments()
. Si vous renvoyez du contenu, cela remplace la vuepage/elements/comments
.- comments:count, <entity_type>
Renvoie le nombre de commentaires sur
$params['entity']
.- likes:count, <entity_type>
Renvoie le nombre de mentions J’aime pour
$params['entity']
.
Hooks d’action¶
- action, <action>
Déclenché avant d’exécuter des scripts d’action. Renvoyez false pour annuler l’action.
- action_gatekeeper:permissions:check, all
Déclenché après la validation d’un jeton CSRF. Renvoyez false pour empêcher la validation.
- action_gatekeeper:upload_exceeded_msg, all
Déclenché lorsqu’un POST dépasse la taille maximale autorisée par le serveur. Renvoyez un message d’erreur à afficher.
- forward, <reason>
Filtre l’URL pour rediriger un utilisateur quand
forward($url, $reason)
est appelée.- response, action:<action>
Filtre une instance de
\Elgg\Http\ResponseBuilder
avant qu’elle soit envoyée au client. Ce hook peut être utilisé pour modifier le contenu de réponse, le code d’état, l’URL de redirection, ou définir des entêtes de réponse supplémentaires. Notez que la valeur<action>
est analysée à partir de l’URL de requête, par conséquent vous pouvez ne pas être en mesure de filtrer les réponses des appels à action() si elles sont imbriquées dans un autre fichier de script d’action.
Ajax¶
- ajax_response, *
Quand le module AMD
elgg/Ajax
est utilisé, ce hook donne accès à l’objet de réponse (\Elgg\Services\AjaxResponse
) afin qu’il puisse être modifié/étendu. Le type de hook dépend de l’appel de méthode :méthode elgg/Ajax
type de hook de plugin
action()
action:<action_name>
path()
path:<url_path>
view()
view:<view_name>
form()
form:<action_name>
- output, ajax
Ceci filtre l’emballage de sortie JSON renvoyé à l’API ajax héritée (
elgg.ajax
,elgg.action
, etc.). Les plugins peuvent modifier la sortie, l’URL de redirection, les messages système et les erreurs. Pour le module AMDelgg/Ajax
, utilisez le hookajax_response
documenté ci-dessus.
Hooks des Permissions¶
- container_logic_check, <entity_type>
Déclenché par
ElggEntity:canWriteToContainer()
avant de déclencher les hookspermissions_check
etcontainer_permissions_check
. Contrairement aux hooks d’autorisations, la vérification logique peut être utilisée pour empêcher que certains types d’entités ne soient contenus par d’autres types d’entités, par exemple les réponses de discussion ne doivent être contenues que par les discussions. Ce hook peut également être utilisé pour appliquer une logique de statut, par exemple pour refuser de 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 au hook estnull
, de sorte que le gestionnaire peut vérifier si un autre hook a modifié la valeur en vérifiant si la valeur de retour est définie. Si ce crochet renvoiefalse
, les hookscontainer_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 sur le conteneursubtype
- Sous-type de l’entité à écrire dans le conteneur (le type d’entité est identifié à partir du type de hook)
- container_permissions_check, <entity_type>
Renvoyez un booléen pour indiquer si l’utilisateur
$params['user']
peut utiliser l’entité$params['container']
comme conteneur pour une entité de<entity_type>
et un sous-type$params['subtype']
.Dans les rares cas où une entité est créée avec ni le
container_guid
ni leowner_guid
correspondant à l’utilisateur connecté, ce hook est appelé deux fois, et dans le premier appel$params['container']
aura pour valeur le propriétaire, et non 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 sur le conteneursubtype
- Sous-type de l’entité à écrire dans le conteneur (le type d’entité est identifié à partir du type de hook)
- permissions_check, <entity_type>
Renvoyez un booléen pour indiquer si l’utilisateur
$params['user']
peut modifier l’entité$params['entity']
.- permissions_check:delete, <entity_type>
Renvoyez 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 inqiquer 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.Note
Cette vérification n’est pas effectuée lors de l’utilisation de la fonction dépréciée
elgg_delete_river()
.- permissions_check, widget_layout
Renoyez un booléen pour indiquer si
$params['user']
peut modifier les widgets dans le contexte passé par$params['context']
et avec un propriétaire de page$params['page_owner']
.- permissions_check:metadata, <entity_type>
(Renvoyez un booléen pour indiquer si l’utilisateur
$params['user']
peut modifier la métadonnée$params['métadata']
sur l’entité$params['entity']
.- permissions_check:comment, <entity_type>
Renvoyer un booléen pour indiquer si l’utilisateur
$params['user']
peut commenter l’entité$params['entity']
.- permissions_check:annotate:<annotation_name>, <entity_type>
Renvoyez un boolén pour indiquer si l’utilisateur
$params['user']
peut créer une annotation<annotation_name>
sur l’entité$params['entity']
. Si connecté, la valeur par défaut est true.Note
Ceci est appelé avant le hook plus général
permissions_check:annotated
, et sa valeur de retour est la valeur initiale de ce hook.- permissions_check:annotate, <entity_type>
Renvoyez un boolén pour indiquer si l’utilisateur
$params['user']
peut créer une annotation$params['annotation_name']
sur l’entité$params['entity']
. Si connecté, la valeur par défaut est true.Avertissement
Ceci fonctionne différemment du hook
permissions_check:metadata
en passant le nom de l’annotation au lieu de l’objet de métadonnée.- permissions_check:annotation
Renvoyez un booléen pour indiquer si l’utilisateur dans
$params['user']
peut modifier l’annotation$params['annotation']
sur l’entité$params['entity']
. L’utilisateur peut être null.- fail, auth
Renvoyez le message d’échec en cas d’échec de l’authentification. Un tableau des méthodes d’échec PAM précédentes est passé dans
$params
.- api_key, use
Déclenché par
api_auth_key()
. Renvoyer false empêche d’authentifier la clé.- access:collections:read, user
Filtre un tableau d’ID 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 (ce qui déclencherait à nouveau le hook), soit ignorer le deuxième appel. Sinon, une boucle infinie sera créée.
- access:collections:write, user
Filtre un tableau d’ID d’accès sur lequel l’utilisateur
$params['user_id']
peut écrire. Dans get_write_access_array(), ce hook filtre la valeur de retour, de sorte qu’il peut être utilisé pour modifier les options disponibles dans la vue input/access. Pour les plugins du noyau, « input_params » est passé avec les clefs « entity » (ElggEntity|false), « entity_type » (chaîne), « entity_subtype » (chaîne), et « container_guid » (int). Une valeur d’entité vide signifie généralement que le formulaire consiste à 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 (ce qui déclencherait à nouveau le hook), soit ignorer le deuxième appel. Sinon, une boucle infinie sera créée.
- access:collections:addcollection, collection
Déclenché après la création d’une collection d’accès
$params['collection_id']
.- access:collections:deletecollection, collection
Déclenché avant qu’une collection d’accès
$params['collection_id']
soit supprimée. Renvoyez false pour éviter la suppression.- 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 le retrait.- get_sql, access
Filtre les clauses SQL utilisées dans
_elgg_get_access_where_sql()
.- gatekeeper, <entity_type>:<entity_subtype>
Filtre le résultat de
elgg_entity_gatekeeper()
pour empêcher l’accès à une entité à laquelle l’utilisateur aurait autrement accès. Un gestionnaire doit retourner false pour refuser l’accès à une entité.
Notifications¶
Ces hooks sont listés dans l’ordre chronologique de la vie de l’événement de notification. Notez que tous les hooks 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 de hook doit renvoyer
false
pour empêcher le déclenchement d’un événement de notification d’abonnement.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 subscriptions et 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 passés en tant que destinataires à
notify_user()
IMPORTANT Validez toujours les types d’événements, d’objets et/ou d’action de notification avant d’ajouter de nouveaux destinataires pour vous assurer que vous n’envoyez pas accidentellement de notifications à des destinataires non souhaités. Considérez une situation où un plugin de mentions envoie une notification instantanée à un utilisateur mentionné - tout hook agissant sur un sujet ou un objet sans valider un événement ou un type d’action (par exemple, y compris un propriétaire du fil d’origine) peut 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 subscriptions et instant.
le tableau
$params
comprend :event
- instance de\Elgg\Notifications\NotificationEvent
qui décrit l’événement de notificationsubscriptions
- une liste d’abonnements. Voir le hook'get', 'subscriptions'
pour plus d’informations
- prepare, notification
Un hook de haut niveau qui peut être utilisé pour modifier une instance de
\Elgg\Notifications\Notification
avant qu’elle soit envoyée à l’utilisateur. S’applique aux notifications subscriptions et instant. Ce hook est déclenché avant un'prepare', 'notification':<action>:<entity_type>:<entity_subtype>'
plus granulaire et après'send:before', 'notifications
. Le gestionnaire de hook 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 hook granulaire pouvant être utilisé pour filtrer une notification
\Elgg\Notifications\Notification
avant qu’elle soit envoyée à l’utilisateur. S’applique aux notifications subscriptions et instant. En cas de notifications instantanées qui n’ont pas reçu d’objet, le hook sera appelé par'prepare', 'notification:<action>'
. En cas de notifications instantanées qui n’ont pas reçu de nom d’action, celui-ci aura pour valeur 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>
Ce hook peut être utilisé pour formater une notification avant qu’elle soit transmise au hook
'send', 'notification:<method>'
S’applique aux notifications subscriptions et instant. Le gestionnaire de hook doit renvoyer une instance de\Elgg\Notifications\Notification
. Le hook ne reçoit pas de$params
. Voici quelques cas d’utilisation :Supprime les balises du titre et du corps de la notification pour les notifications par email en texte brut
Styles HTML en ligne (inline) pour les emails de notifications HTML
Envelopper la notification dans un modèle, ajouter une signature, etc.
- send, notification:<method>
Délivre une notification. S’applique aux notifications subscriptions et 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
- email, system
Déclenché par
elgg_send_email()
. S’applique aux notifications subscriptions et instant avec la méthodeemail
. Ce hook peut être utilisé pour modifier les paramètres de l’email (sujet, corps, en-têtes, etc) - le gestionnaire doit retourner un tableau de paramètres modifiés. Ce hook peut également être utilisé pour implémenter un agent de transport de messagerie personnalisé (à la place du texte brut par défaut du\Zend\Mail\Transport\Sendmail
de Elgg) - le gestionnaire doit retournertrue
oufalse
pour indiquer si l’email a été envoyé à l’aide d’un transport personnalisé.$params
contient :to
- adresse email du destinataire ou chaîne de la formeNom <nom@exemple.org>
from
- adresse email de l’expéditeur ou chaîne de la formeNom <nom@exemple.org>
subject
- ligne du sujet de l’emailbody
- corps de l’emailheaders
- un tableau d’entêtesparams
- d’autres paramètres hérités de l’objet de notification ou passés directement àelgg_send_email()
- 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 subscriptions et instant.
le tableau
$params
comprend :event
- instance de\Elgg\Notifications\NotificationEvent
qui décrit l’événement de notificationsubscriptions
- une liste d’abonnements. Voir le hook'get', 'subscriptions'
pour plus d’informationsdeliveries
- une matrice des statuts de remise par utilisateur pour chaque méthode de livraison
Routage¶
- route, <identifier>
Permet d’appliquer une logique ou de renvoyer une réponse avant l’appel du gestionnaire de page. Pour plus de détails, consultez Routage. Notez que les plugins utilisant ce hook pour réécrire les chemins ne seront pas en mesure de filtrer l’objet de réponse par son chemin final et devrait soit passer au hook
route:rewrite, <identifier>
, soit utiliser le hookresponse, path:<path>
pour le chemin d’origine.- route:rewrite, <identifier>
Permet de modifier le chemin d’URL relative au site. Pour plus d’informations, consultez Routage.
- response, path:<path>
Filtrer une instance de
\Elgg\Http\ResponseBuilder
avant qu’elle soit envoyée au client. Ce type de hook ne sera utilisé que si le chemin n’a pas commencé paraction/
ouajax/
. Ce hook peut être utilisé pour modifier le contenu de réponse, le code d’état, l’URL de redirection, 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, aussi les plugins qui utilisent le hookroute
doivent utiliser le<path>
d’origine pour filtrer la réponse, ou utiliser plutôt le hookroute:rewrite
.- ajax_response, path:<path>
Filtre les réponses ajax avant qu’elles soient renvoyées au module
elgg/Ajax
. Ce type de hook ne sera utilisé que si le chemin n’a pas commencé paraction/
ouajax/
.
Vues¶
- view_vars, <view_name>
Filtre le tableau
$vars
passé à la vue- view, <view_name>
Filtre le contenu renvoyé par la vue
- layout, page
Dans
elgg_view_layout()
, filtre le nom de la disposition- shell, page
Dans
elgg_view_page()
, filtre le nom de la coquille (page shell) de page- head, page
Dans
elgg_view_page()
, filtre la valeur de retour de$vars['head']
, qui contient un tableau avectitle
,metas
etlinks
oùmetas
est un tableau d’éléments à formater sous la forme de balises head<meta>
, etlinks
est un tableau d’éléments à formater sous la forme de<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('favicon-16.png'),
],
],
];
- ajax_response, view:<view>
Filtre les réponses
ajax/view/
avant qu’elles soient renvoyées au moduleelgg/Ajax
.- ajax_response, form:<action>
Filtre les réponses
ajax/form/
avant qu’elles soient renvoyées au moduleelgg/Ajax
.- response, view:<view_name>
Filtre une instance de
\Elgg\Http\ResponseBuilder
avant qu’elle soit envoyée au client. S’applique à la requête vers/ajax/view/<view_name>
. Ce hook peut être utilisé pour modifier le contenu de réponse, le code d’état, l’URL de redireciton, ou définir des entêtes de réponse supplémentaires.- response, form:<form_name>
Filtre une instance de
\Elgg\Http\ResponseBuilder
avant qu’elle soit envoyée au client. S’applique à la requête vers/ajax/form/<form_name>
. Ce hook peut être utilisé pour modifier le contenu de la réponse, le code d’état, l’URL de redirection, ou définir des entêtes de réponse supplémentaires.- table_columns:call, <name>
Quand la méthode
elgg()->table_columns->$name()
est appelée, ce hook 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 devraient renvoyer une instance deElgg\Views\TableColumn
s’ils souhaitent spécifier la colonne directement.
Fichiers¶
- mime_type, file
Retournez le mimetype pour le nom de fichier
$params['filename']
avec le nom de fichier original$params['original_filename']
et avec le mimetype détecté par défaut depuis$params['default']
.- simple_type, file
Dans
elgg_get_file_simple_type()
, filtre la valeur de retour. Le hook utilise$params['mime_type']
(par ex.application/pdf
ouimage/jpeg
) et détermine une catégorie globale commedocument
ouimage
. Le plugin de fichiers et d’autres plugins tiers stockent habituellement la métadonnéesimpletype
sur les entités de fichiers et les utilisent lorsqu’ils servent des icônes et construisent des filtres et des menusege*
.- upload, file
Permet aux plugins d’implémenter une logique personnalisée pour déplacer un fichier téléchargé dans une instance d’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
Autres¶
- config, comments_per_page
Filtre le nombre de commentaires affichés par page. 25 par défaut.
- default, access
Dans get_default_access(), ce hook filtre la valeur de retour, de sorte qu’il peut être utilisé pour modifier la valeur par défaut dans la vue input/access. Pour les plugins du noyau, la valeur « input_params » contient les clefs « entity » (ElggEntity|false), « entity_type`` (chaîne),
entity_subtype
(chaîne),container_guid
(int) qui sont fournies. Une valeur d’entité vide signifie généralement que le formulaire consiste à créer un nouvel objet.- entity:icon:sizes, <entity_type>
Déclenché par
elgg_get_icon_sizes()
et définit le type d’entité/le sous-type de tailles d’icônes spécifiques.entity_subtype
sera transmis à la fonction de rappel avec le tableau$params
.- 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>
.Le hook doit renvoyer un tableau associatif où les clefs sont les noms des tailles d’icônes (par exemple
large
), et les valeurs sont des tableaux avec les clefs suivantes :w
- Largeur de l’image en pixelsh
- Hauteur de l’image en pixelssquare
- Le ratio devrait-il être carré (vrai/faux)upscale
- L’image doit-elle être agrandie si elle est plus petite que la largeur et la hauteur indiquées (vrai/faux)
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 entity icons. La fonction de rappel doit renvoyer l’URL de l’icône de taille
$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
oujson
.- size
Taille demandée, voir 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_plugin_hook_handler('entity:icon:url', 'user', 'gravatar_icon_handler', 600);
/**
* Default to icon from gravatar for users without avatar.
*/
function gravatar_icon_handler($hook, $type, $url, $params) {
// Allow users to upload avatars
if ($params['entity']->icontime) {
return $url;
}
// Generate gravatar hash for user email
$hash = md5(strtolower(trim($params['entity']->email)));
// Default icon size
$size = '150x150';
// Use configured size if possible
$config = elgg_get_icon_sizes('user');
$key = $params['size'];
if (isset($config[$key])) {
$size = $config[$key]['w'] . 'x' . $config[$key]['h'];
}
// Produce URL used to retrieve icon
return "http://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ées, 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 données. Le gestionnaire doit renvoyer une instance deElggIcon
ou une exception sera lancée.- entity:<icon_type>:file, <entity_type>
Permet de filtrer l’objet de fichier d’icône pour les types d’icônes personnalisés, voir
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é/lié. Ce hook peut être utilisé pour faire pivoter l’image avant qu’elle ne soit redimensionnée/rognée, ou il peut être utilisé pour extraire une image cadre (frame) si le fichier téléchargé est une vidéo. Le gestionnaire doit renvoyer une instance de ElggFile avec unsimpletype
qui se résout en image. La valeur$return
transmise au hook est une instance deElggFile
qui pointe vers une copie temporaire du fichier téléchargé/lié.La tableau
$params
contient :entity
- entité propriétaire des icônesfile
- le fichier d’entrée original avant qu’il n’ait été modifié par d’autres hooks
- entity:<icon_type>:save, <entity_type>
Déclenché par les méthodes
ElggEntity:::saveIcon*()
et peut être utilisé pour appliquer une logique de manipulation d’image personnalisée aux icônes de redimensionnement/recadrage. Le gestionnaire doit renvoyertrue
pour empêcher les API de base 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 que des icônes ont été créées. Ce hook peut être utilisé par les plugins pour créer des éléments pour 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 à l’aide deElggEntity::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. Ce hook est déclenché avant que les icônes ne soient supprimées. Le gestionnaire peut renvoyerfalse
pour empêcher la suppression d’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 : En général, il est préférable de remplacer la méthodegetUrl()
d’ElggEntity. Ce hook doit être utilisé lorsqu’il n’est pas possible de créer une sous-classer (par ex. si vous voulez étendre un plugin groupé sans remplacer de nombreuses vues).- 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.- extender:url, <annotation|metadata>
Retournez l’URL de l’annotation ou de la métadonnée
$params['extender']
.- file:icon:url, override
Remplacez une URL d’icône de fichier.
- is_member, group
Renvoie un booléen qui indique si l’utilisateur
$params['user']
est un membre du groupe$params['group']
.- entity:annotate, <entity_type>
Déclenché dans
elgg_view_entity_annotations()
, qui est appelé parelgg_view_entity()
. Peut être utilisé pour ajouter des annotations à toutes les vues de l’entité complète.- usersetting, plugin
Filtrer les paramètres utilisateur pour les plugins.
$params
contient :user
- Une instance de ElggUserplugin
- Une instance de ElggPluginplugin_id
- L’ID du pluginname
- Le nom du paramètrevalue
- La valeur à définir
- 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
- relationship:url, <relationship_name>
Filtre l’URL pour l’objet de relation
$params['relationship']
.- profile:fields, group
Filtrer un tableau de champs de profil. Le résultat doit être renvoyé sous forme de tableau dans le format
name => nom de la vue
. Par exemple :
array(
'about' => 'longtext'
);
- profile:fields, profile
Filtrer un tableau de champs de profil. Le résultat doit être renvoyé sous forme de tableau dans le format
name => nom de la vue
. Par exemple :
array(
'about' => 'longtext'
);
- widget_settings, <widget_handler>
Déclenché lors de l’enregistrement des paramètres d’un widget
$params['params']
pour le widget$params['widget']
. Si vous gérez l’enregistrement des paramètres, le gestionnaire doit renvoyer true pour empêcher l’exécution du code par défaut.- handlers, widgets
Déclenché lorsqu’une liste de widgets disponibles est nécessaire. Les plugins peuvent ajouter ou supprimer conditionnellement des widgets de cette liste ou modifier des attributs de widgets existants comme
context
oumultiple
.- 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(
'event' => $event,
'entity_type' => $entity_type,
'entity_subtype' => $entity_subtype,
'widget_context' => $widget_context
)
- public_pages, walled_garden
Filtre les URLs qui peuvent être vues par les utilisateurs non identifiés si le Walled Garden est activé.
$value
est un tableau de chaînes regex qui permettront l’accès en cas de correspondance.- volatile, metadata
Déclenché lors de l’export d’une entité par l’intermédiaire du gestionnaire d’exportation. C’est rare. Cela permet au gestionnaire de traiter toutes les métadonnées volatiles (non persistantes) sur l’entité. Il est préférable d’utiliser le hook
to:object, <type>
.- maintenance:allow, url
- Retourne un booléen si l’URL
$params['current_url']
et le chemin$params['current_path']
est autorisé avec le mode maintenance.
- Retourne un booléen si l’URL
- robots.txt, site
Filtrez les valeurs robots.txt pour
$params['site']
.- config, amd
Filtre la configuration AMD pour la bibliothèque requirejs.
Plugins¶
Groupes¶
- profile_buttons, group
Les boutons de filtres (instances
ElggMenuItem
) à enregistrer dans le menu titre de la page de profil de groupe- tool_options, group
Utilisez ce hook pour modifier les outils disponibles dans les options de groupe
HTMLawed¶
- allowed_styles, htmlawed
Filtre le tableau de style HTMLawed autorisé.
- config, htmlawed
Filtre le tableau de configuration de HTMLawed.
Likes¶
- likes:is_likable, <type>:<subtype>
Ceci est appelé pour définir les autorisations par défaut pour déterminer s’il faut afficher/autoriser les mentions J’aime sur une entité de type
<type>
et de sous-type<subtype>
.Note
La fonction de rappel
'Elgg\Values::getTrue'
est un gestionnaire utile pour ce hook.
Membres¶
- members:list, <page_segment>
Pour gérer la page
/members/$page_segment
, enregistrez une fonction de rappel pour ce hook et renvoyez le HTML de la liste.- members:config, tabs
Ce hook est utilisé pour assembler un tableau d’onglets à transmettre à la vue navigation/tabs pour les pages des membres.
API Twitter¶
- authorize, twitter_api
Déclenché lorsqu’un utilisateur autorise la connexion via Twitter.
$params['token']
contient le jeton d’autorisation Twitter.
Contenu Signalé¶
- reportedcontent:add, system
Déclenché après l’ajout de l’objet de contenu signalé
$params['report']
. Renvoyez false pour supprimer le rapport.- reportedcontent:archive, system
Déclenché avant l’archivage de l’objet de contenu signalé
$params['report']
. Renvoyez false pour empêcher l’archivage.- reportedcontent:delete, system
Déclenché avant de supprimer l’objet de contenu signalé
$params['report']
. Renvoyez false pour éviter la suppression.
Recherche¶
- search, <type>:<subtype>
Filtre des résultats de recherche plus granulaires que la recherche par type seul. Doit renvoyer un tableau avec
count
comme nombre total de résultats etentities
un tableau d’entités ElggUser.
search, tags
- search, <type>
Filtre la recherche d’entités pour le type
$type
. Doit renvoyer un tableau aveccount
comme nombre total de résultats etentities
un tableau d’entités ElggUser.- search_types, get_types
Filtre un tableau de types de recherche. Cela permet aux plugins d’ajouter des types personnalisés qui ne correspondent pas directement aux entités.
- search_types, get_queries
Avant une recherche, cela filtre les types interrogés. Cela peut être utilisé pour réorganiser l’affichage des résultats de recherche.
Web Services¶
- rest, init
Déclenché par le gestionnaire de web services 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