Réseau privé - « Walled Garden »

Elgg prend en charge un mode Walled Garden - jardin clos, ou réseau privé. Dans ce mode, presque toutes les pages ne sont accessible qu’aux seuls utilisateurs connectés. Ceci est utile pour les sites qui n’autorisent pas l’inscription publique.

Activer le mode réseau privé - Walled Garden

Pour activer le mode Walled Garden dans Elgg, accédez à la section Administration. Dans le menu de la barre latérale droite, sous la section « Configurer », développez « Paramètres » puis cliquez sur « Avancé ».

Dans la page Paramètres avancés, recherchez l’option libellée « Restreindre les pages aux utilisateurs connectés ». Activez cette option, puis cliquez sur « Enregistrer » pour basculer votre site en mode Walled Garden.

Exposer des pages à travers le Walled Garden

Many plugins extend Elgg by adding pages. Walled Garden mode will prevent these pages from being viewed by logged out users. Elgg uses events to manage which pages are visible through the Walled Garden.

Les auteurs de plugins doivent enregistrer les pages comme publiques si elles doivent être visibles à travers le walled garden :

  • en définissant 'walled' => false dans la configuration des routes

  • by responding to the public_pages, walled_garden event. The returned value is an array of regexp expressions for public pages.

Le code suivant montre comment exposer http://exemple.org/mon_plugin/public_page à travers le walled garden. Cela suppose que le plugin a enregistré une route pour mon_plugin/public_page.

// Preferred way
elgg_register_route('my_plugin:public_page', [
    'path' => '/my_plugin/public_page',
    'resource' => 'my_plugin/public_page',
    'walled' => false,
]);

// Legacy approach
elgg_register_event_handler('public_pages', 'walled_garden', 'my_plugin_walled_garden_public_pages');

function my_plugin_walled_garden_public_pages(\Elgg\Event $event) {
   $pages = $event->getValue();

   $pages[] = 'my_plugin/public_page';

   return $pages;
}