Скрыть часть контента для анонимных пользователей

Здравствуйте, мне нужна функция «скрыть». Если я вставлю текст между [hide]скрытый текст для гостей форума[/hide], то этот текст смогут просматривать только зарегистрированные пользователи. Я уверен, что эта функция будет полезна многим владельцам форумов. Спасибо.

5 лайков

Не уверен, что полностью понимаю, о чём вы думаете, не говоря уже о том, чтобы точно знать, как это сделать :wink:

Многое из контента форума можно «скрыть». В зависимости от ситуации, это могут быть:

  • категории без прав доступа для всех
  • скрытые сообщения (только для сотрудников)
  • удалённые или скрытые темы (для сотрудников / по ссылкам)
  • пользовательские CSS-стили (например, display: none)
  • темы оформления?
  • плагины?
  • спойлеры (действие пользователя)
  • сводка / подробности (действие пользователя)

Вы опубликовали то, что выглядит как теги BBCode, использование которых приведёт к тому, что текст внутри сообщения не будет отображаться анонимным пользователям.

Насколько мне известно, это пока не реализовано, однако некоторые плагины для BBCode могут дать вам отправную точку.

4 лайка

Где-то уже существует тема об этом. Это редкая и малоизвестная функция старого программного обеспечения для форумов.

4 лайка

Извините, что поднимаю эту старую тему. Я нашел что-то похожее, но это касалось загрузок, а не внешних URL.

Я могу объяснить причину, по которой нужна эта функция. Некоторые пользователи посещают ваш форум, но не регистрируются и только читают, потому что им нужна лишь информация. Некоторые используют свой форум для поддержки клиентов, поэтому предложение им зарегистрироваться, чтобы увидеть ссылки (которые обычно содержат ключевой контент для понимания или следования инструкциям), — это разумный компромисс. Это также позволяет включить их в рассылку сводок, что может привести к конверсии в будущем.

Я знаю, что мы можем скрыть форум от гостей с помощью функции «требуется вход», но это звучит довольно агрессивно и отпугивает органический трафик.

6 лайков

Я согласен с @MarcP. Каждому форуму нужен трафик, но ему нужны лояльные пользователи, а не паразиты.

5 лайков

Я тоже вижу аргументы в пользу этого и не согласен с ответом @Mittineague выше. Существует разница между скрытием «всего» (всего поста, темы или категории) и скрытием лишь части информации в некоторых постах, чтобы стимулировать гостей к регистрации. Кроме того, существуют форумы, информация на которых становится мишенью для парсинга; в таких случаях регистрация уже необходима (хотя бы для того, чтобы лучше отслеживать действия пользователей). Скрытие с помощью CSS здесь мало помогает.

Возможно, это можно реализовать на уровне темы? (Я не уверен).

3 лайка

Я тоже сталкиваюсь с подобными случаями, особенно когда нужно скрывать или показывать элементы в зависимости от текущего уровня доверия. Например, в публичной теме могут быть разные ссылки на следующие темы или категории, доступные только пользователям определённого уровня доверия. И было бы хорошо скрывать их от остальных пользователей, которые не смогут правильно ими воспользоваться.

2 лайка

В таких случаях иногда можно обойтись кастомным SCSS. Основная группа пользователя доступна в виде класса в теге body страницы, поэтому можно настроить интерфейс для разных групп.

1 лайк

@JonathanShaw Спасибо за направление!

Интересно, что произойдет, если мы добавим одну ссылку на тему, к которой у пользователя нет доступа/которую он не видит, в другую тему, которую он может видеть? Это, вероятно, [по моему предположению] позволит «утечь» первым 500 символам (или около того, в зависимости от конфигурации сайта) темы, которую пользователь не может видеть.

???

Просто небольшое обновление. Я нашла этот плагин. Он работает идеально.

Он немного навязчив (я установила его на 1 пост и убрала кнопку закрытия), но его можно настроить и более дружелюбно. Это, впрочем, довольно хорошее (временное? :flushed_face:) решение для моей ранее озвученной проблемы. Возможно, это будет интересно другим пользователям, которые читают эту тему. Спокойной ночи :zzz:

3 лайка

Если вы хотите только скрыть контент на уровне фронтенда от пользователя, это должно быть реализуемо с помощью темы.

Если же вы хотите запретить отправку этого контента через запросы к API от анонимных пользователей (или ботов, краулеров и тому подобного) и сделать так, чтобы контент нельзя было увидеть даже при открытии инспектора браузера, просмотре сетевых ответов или отладке JavaScript, то, вероятно, вам понадобится плагин для обработки этого на уровне бэкенда.

1 лайк

Окей, спасибо. Работа на уровне темы — это как CSS. Не видно, но если не вглядываться, выглядит чуть лучше (информация всё ещё там). :+1:

1 лайк

Но важно отметить, что тема должна обрабатывать содержимое поста, а Discourse уже делает это для преобразования необработанного текста в Markdown, oneboxes и так далее, поэтому это должно быть реализовано таким образом, чтобы не конфликтовать с уже существующим механизмом работы.

1 лайк

Обойти этот плагин легко: нажмите «Войти» или «Зарегистрироваться», а затем кнопку закрытия (X). Просто нажмите на неё, чтобы обойти :smiley:

Вы можете отключить эту кнопку X в настройках.

Я знаю. Даже если вы отключили кнопку X, вы всё равно можете обойти это с помощью моего метода.