Некатегоризированные элементы отображаются на мобильных устройствах

У меня есть сайт, где опция «Разрешить некатегоризированные темы» отключена, но для незарегистрированного пользователя (или для администратора) на Android-устройстве категория «Без категории» всё равно отображается. Я только что выполнил перестроение. Компоненты темы этого не объясняют. Проблема сохраняется в безопасном режиме. Установлены только официальные плагины.

На компьютере я эту проблему не вижу.

https://www.druidforum.org/

1 лайк

Вы очистили все темы из категории «Без категории»?

3 лайка

Да! Это касается только темы «О нас», ничего больше. Мне трудно понять, как это вообще возможно с учётом спецификаций, которые, как я предполагаю, действуют. И это работает только на мобильных устройствах, не на десктопе.

2 лайка

Можете ли вы воспроизвести это, @tshenry? Похоже, что только на мобильных устройствах?

3 лайка

Я не думаю, что мы ожидаем, что тема «О нас» останется в категории «Без категории», когда она отключена. В описании настройки сайта «Разрешить темы без категории» есть предупреждение (выделено курсивом):

ВНИМАНИЕ: Если есть любые темы без категории, вы должны перевыбрать их перед отключением этой опции.

Попробуйте переместить тему «О нас» в активную категорию. На моём тестовом сайте это сработало.

2 лайка

А, понятно. Это помогло.

Это довольно запутанно, ведь обычно запрещено удалять тему «О» (но, полагаю, это не совсем тема «О», поскольку это не категория). Но я удалил её, и теперь «Без категории» больше не отображается. Пришлось делать это с телефона, иначе я бы не смог её найти.

«Без категории» очень запутывает, так как это НЕ категория. Я действительно считаю, что эта опция должна быть отключена по умолчанию.

1 лайк

Нет, потому что я не считаю нужным с самого начала навязывать искусственную классификацию «Живое, Растительное, Минеральное» каждому отдельному объекту в мире. Извините.

Обратите внимание на предупреждение, которое там указано не просто так:

ВНИМАНИЕ: Если есть любые темы без категории, вы должны их переклассифицировать перед отключением этой функции.

Тем не менее, можем ли мы привести это поведение к единому стандарту @zogstrip, чтобы оно было одинаковым на мобильных устройствах и на компьютере?

Да. Я понимаю этот аргумент и раньше с ним соглашался, но считаю, что категория по умолчанию имела бы больше смысла, чем отсутствие категории. Но я постараюсь не предлагать это снова, если только однажды мы не окажемся в одном месте с :beer: .

@nbianca, можешь добавить в свой список задачу по выяснению того, почему категория «Без категории» отображалась на мобильном устройстве, хотя на десктопе её не было?

4 лайка

На десктопе мы отображаем категории и темы отдельно, а на мобильных устройствах — объединённо. Учитывая это, именно эта строка вызывает ошибку:

Условие c.displayable_topics.blank? всегда истинно на десктопе, поскольку темы загружаются отдельно, поэтому displayable_topics всегда пуст. На мобильных устройствах оно истинно только в том случае, если в категории действительно нет тем.

У нас есть два решения:

  • отображать «без категории», если есть хотя бы одна тема, независимо от значения настройки «разрешать темы без категории»

  • скрывать «без категории», даже если есть тема, если настройка «разрешать темы без категории» отключена

Второе решение проще в реализации, так как достаточно просто убрать вторую часть условия.

6 лайков

Я считаю, что скрытие тем из категории «Без категории» (странно) менее запутанно, чем отсутствие скрытия этой категории при включении настройки. Если вы отключите «Без категории», вы сразу заметите, что все эти темы исчезли. Но если при отключении ничего не происходит, то это кажется ошибкой.

2 лайка

Давайте выберем более простой вариант, так как мы близки к релизу, и я не хочу делать ничего слишком рискованного.

2 лайка

Мой голос здесь — «удалить как можно больше специального кода без категории». Чем его больше, тем запутаннее всё становится.

Поэтому я голосую за:

показывать без категории, если есть хотя бы одна тема, независимо от значения настройки «разрешить темы без категории»

При условии, что реализация удалит специальный магический код из Discourse и мы будем иметь меньше крайних случаев.

В общем, выбирайте решение, которое удаляет больше кода из Discourse.

1 лайк

Я отправил исправление для ошибки в первом сообщении:

Я выбрал первое решение, так как оно удаляет часть кода из Discourse. Второе же, наоборот, добавляет код для определения наличия хотя бы одной темы в категории «Без категории».

Я также проверил все использования category.uncategorized? и нашёл несколько мест, которые могут оказаться ненужными, если мы сделаем категорию «Без категории» менее особенной и более похожей на обычную категорию:

Это некоторые части, которые не влияют на другие функции, что делает изменения менее рискованными, но всё ещё непростыми.

6 лайков