Я до сих пор не уверен, почему ранее убрал поддержку страниц по умолчанию и для анонимных пользователей. Я вернул их обратно.
Теперь, если существует custom_default_homepage, используется она, если только нет совпадения с группой. Если есть anon_page и пользователь анонимен, используется эта страница.
Мне не удалось понять, как и когда должна устанавливаться мобильная страница (для анонимных пользователей? для всех? переопределяет ли она страницу по умолчанию или карту групп?), поэтому я её удалил. Если вы используете эту мобильную страницу, сообщите, что, по вашему мнению, она должна переопределять (я думаю, возможно, её следует установить как страницу по умолчанию для мобильных устройств, но если есть страница группы, то использовать её? Всё ещё неясно, что делать для анонимных и авторизованных пользователей — возможно, нужны мобильные версии для всех вариантов?).
Вот код:
let url = null;
if (settings.custom_default_homepage) {
url = settings.custom_default_homepage.replace(/^\/+/g, "");
}
if (user) {
if (user.primary_group_name && settings.group_page_map) {
let groupMap = settings.group_page_map.replace(",", ":").split("|");
const mapEntry = groupMap.find((value) =>
RegExp(user.primary_group_name).test(value)
);
if (mapEntry) {
url = mapEntry.split(":")[1].replace(/^\/+/g, "");
}
}
} else if (settings.anon_page) {
url = settings.anon_page.replace(/^\/+/g, "");
}
Затем главная страница изменяется только если url содержит значение.
Предназначен ли этот компонент темы для перенаправления любого пользователя из группы на главную страницу при входе в систему или при использовании ссылок? Я установил его, и логотип перенаправляет на выбранную страницу, но при входе в систему пользователь всё равно попадает на страницу по умолчанию /latest. Если этот компонент отвечает за перенаправление при входе, значит, у меня что-то настроено неправильно.
Моя цель — включить всех пользователей в группу по умолчанию и перенаправлять их на альтернативную страницу при входе в систему.
Для срабатывания этого правила TC оно должно быть их основной группой. Это сделано намеренно, чтобы избежать конфликтов, когда пользователь состоит более чем в одной группе с перенаправлением.
В начале мы исходили из того, что это правило переопределяет только домашнюю страницу по умолчанию — все остальные (включая анонимных пользователей) имеют приоритет.
Классический сценарий использования — отображение категорий + последних тем на десктопе, так как на мобильных устройствах это выглядит как список категорий (что не очень полезно).
В настоящее время боковая панель делает это ненужным для большинства установок, поэтому, на мой взгляд, удаление этой функции имеет смысл. Однако это может застать врасплох некоторых пользователей, которые использовали TC в течение длительного времени.
Считается ли уровень доверия 0 допустимой группой? Было бы это правильным настройкой для «Карты страниц групп»? trust_level_0:/discourse-ai/ai-bot/conversations. Это текущая настройка, которую я установил.
Вы пробовали установить пользовательскую домашнюю страницу по умолчанию на страницу вашего ИИ-бота (чтобы она была стандартной для всех), а затем настроить домашнюю страницу для анонимных пользователей на «Последние» (чтобы переопределить стандартную настройку для них)?
Сначала спасибо всем за то, что подключились и помогли с этим! Это очень ценно!
Для меня это загадка.
Я установил этот плагин без проблем и в настройках указал trust_level_0, чтобы сделать эту группу основной. Все участники сайта были добавлены в группу. Теперь все пользователи показывают её как основную.
В настройках компонента «Настраиваемая домашняя страница для групп» у меня установлено следующее.
При переходе на страницу пользователи в основной группе Community-Core всё равно попадают на /latest. Если я изменю страницу для анонимов на что-то другое, кроме /latest, то при входе пользователи будут видеть ту страницу, которая указана в этом поле — значит, происходит именно это перенаправление.
Я использую тему Canvas Screen и переключился на тему по умолчанию для теста, но результат тот же.
Также я отключил все компоненты темы и плагины, чтобы проверить, поможет ли это, но без успеха.
Думаю, либо я упускаю что-то очевидное для других, либо проблема в самом компоненте.
Когда вы щёлкнете правой кнопкой мыши по вашему сайту и выберете «Исследовать элемент», вы увидите, что именно запрашивает pfaffman. Например, на моей странице управления пользователями (/admin/users/{user_id}/{username}) я вижу следующее:
Именно это я имел в виду, но теперь я вспомнил/увидел, что компонент получает основную группу из модели пользователя, а не из CSS.
Так что, возможно, найдите пользователя через административный маршрут пользователей и добавьте .json к URL. Затем проверьте, какая у него основная группа, и выполните поиск (в браузере) по строке primary_group: true, убедившись, что имя точно совпадает с тем, который вы использовали в конфигурации темы.
Имя основной группы действительно Community-Core, с заглавными буквами и дефисом, что в точности соответствует тому, что я ввёл в настройках компонента темы.
Нет. Если оно идет на страницу анонимного пользователя, а не на «пользовательскую домашнюю страницу по умолчанию», значит, при выполнении этого кода пользователь не находится.
const user = api.getCurrentUser();
Не понимаю, как такое может происходить, если пользователь действительно вошел в систему.
А, пользователь устанавливается в инициализаторе, поэтому, если вы входите в систему после загрузки сайта, этот код может не выполниться снова. Вы пробовали перезагрузить страницу?
Спасибо, Джей. Я пробовал перезагружать страницу. Я внес множество изменений в URL и т.д. Страница Anon точно загружается. Если я её изменю, она перенаправляет на эту страницу, и в адресной строке браузера также появляется /latest.
Я искал и предполагаю, что другого способа просто перенаправить нет. С сайтами на PHP это было проще. Я всё ещё новичок в Discourse.