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 dispose de plusieurs 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 renverra 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 l’entité correcte.

Gestionnaires de propriétaire de page personnalisé

Les développeurs de plugins peuvent créer des gestionnaires de propriétaires de pages, 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 avec elgg_register_plugin_hook_handler('page_owner', 'system', 'your_page_owner_function_name');. Le gestionnaire ne devra renvoyer de valeur (un GUID de type integer) que s’il sait avec certitude qui est le propriétaire de la page.

Par défaut, le système détecte automatiquement le propriétaire de la page - page_owner - à partir des éléments suivants :

Sur la base de la définition de la route :

  • Si le nom commence par view ou edit les paramètres username et guid sont vérifiés

  • Si le nom commence par add ou collection les paramètres username, guid et container_guid sont vérifiés

  • Si dans la définition de la route la valeur detect_page_owner est définie sur true les paramètres username, guid et container_guid sont vérifiés

L’ancienne détection d’URL est tentée si la route détectée n’a pas abouti à un propriétaire de page :

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