Walled Garden

Elgg поддерживает режим «Walled Garden». В этом режиме почти все страницы доступны только авторизованным пользователям. Это полезно для сайтов, которые не разрешают публичную регистрацию.

Активация режима Walled Garden

Чтобы активировать режим Walled Garden в Elgg, перейдите в раздел Администрирование. В меню правой боковой панели, в разделе «Настроить», разверните «Настройки», затем нажмите на «Дополнительно».

На странице Расширенных настроек найдите опцию с надписью «Ограничить страницы для авторизованных пользователей». Включите эту опцию, затем нажмите «Сохранить», чтобы переключить ваш сайт в режим Walled Garden.

Открытие страниц через Walled Gardens

Многие плагины расширяют Elgg, добавляя страницы. Режим Walled Garden предотвратит просмотр этих страниц неавторизованными пользователями. Elgg использует события для управления тем, какие страницы видны через Walled Garden.

Авторы плагинов должны регистрировать страницы как публичные, если они должны быть видны через Walled Gardens:

  • установив 'walled' => false в конфигурации маршрута

  • ответив на событие public_pages, walled_garden. Возвращаемое значение — массив регулярных выражений для публичных страниц.

Следующий код показывает, как открыть страницу http://example.org/my_plugin/public_page через Walled Garden. Это предполагает, что плагин зарегистрировал маршрут для my_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;
}