Liste des hooks plugin du noyau

Pour plus d’informations sur le fonctionnement des hooks, visitez Événements et Hooks plugin.

Hooks système

page_owner, system

Filtre le propriétaire 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'].

diagnostics:report, system

Filtre la sortie pour le téléchargement du rapport de diagnostic.

cron, <period>

Déclenché par le cron pour chaque période.

cron:intervals, system

Permet la configuration d’intervalles de cron personnalisés

validate, input

Filtre l’entrée GET et POST. Ceci est utilisé par get_input() pour assainir les entrées utilisateur.

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ée

  • options - Options de préparation

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 « 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'].

output:before, page

Dans elgg_view_page(), cela filtre $vars avant qu’il ne soit passé à la vue shell de la page (page/<page_shell>). Pour arrêter d’envoyer l’en-tête X-Frame-Options, désenregistrez le gestionnaire Elgg\Page\SetXFrameOptionsHeaderHandler::class de ce hook.

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 menu

  • sort_by - paramètre de tri préféré

  • d’autres paramètres passés à elgg_view_menu()

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() et elgg()->menus->getMenu().

Le tableau $params contient des paramètres renvoyés par le hook parameters, menu:<menu_name>.

La valeur de retour est une instance de \Elgg\Menu\MenuItems contenant des objets \ElggMenuItem.

Les gestionnaires de hooks peuvent ajouter/supprimer des éléments à une collection via l’API des collections, ainsi que via des opérations sur le tableau des accès.

register, menu:<menu_name>:<type>:<subtype>

Version plus granulaire du hook de menu déclenché avant le hook register, 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( ))

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() et elgg()->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 du hook de menu déclenché avant le hook 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 register, menu:<menu_name> hook.

Si filter_id vaut filter (valeur par défaut), alors les onglets all, mine et friends 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'] et params['entity_subtype']. S’il n’est pas fourni, entity_type et entity_subtype seront basés sur la détection de la route actuelle. Par exemple, si la route actuelle est collection:object:blog:all entity_type sera object et entity_subtype sera blog. - L’onglet all sera basé sur la route collection:<entity_type>:<entity_subtype>:all - L’onglet mine sera basé sur la route collection:<entity_type>:<entity_subtype>:owner - L’onglet `` friend`` sera basé sur la route collection:<entity_type>:<entity_subtype>:friends

Si les routes ne sont pas enregistrés, les onglets n’apparaîtront pas.

creating, river

Les options pour elgg_create_river_item sont filtrées à travers ce hook. Vous pouvez modifier des valeurs ou renvoyer false pour annuler la création de l’élément.

simplecache:generate, <view>

Filtre la sortie de la vue pour une URL /cache quand simplecache est activé.

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é.

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. Le tableau $params comprend :

  • breadcrumbs - un tableau des éléments du Fil d’Ariane, chacun avec les indexes titre title et lien link

  • identifier - identifiant de la route de la page courante

  • segments - segments de la route de la page courante

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.

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.

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 via elgg-cli database:seed.

languages, translations

Permet aux plugins d’ajouter/supprimer des langues des langues configurables du système.

generate, password

Permet aux plugins de générer de nouveaux mots de passe textuels aléatoires.

Hooks utilisateur

usersettings:save, user

Déclenché dans l’action globale pour enregistrer les paramètres utilisateur. Le gestionnaire de hook doit renvoyer false pour éviter que les formulaires persistants ne soient effacées (c.-à-d. pour indiquer que certaines valeurs n’ont pas été enregistrées). Ne renvoyez pas true dans votre gestionnaire de hook car vous remplaceriez la sortie d’autres hooks : renvoyez plutôt null pour indiquer une opération réussie.

Le tableau $params va contenir :

  • user - \ElggUser, dont les paramètres ont été sauvegardés

  • request - \Elgg\Request vers le contrôleur de l’action

change:email, user

Déclenché avant que l’e-mail de l’utilisateur soit modifé. Permet aux plugins d’implémenter une logique additionnelle nécessaire pour modifier l’e-mail, par ex. une validation de l’e-mail additionnelle. Le gestionnaire de hook doit retourner false pour éviter que l’e-mail ne soit modifié immédiatement.

Le tableau $params va contenir :

  • user - \ElggUser, dont les paramètres ont été sauvegardés

  • email - Adresse e-mail qui passe les vérifications sanitaires

  • request - \Elgg\Request vers le contrôleur de l’action

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

Renvoie un booléen pour si la chaîne dans $params['username'] est valide pour un nom d’utilisateur. Le gestionnaire de hook peut lancer \Elgg\Exceptions\Configuration\RegistrationException avec un message d’erreur à afficher à l’utilisateur.

registeruser:validate:password, all

Renvoie un booléen indiquant si la chaîne dans $params['password'] est un mot de passe valide. Le gestionnaire de hook peut lancer \Elgg\Exceptions\Configuration\RegistrationException avec un message d’erreur à afficher à l’utilisateur.

registeruser:validate:email, all

Renvoie un booléen si la chaîne dans $params['email'] est une adresse e-mail valide. Le gestionnaire de hook peut lancer \Elgg\Exceptions\Configuration\RegistrationException avec un message d’erreur à afficher à l’utilisateur.

register, user

Déclenché par l’action register après que l’utilisateur se soit inscrit. Renvoyez false pour supprimer l’utilisateur. Notez que la fonction register_user ne déclenche pas ce hook. Les gestionnaires de hooks peuvent lancer une exception \Elgg\Exceptions\Configuration\RegistrationException avec un message d’erreur à afficher à l’utilisateur.

Le tableau $params va contenir :

  • user - L’entité utilisateur nouvellement enregistrée

  • Tous les paramètres envoyés avec la requête à l’action (comprend password, friend_guid, invitecode, etc.)

login:forward, user

Filtre l’URL vers laquelle l’utilisateur sera redirigé après la connexion.

find_active_users, system

Renvoie le nombre d’utilisateurs actifs.

status, user

Déclenché par le Fil - The Wire - lors de l’ajout d’une publication.

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'].

Hooks d’objet

comments, <entity_type>

Déclenché dans elgg_view_comments(). S’il renvoie du contenu, celui-ci remplace la vue page/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’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 (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 le tableau des IDs 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: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 get_write_access_array().

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 la suppression.

get_sql, access

Filtre les clauses SQL limitant/autorisant l’accès aux entités et aux annotations.

Le hook est déclenché indépendamment du fait que les accès soient ignorés. Les gestionnaires peuvent avoir besoin de vérifier si l’accès est ignoré et de renvoyer un retour plus tôt, si les clauses ajoutées ne doivent s’appliquer qu’aux contextes d’accès contrôlés.

La valeur $return est un tableau imbriqué de ands et de ors.

$params comprend :

  • table_alias - alias de la table principale utilisée dans la clause de sélection

  • ignore_access - selon que les accès sont ignorés ou activés

  • use_enabled_clause - selon que les entités désactivées sont affichées/cachées

  • access_column - colonne de la table principale contenant l’ID de la collection d’accès

  • owner_guid_column - colonne de la table principale faisant référence au GUID du propriétaire

  • guid_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 de QueryBuilder

Hooks d’action

action:validate, <action>

Déclenché avant l’exécution du script/contrôleur d’action. Ce hook doit être utilisé pour valider/modifier les entrées utilisateur, avant de procéder à l’action. Le gestionnaire de hook peut lancer une instance de \Elgg\ValidationException ou renvoyer false pour bloquer la poursuite de 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.

action_gatekeeper:upload_exceeded_msg, all

Déclenché lorsqu’une requête 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 lorsque forward($url, $reason) est appelé. Dans certains cas, le tableau params va contenir une instance de \Elgg\Exceptions\HttpException qui a déclenché l’erreur.

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 la 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>

Hooks des Permissions

container_logic_check, <entity_type>

Déclenché par ElggEntity:canWriteToContainer() avant de déclencher les hooks permissions_check et container_permissions_check. Contrairement aux hooks d’autorisation, 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 est null, 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 renvoie false, les hooks container_permissions_check et permissions_check ne seront pas déclenchés.

Le tableau $params va contenir :

  • container - Une entité qui sera utilisée comme conteneur

  • user - L’utilisateur qui sera propriétaire de l’entité à écrire dans le conteneur

  • subtype - 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>

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 le owner_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 conteneur

  • user - L’utilisateur qui sera propriétaire de l’entité à écrire dans le conteneur

  • subtype - Sous-type de l’entité à écrire dans le conteneur (le type d’entité est identifié à partir du type de hook)

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 et false 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 de ElggFile

  • 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 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>

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.

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

Renvoie 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 elgg_ws_pam_auth_api_key(). Le renvoi de false empêche l’authentification de la clef.

gatekeeper, <entity_type>:<entity_subtype>

Filtre le résultat de elgg_entity_gatekeeper() pour empêcher ou permettre l’accès à une entité à laquelle l’utilisateur aurait ou n’aurait pas accès. Un gestionnaire peut renvoyer false ou une instance de \Elgg\Exceptions\HttpException pour bloquer l’accès à une entité. Un gestionnaire peut retourner true pour remplacer le résultat du gardien - gatekeeper. Important l’entité reçue par ce hook est récupérée sans vérifier les accès, y compris les entités désactivées, de sorte que vous devez faire attention à ne pas contourner le système d’accès.

le tableau $params comprend :

  • entity - Entité à laquelle on accède

  • user - L’utilisateur qui accède à l’entité (null implique l’utilisateur connecté)

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 notification

  • action - action qui a déclenché l’événement de notification. Par exemple, correspond à publish quand elgg_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 avant d’ajouter de nouveaux destinataires, afin de vous assurer que vous n’envoyiez pas accidentellement de notification à des destinataires non souhaités. Considérez une situation : un plugin de mentions envoie une notification instantanée à un utilisateur mentionné - tout hook agissant sur un sujet ou un objet sans valider l’événement ou le type d’action (par exemple, incluant le propriétaire du fil 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 notification

  • origin - subscriptions_service ou instant_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 notification

  • subscriptions - 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 d’abonnement subscriptions et instantanées 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 devrait 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 notification

  • object - objet de la notification event. Peut être null pour les notifications instantanées

  • action - action qui a déclenché la notification event. Peut avoir pour valeur par défaut notify_user pour les notifications instantanées

  • method - méthode d’envoi (par ex. email, site)

  • sender - expéditeur

  • recipient - destinataire

  • language - langue de la notification (langue du destinataire)

  • origin - subscriptions_service ou instant_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 d’abonnement subscriptions et instantanées 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, celles-ci auront pour valeur par défaut notify_user.

$params comprend :

  • event - instance de \Elgg\Notifications\NotificationEvent qui décrit l’événement de notification

  • object - objet de la notification event. Peut être null pour les notifications instantanées

  • action - action qui a déclenché la notification event. Peut avoir pour valeur par défaut notify_user pour les notifications instantanées

  • method - méthode d’envoi (par ex. email, site)

  • sender - expéditeur

  • recipient - destinataire

  • language - langue de la notification (langue du destinataire)

  • origin - subscriptions_service ou instant_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 d’abonnement subscriptions et instantanées instant. Le gestionnaire de hook doit renvoyer une instance de \Elgg\Notifications\Notification. Le hook ne reçoit pas de tableau $params. Voici 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 ou false 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 notification

  • subscriptions - une liste d’abonnements. Voir le hook 'get', 'subscriptions' pour plus d’informations

  • deliveries - 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 e-mails système et de notification sortants. Ce hook vous permet de modifier une instance de \Elgg\Email avant qu’il soit transmis à l’agent de transport par e-mail. Ce hook peut être utilisé pour modifier l’expéditeur, le destinataire, le sujet, le corps et/ou les entêtes de l’e-mail.

$params est vide. La valeur de retour $return est une instance de \Elgg\Email.

validate, system:email

Déclenché par elgg_send_email(). S’applique à tous les e-mails système et de notification sortants. Ce hook vous permet de supprimer ou de mettre en liste blanche les e-mails sortants, par exemple lorsque le site est en mode de développement. Le gestionnaire doit retourner false pour empêcher la remise du courrier électronique.

$params contient :

  • email - Une instance de \Elgg\Email

transport, system:email

Déclenché par elgg_send_email(). S’applique à tous les e-mails système et de notification sortants. Ce hook vous permet d’implémenter un transport de messagerie personnalisé, par exemple en livrant des e-mails via un service proxy tiers tel que SendGrid ou Mailgun. Le gestionnaire doit retourner true pour indiquer que l’email a bien été transporté.

$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 e-mails système et de notification sortants qui n’ont pas été transportés à l’aide du hook transport, system:email. Ce hook vous permet de modifier une instance de \Laminas\Mail\Message avant qu’elle ne soit transmise à l’agent de transport de courrier Laminas.

$params contient :

  • email - Une instance de \Elgg\Email

Routage

route:config, <route_name>

Permet de modifier la configuration de la route avant qu’elle soit enregistrée. Ce hook peut être utilisé pour modifier le chemin d’accès, les valeurs par défaut, les exigences, ainsi que pour définir/supprimer un middleware. Veuillez noter que le gestionnaire de ce hook doit être enregistré à l’extérieur du gestionnaire d’événements init, car les routes du noyau sont enregistrées lors de l’événement plugins_boot.

route:rewrite, <identifier>

Permet de modifier le chemin de l’URL relativement au site pour une requête entrante. Pour plus de détails, consultez la documentaiton sur le routage - Routage. Veuillez noter que le gestionnaire de ce hook devrait être enregistré à l’extérieur du gestionnaire d’événements init, car les réécritures de routes ont lieu après que l’événement plugins_boot est accompli.

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 ne commençait pas par action/ ni ajax/. 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 hook route devraient utiliser le <path> d’origine pour filtrer la réponse, ou utiliser plutôt le hook route: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 ne commençait pas par action/ ou ajax/.

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. Le tableau $params comprend :

  • identifier - identifiant de la page en cours de rendu

  • segments - Segments d’URL de la page en cours de rendu

  • autres $vars reçues par elgg_view_layout()

shell, page

Dans elgg_view_page(), filtre le nom de la coquille - page shell - de la page

head, page

Dans elgg_view_page(), filtre la valeur de retour de $vars['head'], qui contient un tableau avec les clefs title, metas et links, où metas est un tableau d’éléments à formater sous la forme de balises d’entête <meta>, et links 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'),
      ],
   ],
];
ajax_response, view:<view>

Filtre les réponses ajax/view/ avant qu’elles soient renvoyées au module elgg/Ajax.

ajax_response, form:<action>

Filtre les réponses ajax/form/ avant qu’elles soient renvoyées au module elgg/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 de Elgg\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>.

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 de ElggFile

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 de ElggFile

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

Le hook fournit $params['mime_type'] (par ex. application/pdf ou image/jpeg) et détermine une catégorie globale comme document ou image. Le plugin file inclus et d’autres plugins tiers stockent habituellement les métadonnées simpletype pour les entités de fichiers et les utilisent lorsqu’ils servent des icônes et construisent des filtres et des menus.

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 renvoyer false pour indiquer que le fichier téléchargé n’a pas pu être déplacé. D’autres valeurs de retour indiqueront que ElggFile::acceptUploadedFile devrait poursuivre la logique de téléchargement par défaut.

le tableau $params comprend :

  • file - instance de ElggFile dans laquelle écrire

  • upload - instance de UploadedFile de Symfony

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. Utilisez elgg_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 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 définies. Une valeur d’entité vide signifie généralement que le formulaire consiste à 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 ce hook pour utiliser une autre famille de polices et mapper 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>.

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 pixels

  • h - Hauteur de l’image en pixels

  • square - 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_plugin_hook_handler('entity:icon:url', 'user', 'gravatar_icon_handler', 600);

/**
 * Default to icon from gravatar for users without avatar.
 *
 * @param \Elgg\Hook $hook 'entity:icon:url', 'user'
 *
 * @return string
 */
function gravatar_icon_handler(\Elgg\Hook $hook) {
        $entity = $hook->getEntityParam();

        // Allow users to upload avatars
        if ($entity->icontime) {
                return $url;
        }

        // 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 = $hook->getParam('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é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 alternatif ElggIcon qui pointe vers un emplacement personnalisé de l’icône dans le répertoire de fichiers. Le gestionnaire doit renvoyer une instance de ElggIcon 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é/lié. Ce hook peut être utilisé pour faire pivoter l’image avant qu’elle soit redimensionnée/rognée, ou il peut être utilisé pour extraire une image fixe - frame - si le fichier téléchargé est une vidéo. Le gestionnaire doit renvoyer une instance de ElggFile avec un simpletype qui se résout en image. La valeur $return transmise au hook est une instance de ElggFile qui pointe vers une copie temporaire du fichier téléchargé/lié.

Le tableau $params contient :

  • entity - entité propriétaire des icônes

  • file - 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 qui peut être utilisé pour appliquer une logique de manipulation d’image personnalisée pour redimensionner/recadrer les icônes. Le gestionnaire doit renvoyer true pour empêcher les API du noyau de redimensionner/rogner les icônes. Le tableau $params contient :

  • entity - entité propriétaire des icônes

  • file - objet ElggFile qui pointe vers le fichier image à utiliser comme source pour les icônes

  • x1, 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 de ElggEntity::getIcon(). Le tableau $params contient :

  • entity - entité propriétaire des icônes

  • x1, y1, x2, y2 - coordonnées de découpe

entity:<icon_type>:delete, <entity_type>

Déclenché par la méthode ElggEntity::deleteIcon(), et qui peut être utilisé pour des opérations de nettoyage. Ce hook est déclenché avant que les icônes ne soient supprimées. Le gestionnaire peut renvoyer false 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éthode getUrl() de ElggEntity. Ce hook doit être utilisé lorsqu’il n’est pas possible de créer une sous-classe (par ex. si vous voulez étendre un plugin inclus sans remplacer de nombreuses vues).

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 fournir name et #type pour chaque champ.

$result = [];

$result[] = [
        '#type' => 'longtext',
        'name' => 'description',
];

return $result;
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>

Retourne l’URL de l’annotation ou de la métadonnée $params['extender'].

file:icon:url, override

Remplace l’URL de l’icône d’un fichier.

is_member, group

Renvoie un booléen qui indique si l’utilisateur $params['user'] est un membre du groupe $params['group'].

setting, plugin

Filtre les paramètres du plugin. $params contient :

  • plugin - Une instance de ElggPlugin

  • plugin_id - L’ID du plugin

  • name - Le nom du paramètre

  • value - La valeur à définir

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’enregistrement

La 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.

relationship:url, <relationship_name>

Filtre l’URL pour l’objet de la relation $params['relationship'].

widget_settings, <widget_handler>

Déclenché lors de l’enregistrement des paramètres d’un widget $params['params'] pour le widget $params['widget']. Si cela enregistre les paramètres, le gestionnaire devrait 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 des widgets de cette liste de manière conditionnelle, ou modifier des attributs de widgets existants comme context ou multiple.

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,
)
public_pages, walled_garden

Filtre une liste d’URLs (chemins) qui peuvent être vues par les utilisateurs déconnectés dans un mode walled garden. Les gestionnaires doivent renvoyer un tableau de chaînes regex qui permettront l’accès si l’URL correspond. Veuillez noter que les itinéraires publics du système sont passés comme valeur par défaut pour le hook, et que les plugins doivent prendre soin de ne pas remplacer accidentellement ces valeurs.

Le tableau $params contient :

  • url - URL de la page testée pour l’accessibilité publique

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']

sont autorisés pendant le mode de maintenance.

robots.txt, site

Filtre les valeurs de robots.txt pour $params['site'].

config, amd

Filtre la configuration AMD pour la bibliothèque requirejs.

Plugins

Embed

embed_get_items, <active_section>

embed_get_sections, all

embed_get_upload_sections, all

Groupes

profile_buttons, group

Les boutons de filtres (instances de ElggMenuItem) à enregistrer dans le menu titre de la page de profil du groupe

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

HTMLawed

allowed_styles, htmlawed

Filtre le tableau HTMLawed des styles autorisés.

config, htmlawed

Filtre le tableau HTMLawed $config.

spec, htmlawed

Filtre la chaîne HTMLawed $spec (vide par défaut).

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 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.

Web Services

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