Я до сих пор не уверен, почему ранее убрал поддержку страниц по умолчанию и для анонимных пользователей. Я вернул их обратно.
Теперь, если существует 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 содержит значение.