Liste des hooks de plugin du noyau

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

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>

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. Renvoyez false pour supprimer l’utilisateur. Notez que la fonction register_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 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’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 AMD elgg/Ajax, utilisez le hook ajax_response documenté ci-dessus.

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

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

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 et false 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 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 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 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 subscriptions et 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 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 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 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é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 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 ou false 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éthode email. 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 retourner true ou false 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 forme Nom <nom@exemple.org>

  • from - adresse email de l’expéditeur ou chaîne de la forme Nom <nom@exemple.org>

  • subject - ligne du sujet de l’email

  • body - corps de l’email

  • headers - un tableau d’entêtes

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

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 hook response, 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é par action/ ou 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 doivent 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 n’a pas commencé 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

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 avec title, metas et linksmetas est un tableau d’éléments à formater sous la forme de balises head <meta>, et links 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 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.

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 ou image/jpeg) et détermine une catégorie globale comme document ou image. Le plugin de fichiers et d’autres plugins tiers stockent habituellement la métadonnée simpletype sur les entités de fichiers et les utilisent lorsqu’ils servent des icônes et construisent des filtres et des menus ege*.

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

  • h - Hauteur de l’image en pixels

  • square - 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 ou json.

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 alternatif ElggIcon qui pointe vers un emplacement personnalisé de l’icône dans le répertoire de données. 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 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 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é.

La 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 peut être utilisé pour appliquer une logique de manipulation d’image personnalisée aux icônes de redimensionnement/recadrage. Le gestionnaire doit renvoyer true pour empêcher les API de base 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 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 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() 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é par elgg_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 ElggUser

  • plugin - Une instance de ElggPlugin

  • plugin_id - L’ID du plugin

  • name - Le nom du paramètre

  • value - La valeur à définir

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

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

robots.txt, site

Filtrez les valeurs 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 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.

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