Discourse отображает этот нижний колонтитул на основе определённых условий. Добавление футера происходит здесь.
showFooterNav определяется здесь.
Если хотя бы одно из этих условий истинно, навигация будет отображаться.
isiOSPWA() и isAppWebview() определяются здесь.
Например, isAppWebview() выглядит следующим образом.
Вы можете добавить дополнительное условие в вашу тему — на вашем сайте Discourse — для проверки куки, например так:
const isWKWebView = () => {
// проверьте наличие куки и верните true, если она существует
// или используйте любой другой метод для определения, использует ли пользователь ваше приложение
}
Для других классов вы обычно могли бы изменить showFooterNav() следующим образом:
api.modifyClass("controller:application", {
pluginId: "show-footer-nav",
@discourseComputed
showFooterNav() {
// ...
}
});
Однако это контроллер приложения, что означает, что он будет закэширован до того, как ваш код получит возможность выполниться. Другими словами, вы не сможете изменить класс.
Тем не менее, вы всё ещё можете изменить значение showFooterNav с помощью чего-то подобного:
<script type="text/discourse-plugin" version="0.8">
const isWKWebView = () => {
// проверьте и верните ваше условие
};
if (isWKWebView()) {
const applicationController = api.container.lookup("controller:application");
applicationController.set("showFooterNav", true);
}
</script>
на вкладке «Header» вашей темы или в инициализаторе, если вы используете удалённую тему.