После установки и добавления в активную тему этот компонент темы позволяет управлять «главной страницей», делая её отличной от набора страниц, доступных по умолчанию в Discourse, а также назначая разные «главные страницы» для разных групп (например, участники группы интересуются только или в основном конкретной категорией). Это может быть применено ко всем пользователям, анонимным пользователям (не авторизованным), мобильным пользователям или в зависимости от основной группы пользователя. Изначально разработан пользователем @pfaffman. Подробнее: User-specific Discourse home page.
Сценарии использования:
Вы хотите что-то отличное от «обычной» главной страницы.
Вы хотите отдельную главную страницу для анонимных пользователей.
Вы хотите отдельную главную страницу для мобильных пользователей.
У вас есть группа пользователей, интересующихся лишь небольшой частью вашего экземпляра. Они хотят видеть только свою конкретную категорию.
Временно перенаправить группу ваших пользователей на специальное мероприятие или подобное.
Настроить разные целевые страницы для разных групп.
Настройки
Пользовательская главная страница по умолчанию
Позволяет задать глобальную пользовательскую главную страницу.
Страница для анонимных пользователей
Позволяет использовать указанную страницу для тех, кто не авторизован на вашем сайте. Переопределяет глобальную настройку выше.
Главная страница для мобильных устройств
Как описано в Force Mobile Homepage, это позволяет задать отдельную главную страницу для мобильных пользователей. Эта настройка переопределяет выбранные выше параметры.
Карта страниц для групп
Поддерживает несколько записей. Каждая запись должна иметь формат group_name:path, где group_name — это слаг группы (не полное имя группы Full Name), а path — желаемая главная страница (например, “/c/great-category/4”).
Убедитесь, что целевые пользователи имеют указанную группу в качестве своей основной группы, и всё готово. Если изменить настройку темы или основную группу пользователя, потребуется перезагрузка страницы, чтобы изменения вступили в силу.
Пользователи, у которых указанная группа является основной, не смогут перейти на вашу «обычную» главную страницу, если вы не обеспечите способ сделать это (например, с помощью встроенной боковой панели).
Известная проблема — ограничение относительными URL
К сожалению, это не включает Page Publishing. Однако можно обойти это ограничение, создав постоянную ссылку (permalink), которая будет перенаправлять на внешний сайт, и указывать именно эту постоянную ссылку.
@pfaffman протестировал это с постоянной ссылкой /go-google, которая перенаправляет на https://google.com, и настройкой вида group-name:/go-google.
Постоянные ссылки создаются в настройках администратора по адресу /admin/customize/permalinks.
Привет!! Это замечательно!!
Большое спасибо, это действительно важно для моего случая (use-case 1).
У меня есть вопрос по поводу фразы «Пользователи, у которых указанная группа является основной, не смогут попасть на вашу «обычную» домашнюю страницу»: что вы имеете в виду под «активно предоставить им возможность сделать это»?
Также в рамках этой концепции было бы полезно отображать на главной странице категории в определённом порядке в зависимости от группы, к которой принадлежит пользователь. Например, показывать их категорию вверху, а все остальные — ниже. Как вы думаете, это возможно? (если это ещё не реализовано?).
[quote=“lisandro_iaffar, пост:4, тема:199623”]
Пользователи с указанной группой в качестве основной не смогут попасть на вашу «обычную» главную страницу». Что вы имеете в виду под «активно предоставить им способ сделать это»?[/quote]
Это означает, что главная страница, которую вы установите в настройках сайта, будет переопределена. Так что, если вы хотите, чтобы пользователи могли попасть туда, вам нужно предусмотреть ссылку для перехода туда… Как-нибудь.
Я не могу представить, как это могло бы работать (возможно, у меня плохое воображение ). Сценарий использования, который я могу придумать, предполагает, что у пользователей будет установлена другая категория в качестве главной, если они состоят в определенной группе. Например, сайт о автомобилях мог бы позволить вам выбрать группу Ford в качестве вашей главной страницы.
Если вы хотите, чтобы для разных групп был доступен разный контент, то, думаю, это можно реализовать, установив категории по умолчанию как скрытые (muted).
Привет, Джей!
Спасибо за ответ
Допустим, я хочу, чтобы наверху были закреплены разные категории в зависимости от группы, к которой принадлежит пользователь. То есть каждый пользователь будет видеть свою собственную «закреплённую» категорию. Я не хочу скрывать от пользователя другие категории, просто хочу сделать наиболее используемую им категорию максимально заметной и доступной прямо на главной странице (если это возможно!).
(конечно, я ничего не «требую», просто спрашиваю, возможно ли это с помощью доступных настроек или компонентов)
В моём случае я настроил категорию клиента рекламодателя как главную страницу с помощью этого TC, но им показалось это запутанным, и они попросили меня снова убрать это. Поэтому я считаю, что TC «категории в витрине» с такой модификацией станет идеальным решением.
Привет @jrgong!
Огромное спасибо, что указали мне на эту тему! И да! Это было бы просто отлично! Я перехожу туда, чтобы поддержать идею
Ещё раз спасибо!
Вы уверены, что это самая последняя версия на GitHub? (Не ваш форк и не статическая/локальная версия?) Я только что выполнил обновление, и всё работает. Также, глядя на код, api используется только в одном месте:
const user = api.getCurrentUser();
и это находится внутри блока, где определяется api.
Это странно. Я всё равно убрал это из того экземпляра, так как оно было лишним. И после обновления в другом экземпляре всё работает нормально. Странно. Спасибо, что уделили время!
Есть ли у вас идея, как это взаимодействует с боковой панелью? Мне нужно попробовать, так как похоже, что проблема с необходимостью возврата на главную страницу форума решена с его помощью.
Да, та же тема работает нормально при входе в систему, но не для анонимных пользователей. И на всякий случай: относительный URL должен начинаться с /? Спрашиваю, потому что Jammy использовал tag/featured/, а я — /c/artwork/8.
У меня это заработало — это была моя ошибка.
Отлично, спасибо! У меня пока не отображается как обновление, хотя должно?
У меня в форке это есть. Если хотите, можете установить его самостоятельно прямо отсюда, пока Джей не объединит изменения:
Работает как с “/”, так и без неё.
К слову
Так, как у вас настроено, работать не будет, поскольку пользователи не могут иметь группы уровня доверия в качестве своей основной группы.
Подумав об этом — добавлена ли она в тему по умолчанию для сайта (анонимные пользователи используют её)? Я сам попадался на том, что добавлял компонент в свою тему «dev», но не в тему по умолчанию.