XF 2.1 Запретить (но не скрыть) поиск для гостей

Статус
В этой теме нельзя размещать новые ответы.
Версия XenForo
2.1.7

lazerhead

Проверенные
Сообщения
321
Реакции
119
Баллы
5,540
Подскажите, как оставить поиск видимым для гостей (т.е. чтобы ссылка на него осталась), но чтобы при переходе на страницу поиска, от гостя требовалась регистрация или авторизация. Если просто запретить поиск в правах гостей, то он исчезает полностью...
 
Самый простой вариант: запретить-таки поиск для гостей в правах, а в навигацию вывести для гостей ссылку поиска. При клике на неё будет выводиться стандартное уведомление о недостаточных правах Ксенфоро
 
  • Мне нравится
Реакции: Hope
Включаете режим разработчика в движке:
PHP:
$config['development']['enabled'] = true;
Создаёте в папке src/addons файл NoSearchForGuests.php со следующим содержимым:
PHP:
<?php

class NoSearchForGuests
{
    public static function onControllerPreDispatch(\XF\Pub\Controller\AbstractController $controller, $action, \XF\Mvc\ParameterBag $params)
    {
        $controller->assertRegistrationRequired();
    }
}

В админке создаёте новый обработчик события (/admin.php?code-events/listeners/add). Имя события - controller_pre_dispatch, подсказка события - XF\Pub\Controller\Search, выполнять обработчик - в первое поле NoSearchForGuests, во второе onControllerPreDispatch. После - сохранить.

Результат:
1589802353389.png
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу