Propriété de la page

Une tâche récurrente de tout plugin sera de déterminer qui est propriétaire de la page afin de décider quelles actions sont autorisées ou non. Elgg a un certain nombre de fonctions liées à la propriété de la page et offre également aux développeurs de plugin une flexibilité en laissant le plugin gérer également les demandes de propriété de page. La détermination du propriétaire d’une page peut être déterminée avec elgg_get_page_owner_guid(), qui retournera le GUID du propriétaire. Alternativement, elgg_get_page_owner_entity() récupérera l’entité complète du propriétaire de la page. Si la page sait déjà qui est le propriétaire de la page, mais pas le système, la page peut définir le propriétaire de la page en passant son GUID à elgg_set_page_owner_guid($guid).

Note

L’entité propriétaire de la page peut être n’importe quelle ElggEntity. Si vous souhaitez appliquer des paramètres particuliers selon que c’est un utilisateur ou un groupe, assurez-vous de vérifier que vous avez la l’entité correcte.

Gestionnaires de propriétaire de page personnalisé

Les développeurs de plugins peuvent créer des gestionnaires de propriétaire de page, ce qui peut être nécessaire dans certains cas, par exemple lors de l’intégration de fonctionnalités tierces. Le gestionnaire sera une fonction qui devra être enregistrée via elgg_register_plugin_hook_handler('page_owner', 'system', 'nom_de_votre_fonction_gestionnaire_de_page'); Le gestionnaire devra seulement renvoyer une valeur (un GUID entier) lorsqu’il sait avec certitude qui est le propriétaire de la page.

Par défaut, le système utilise default_page_owner_handler() pour déterminer le propriétaire de la page (page_owner) à partir des éléments suivants :

  • Le paramètre d’URL username

  • Le paramètre d’URL owner_guid

  • Le chemin de l’URL

Il passe ensuite à tous les gestionnaires de propriétaire de page définis à l’aide du hook plugin. Si aucun propriétaire de page ne peut être déterminé, le propriétaire de la page est défini sur 0, ce qui correspond à l’utilisateur déconnecté.