Не удалось изменить значок замка в полях категорий

Я использовал Category Icons, чтобы изменить иконку блокировки категории на unlock-alt, что отлично.

Они корректно применяются ко всем категориям и подкатегориям, за исключением category-box-heading. Обратите внимание, что заголовки подкатегорий отображают заменённую иконку без проблем:

.

При проверке блоков я заметил, что текст для category-box-heading не обернут в <span class="category-name">имя категории здесь</span>, и назначенная ему иконка — стандартная (не та, на которую она была изменена).

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

1 лайк

Часть этого находится в ядре, а часть — в компоненте. Эти два PR должны решить проблему после слияния.

4 лайка

Спасибо, Джо — я обновил и Discourse, и компонент, но поведение не изменилось. Этот пример касается подкатегорий, но то же самое касается блоков на странице /c.

При проверке кода я вижу дополнительное оборачивание — оно добавлено корректно, но иконка замка всё ещё неверная:

<svg class="fa d-icon d-icon-lock svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#lock"></use></svg>

На каком коммите находится сайт, на котором вы столкнулись с этой проблемой?

Щёлкните правой кнопкой мыши > просмотреть исходный код страницы > найдите тег Meta Generator.

Он выглядит так:

<meta name="generator" content="Discourse 2.8.0.beta9 - https://github.com/discourse/discourse version 5e534e58973730ad43026455821966a352e8477a">

Можете ли вы поделиться этой информацией здесь?

На betterstreets.nz, но вы не увидите никаких значков блокировки, пока не присоединитесь (что вы, конечно же, можете сделать).

Вот оно:

<meta name="generator" content="Discourse 2.8.0.beta9 - https://github.com/discourse/discourse version 1c9a0fe18e19831277fd1c1be6d28559b3bad108">
1 лайк

Компонент темы не обновлен на вашем сайте. Я вижу следующее.

Сводка
let lockIcon = settings.category_lock_icon || "lock";

categoryTitleLink.default.reopen({
  lockIcon: lockIcon
});

а должно быть

Сводка
let lockIcon = settings.category_lock_icon || "lock";

categoryTitleLink.reopen({
  lockIcon: lockIcon,
});

categoriesBoxes.reopen({
  lockIcon: lockIcon,
});

categoriesBoxesWithTopics.reopen({
  lockIcon: lockIcon,
});

Как здесь

discourse-category-icons/javascripts/discourse/initializers/category-icons.js at main · discourse/discourse-category-icons · GitHub

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

https://github.com/discourse/discourse-category-icons

Также проверьте, не установлено ли несколько копий компонента. Убедитесь, что активная версия актуальна.

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

Источник:

image

Пока не совсем уверен. Просматривая настройки, я вижу, что вы используете это только для значка замка, верно? Можете попробовать удалить компонент и установить его заново?

3 лайка

:partying_face: Ну всё сработало!!! :partying_face:

Спасибо за вашу поддержку, вышедшую далеко за рамки обязанностей, Джо! Вы так настойчиво помогали мне в этом вопросе!

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

3 лайка