В настоящее время, чтобы изменить главную страницу вашего сайта Discourse, вам необходимо настроить параметр сайта top menu и указать желаемую главную страницу в качестве первого элемента в списке. Это поведение может быть неочевидным для новых администраторов.
Сегодня мы вносим изменение, которое добавляет новый параметр сайта default homepage, чтобы сделать этот процесс более понятным и простым.
Существующим сайтам не потребуется выполнять никаких действий, так как значение по умолчанию для этого нового параметра — first item in top menu, что соответствует функциональности, которая у нас всегда была. Те же самые варианты присутствуют и в новом параметре. Если вы выберете главную страницу, доступную только для авторизованных пользователей, например new, мы всё равно будем использовать в качестве резервной первый элемент top menu, доступный для анонимных посетителей.
Одним из изменений, которые открывает этот новый параметр, является возможность иметь главную страницу, которой нет в верхнем меню. Так, например, вы можете установить categories в качестве главной страницы и удалить этот пункт из параметра top menu, поскольку ссылка на все категории также доступна в боковой панели.
Поскольку мы собираемся внедрить новую домашнюю страницу через outlet custom-homepage, мне интересно, будет ли эта новая настройка учитывать пользовательскую домашнюю страницу, когда плагин или компонент темы её добавляет. Я планировал обновить пользовательские настройки, сбрасывая параметр домашней страницы к значению по умолчанию -1.
Итак, продолжая эту тему, обновит ли эта новая настройка также варианты в параметре домашней страницы пользовательских настроек?
И наконец, если домашняя страница по умолчанию установлена на первый элемент в верхнем меню, и через api.addNavigationBarItem() добавлена пользовательская ссылка, которая размещается первым элементом, будет ли она действительно считаться первым элементом?
Нет, это по-прежнему работает так же. Модификатор темы для пользовательских домашних страниц полностью переопределяет настройку сайта. Навигация по этому вопросу немного усложняется, потому что если на сайте доступно несколько тем, и одна из них не имеет пользовательской домашней страницы, нам придётся управлять резервными вариантами. Над этим нам ещё предстоит подумать.
Пока что нет… параметры по-прежнему те же, что и в верхнем меню, но одно изменение уже произошло: теперь в пользовательских предпочтениях всегда будет доступен вариант default (ранее он был условным). Вариант “По умолчанию” в пользовательских предпочтениях будет следовать за настройкой сайта.
И здесь тоже пока что “нет” — помимо пользовательской домашней страницы в теме, домашняя страница сайта Discourse по-прежнему имеет различные требования к тому, чтобы быть страницей списка тем (или /categories), а у api.addNavigationBarItem() требования гораздо менее строгие.
Спасибо, Крис. Я очень заинтересован в этом и с любопытством наблюдаю за его развитием.
Могу поделиться одним наблюдением: когда компонент темы вводит пользовательскую домашнюю страницу, пользователи с настроенной персонализированной домашней страницей никогда её не увидят.
В отличие от элементов верхнего меню, для пользовательской домашней страницы нет пути, по которому я мог бы создать для неё пользовательский элемент меню.
Именно по этой причине, хотя это и кажется крайностью, я планировал сбросить пользовательские настройки до значения по умолчанию -1. Насколько я понимаю, это будет мой единственный вариант, чтобы все пользователи увидели новую домашнюю страницу. После этого они всё ещё смогут настроить её в своих личных параметрах.
Я хотел бы, чтобы анонимные пользователи попадали на пользовательскую домашнюю страницу, а авторизованные — на страницу с последними сообщениями. Или хотя бы была такая возможность.
Это нужно для того, чтобы Discourse мог показывать единую главную/посадочную страницу, адаптированную для случайных посетителей, при этом наши обычные пользователи могли без лишних сложностей попадать в полноценный форум.
Обычно этого добиваются, размещая отдельный сайт и Discourse на поддомене, но это создаёт значительные дополнительные затраты на администрирование и обслуживание. Я хочу упростить процесс и разместить всё в одной установке.
Возможно ли это с помощью новой настройки в данный момент?
да, это интересный случай, но на данный момент это невозможно с помощью настроек сайта
в голову приходят несколько альтернатив:
создать пользовательскую главную страницу для обоих вариантов и разветвлять логику в зависимости от проверки пользователя (очевидно, это потребует немного больше обслуживания, чем использование готового решения)
пользовательский интерфейс настройки «страница по умолчанию» будет переопределять главную страницу пользовательской темы, поэтому небольшая кастомизация для использования этого может сработать… что-то вроде
Я немного неохотно отношусь к тому, чтобы лишить пользователей возможности выбирать свою домашнюю страницу. Но с другой стороны, мало кто этим на самом деле пользуется.