Компонент темы «Гостевой портал»

Guest Gate v1.0

Привет :wave: Этот компонент темы создан на основе Guest Gate (Sign Up Popup Plugin). Он может блокировать темы для анонимных посетителей с помощью модального окна и заставлять их зарегистрироваться или войти в систему. Компонент можно использовать для модального окна предупреждения, которое поощряет посетителей к регистрации, но позволяет им закрыть окно (для этого не отмечайте настройку dismissable false). Среди вариантов есть изменение количества просматриваемых тем до появления модального окна.


Совет: Если вы используете опцию «custom gate» и хотите скрыть заголовок модального окна (как на изображении выше), вам нужно удалить поле guest_gate.title и нажать пробел. Это удалит заголовок модального окна, чтобы вы могли вместо этого использовать заголовок под изображением.

У вас есть два основных варианта «шлюза» (gate):

  1. Общий шлюз (по умолчанию: использует текст CTA для регистрации в Discourse в модальном окне). Он использует эти тексты: js.signup_cta.intro и js.signup_cta.value_prop

  2. Пользовательский шлюз (вы можете настроить модальное окно: добавить изображение, пользовательский текст и цвета).


И есть множество других настроек

Глобальные настройки модального окна Guest Gate

  1. max guest topic views
    Количество просмотров тем до появления шлюза. После первого появления шлюз будет появляться случайно от 1 до этого числа.
  2. dismissable false
    Убирает кнопку закрытия, что предотвращает закрытие окна посетителями.
  3. use gate buttons
    Использовать кнопки в футере модального окна вместо ссылок.
  4. custom url enabled
    Включить опции для пользовательского URL входа и пользовательского URL регистрации. Поведение по умолчанию (если вы не отметите эту опцию) — появление модального окна входа или регистрации на текущей странице темы.
  5. custom login url
    Например, /login — это домашняя страница с отображенным модальным окном «Вход».
  6. custom signup url
    Например, /signup — это домашняя страница с отображенным модальным окном «Регистрация».
  7. gate footer position
    Положение кнопок/ссылок в футере.
  8. gate show only once
    Модальное окно Guest Gate отображается только один раз за сессию.

Настройки пользовательского шлюза (Custom Gate)

  1. custom gate enabled
    Включите, если хотите настроить модальное окно.
  2. custom gate image
    Загрузите изображение для отображения в верхней части модального окна.
  3. custom gate image width
    Ширина загруженного изображения. Можно использовать px, % и т. д., например, 100% добавит изображение на всю ширину модального окна (за вычетом отступов).
  4. custom gate big text color
    «Большой текст» появляется под изображением. Вы можете установить цвет текста.
  5. custom gate little text color
    «Маленький текст» появляется под большим текстом. Вы можете установить цвет текста.
  6. custom gate background color
    Изменить цвет фона модального окна.
  7. custom gate footer text color
    Изменить цвет текста в футере. Это применяется, если настройка use gate buttons отключена и вы настроили пользовательский шлюз.
  8. custom gate link color
    Изменить цвет ссылок в футере. Это применяется, если настройка use gate buttons отключена и вы настроили пользовательский шлюз.

Благодарность :heart: Огромное спасибо авторам, сопровождающим и вкладчикам плагина: @vinothkannans, @jgujgu и @michaeld

Guest Gate v2.0

Привет :wave:

Guest Gate v2.0 — это современный, настраиваемый шлюз для анонимных посетителей в Discourse.

Он может отображать модальное окно, чтобы побудить посетителей зарегистрироваться или войти в систему, либо как мягкое предложение для конверсии, либо как шлюз, который посетители не могут закрыть.

Guest Gate начался с оригинального плагина Guest Gate Sign Up Popup и с тех пор значительно эволюционировал.

Активация Guest Gate

Версия 2.0 поддерживает несколько способов активации шлюза:

  1. Просмотры страниц
    Отображать шлюз после настраиваемого количества соответствующих просмотров страниц.

  2. Время
    Отображать шлюз после того, как посетитель проведет настраиваемое количество времени на соответствующей странице.

  3. Прокрутка
    Отображать шлюз после того, как посетитель прокрутит настраиваемый процент страницы.

  4. Lightbox
    Отображать шлюз, когда анонимный посетитель открывает изображение в lightbox Discourse.

  5. Любой
    Включить несколько типов триггеров и отображать шлюз, когда достигается первый настроенный триггер.

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


Повторное поведение

После того как Guest Gate был отображен, вы можете контролировать, когда он может появиться снова.

Доступные режимы:

  • Повторный триггер: показывать шлюз каждый раз, когда срабатывает настроенный триггер.

  • Случайные просмотры страниц: показывать шлюз после случайного количества просмотров страниц.

  • Один раз за сессию: показывать шлюз не более одного раза во время сессии браузера.

Легаси-настройка Показывать только один раз также поддерживается для обратной совместимости.


Видимость URL

Две настройки контролируют, где Guest Gate разрешено появляться:

url_for_show

Определите пути, где Guest Gate может быть активирован.

Примеры:

  • * все страницы

  • / домашняя страница

  • /latest Последние

  • /t/* темы

  • /c/* категории

url_for_hide

Определите пути, где Guest Gate никогда не должен появляться.

Паттерны скрытия всегда имеют приоритет над списком показа.


Настройки модального окна

dismissable

Разрешить посетителям закрывать модальное окно Guest Gate.

Отключите эту опцию, чтобы создать шлюз, который нельзя закрыть.

gate_modal_size

Выберите ширину модального окна:

  • compact

  • standard

  • wide

gate_body_alignment

Выберите горизонтальное выравнивание основного содержимого модального окна:

  • left

  • center

  • right

gate_footer_position

Выберите выравнивание ссылок или кнопок «Вход» / «Регистрация»:

  • left

  • center

  • right

gate_title_visibility

Показать или скрыть заголовок модального окна.

gate_title_position

Управлять позиционированием отступов заголовка.


Вход и Регистрация

Guest Gate поддерживает стандартный процесс аутентификации Discourse, а также пользовательские URL.

use_gate_buttons

Использовать кнопки в футере модального окна вместо текстовых ссылок.

custom_url_enabled

Использовать пользовательские URL для входа и регистрации вместо стандартных действий аутентификации Discourse.

custom_login_url

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

custom_signup_url

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

Вы также можете независимо настроить стили кнопок и иконки Font Awesome.


Discourse Connect

Guest Gate поддерживает Discourse Connect.

Когда Discourse Connect включен, вы можете опционально предоставить отдельный URL для регистрации, используя:

  • enable_discourse_connect_signup

  • discourse_connect_signup_url


Пользовательский шлюз (Custom Gate)

Пользовательский шлюз позволяет полностью настроить содержимое и внешний вид модального окна.

Включите его с помощью:

custom_gate_enabled

Включить дизайн пользовательского шлюза.

custom_gate_image

Необязательное изображение, отображаемое над пользовательским текстом.

custom_gate_image_alt

Альтернативный текст для пользовательского изображения.

custom_gate_image_width

Установите ширину изображения, используя значения, такие как:

  • 150px

  • 50%

  • 100%

custom_gate_image_position

Выровнять изображение:

  • left

  • center

  • right

custom_gate_big_text_position

Выровнять пользовательский заголовок:

  • left

  • center

  • right

custom_gate_little_text_position

Выровнять пользовательский текст:

  • left

  • center

  • right

Пользовательский шлюз также предоставляет настройки для заголовка, текста, фона, футера и цветов ссылок.


Аналитика

Guest Gate v2.0 включает в себя опциональную аналитику с учетом конфиденциальности.

Включите ее с помощью:

enable_analytics

Когда включено, Guest Gate отслеживает:

  • Показы шлюза

  • Причина срабатывания

  • Путь страницы

  • Клики по «Вход»

  • Клики по «Регистрация»

  • Действия SSO

  • Действия закрытия

События передаются через window.dataLayer и также диспетчируются как событие браузера:

discourse-guest-gate:analytics

Это позволяет интегрировать Guest Gate с платформами аналитики и управления тегами, такими как Google Analytics, Google Tag Manager, Matomo, или с собственными реализациями аналитики.

Личные данные Guest Gate не собираются.

Аналитика отключена по умолчанию.

analytics_debug_logging

Включите это при настройке аналитики, чтобы выводить события Guest Gate в консоль браузера.

Рекомендуется отключать это в производственной среде.


Миграция с v1

Guest Gate v2.0 включает в себя миграцию настроек для существующих установок.

Следующие легаси-настройки мигрируются автоматически:

  • max_guest_topic_views

  • dismissable_false

  • gate_show_when_thumbnail_clicked

Существующие конфигурации, таким образом, не нужно создавать заново вручную после обновления.


Требования

Для работы Guest Gate v2.0 требуется Discourse 3.2.0 или новее.


Благодарность :heart:
Огромное спасибо авторам, сопровождающим и вкладчикам оригинального плагина: @vinothkannans, @jgujgu и @michaeld

62 лайка

Спасибо! Это отлично :slight_smile:

Мне очень нравится, что ссылки «Войти» / «Зарегистрироваться» можно заменить кнопками.

Предлагаю, чтобы кнопка «Зарегистрироваться» была выделена (синим цветом), а кнопка «У меня уже есть аккаунт» — серой. Это кажется более стандартным, по крайней мере, судя по моим наблюдениям за популярными сайтами. Вероятно, большинство людей, видящих модальное окно, ещё не имеют аккаунта, поэтому это решение выглядит логичным.

2 лайка

Привет @markersocial,

Спасибо за предложение! :slightly_smiling_face:

Я добавил эти два параметра. Теперь вы можете изменить стиль кнопок входа и регистрации в модальном окне для гостей.

btn-primary или btn-default

4 лайка

Отлично, большое спасибо, @Don! Обновил, теперь всё работает прекрасно :slight_smile:

Единственное другое предложение — добавить возможность настраивать частоту повторных напоминаний.

Настройка: максимальное количество просмотров тем для гостей
«Количество просмотров темы до отображения блокировки. После первого появления блокировка будет показываться случайным образом между 1 и этим числом».

Установка максимального количества просмотров темы для гостей на 1 или 2 хороша, так как это побуждает к регистрации на раннем этапе. Однако, если пользователь отказался (и опция «показывать один раз за сеанс» не включена), было бы здорово иметь возможность снова показывать модальное окно с меньшей частотой, чтобы не быть слишком навязчивым для тех, кто просто наблюдает. Например, каждые 5 или более просмотров темы.

2 лайка

Привет, Дон, отличный компонент! Есть ли возможность сделать кнопку регистрации настраиваемой, чтобы можно было вставить URL? Я использую Memberful для SSL, поэтому обычная ссылка на регистрацию не работает — просто перекидывает на страницу входа. Спасибо!

3 лайка

Привет, Дэвид,

Спасибо, это отличная идея! :slightly_smiling_face:

Я добавил это. Я заменил настройку redirect_to_home на custom_url_enabled и две опции.

  1. custom_login_url: /login
    (по умолчанию это перенаправление на главную страницу и открытие модального окна входа)
  2. custom_signup_url: /singup
    (по умолчанию это перенаправление на главную страницу и открытие модального окна регистрации)
4 лайка

Отлично! Есть только одна проблема: теперь не работают опции пользовательского текста для ворот.

1 лайк

Я проверил ваш сайт, и у меня всё работает. Попробуйте выполнить жёсткую перезагрузку страницы или снова открыть браузер — возможно, вы видите кэшированную версию.

1 лайк

Я так и подумал. Очистил кэш, попробовал четыре разных браузера, и везде то же самое — очень странно! Если не возражаешь, попробуй ещё раз: я только что изменил guest_gate.title на ‘Test’. Видишь это обновление?

Да, именно это я сейчас вижу.

Попробую проверить другие браузеры и устройства.

Те же результаты через VPN, с моего телефона, в другой сети. Это самое странное, что я когда-либо видел! Думаю, пока все остальные видят правильный текст, всё в порядке! :rofl:

Привет, Дэвид,

По-моему, это ненормально. :slightly_smiling_face: Возможно, это ошибка, связанная с локалью. Моя лучшая рекомендация — отключить настройку «Устанавливать локаль из заголовка Accept-Language».
Как я вижу, вы используете её на своём сайте, и, возможно, именно поэтому в модальном окне отображаются тексты по умолчанию: язык вашего браузера отличается, и Discourse возвращает текст по умолчанию.

Можете ли вы отключить эту настройку и попробовать снова?

Screenshot 2022-05-12 at 8.45.19


Теперь я могу воспроизвести эту проблему. Я изменил язык в Chrome с английского (Великобритания) на английский (США), и это произошло.

а затем вернулся к английскому (Великобритания)

4 лайка

Спасибо, Дон, вы невероятно полезны! Кажется, в моей установке языков есть ошибка. Поскольку это, похоже, не вызвано вашим компонентом, я создам новую тему. Благодарю вас за то, что уделили этому внимание.

РЕДАКТИРОВАНИЕ: Я выяснил, что мой локаль администратора каким-то образом изменился на Великобританию вместо США, очень странно! Я вернул его обратно, снова заполнил поля, и теперь в мире всё хорошо.

3 лайка

3 сообщения были перенесены в новую тему: Компоненты не учитывают переопределения текста

Это работает очень хорошо. Спасибо.

Я внес несколько небольших правок, чтобы сделать первый пост более читаемым. Однако одно предложение я совсем не понял:

Включить пользовательский URL
По умолчанию добавить пользовательский URL к кнопкам/ссылкам «Войти» и «Зарегистрироваться». Это перенаправляет посетителя после нажатия на кнопку «Войти» или «Зарегистрироваться» на главную страницу и открывает модальное окно входа или регистрации. Примечание: Если вы оставите эту опцию без галочки, то после нажатия на кнопки посетитель останется на странице темы, а модальное окно «Гостевой шлюз» заменится на модальное окно входа или регистрации, которое можно закрыть, чтобы посетитель мог закрыть его и прочитать тему.

2 лайка

Спасибо, Джонатан :slightly_smiling_face: Я очень ценю это :heart: К сожалению, мой английский не самый лучший :confused: Извините за это! Я изменю это в компоненте темы или, конечно, вы тоже можете отправить PR. :slightly_smiling_face:

Настройка сайта custom url enabled означает следующее:
Вы можете добавить пользовательские URL-адреса для кнопок/ссылок входа и регистрации гостевого шлюза, которые по умолчанию используют эти пользовательские URL-адреса /login и /signup. Эти ссылки перенаправляют посетителя на главную страницу и открывают модальное окно входа или регистрации. Таким образом, если вы установили этот флажок, будут активированы два параметра ниже: custom login url и custom signup url.

Если вы оставите эту настройку не отмеченной, то после нажатия кнопок/ссылок входа или регистрации гостевого шлюза посетитель останется на странице темы, и модальное окно входа или регистрации откроется на той же странице темы. После этого посетитель сможет закрыть модальное окно.

Надеюсь, это поможет понять, и ещё раз спасибо за ваше время, чтобы сделать всё более понятным :slightly_smiling_face:

2 лайка

Ваш английский в порядке, и с вашим JavaScript всё в порядке — это главное :slight_smile: А как насчёт этого?

  1. custom url enabled — Включите опции custom login url и custom signup url. Обычное поведение (если оставить эту опцию без галочки) заключается в том, что модальное окно входа или регистрации появляется на текущей странице темы.
  2. custom login url — Например, /login — это главная страница с отображённым модальным окном «Вход».
  3. custom signup url — Например, /signup — это главная страница с отображённым модальным окном «Регистрация».
2 лайка

Это во многом благодаря авторам и участникам плагина. Но я стараюсь разрабатывать это и добавлять новые функции, исправления и т. д. :slightly_smiling_face:


Спасибо за исправление :slightly_smiling_face: теперь это выглядит гораздо лучше. Я также внесу эти исправления в компонент темы.

Всем привет,
Я недавно установил этот компонент, и он работает отлично, но я не уверен, не замедляет ли механизм фильтрации работу бота Google при сканировании тем.

Кто-нибудь знает, как это влияет на краулеры?

2 лайка

У меня возникли проблемы с настройкой Guest Gate при использовании SSO с Discourse Connect.

Пользователь может войти в основной сайт, после чего, похоже, вошёл и в Discourse, но после перехода по нескольким темам появляется модальное окно Guest Gate. Это необычно, так как пользователь уже авторизован.

У меня настроены кастомные URL-адреса для входа, поэтому, когда пользователь нажимает «Я уже авторизован», его перенаправляет на мою кастомную страницу входа, и цикл повторяется.

Единственный обходной путь — когда пользователь нажимает нативную кнопку входа в Discourse и автоматически авторизуется.

Похоже, что по какой-то причине Guest Gate не учитывает вход через SSO и требует нативного входа для активации.

Сталкивались ли другие с этой проблемой? Есть ли какие-либо предложения по решению или обходному пути?

1 лайк