Category Icons

Да, я думаю, что лучший вариант — всегда указывать правильный префикс. Плагин FontAwesome Pro заменяет только основные иконки на выбранный вами стиль. Список преобразованных иконок доступен в этом файле:

comments отсутствует в этом списке, поэтому по умолчанию используется основная иконка.

4 лайка

Я создал компонент темы, чтобы добавить иконки в календарь плагина Events.

Он использует виджет category-icon, который не отображает иконки для подкатегорий. Мне пришлось добавить «режим принудительного отображения» следующим образом:

  api.createWidget("category-icon", {
    tagName: "div.category-icon-widget",
    html(attrs) {
      let iconItem = getIconItem(attrs.category.slug);
      let force_display = ('force_display' in attrs);
      if(iconItem && (!attrs.category.parent_category_id || force_display)) {
        let itemColor = iconItem[2] ? `color: ${iconItem[2]}` : "";
        let itemIcon = iconItem[1] != '' ? iconNode(iconItem[1]) : "";
        return h("span.category-icon", { "style": itemColor }, itemIcon);
      }
    }
  });

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

Заранее спасибо.

2 лайка

Привет, Penar, этот компонент вызывает странную проблему со сортировкой в категориях. Вот шаги для воспроизведения:

  1. Установите сортировку категории по “Создано” > По убыванию — категория будет отображать сортировку корректно.
  2. Перейдите в тему в этой категории.
  3. Нажмите на хлебные крошки, чтобы вернуться в категорию.
  4. Теперь категория сортируется по последним, а не по дате создания. Вы можете обновить страницу, чтобы вернуть правильную сортировку.

Мне потребовалось немало усилий, чтобы выявить этот TC как проблему — очень странно!

Вот запись этого процесса:

Тема 1 была создана первой, но имеет ответ.
Тема 2 была создана второй и не имеет ответа.

При сортировке по Created Тема 2 должна быть вверху списка, что изначально и происходит корректно, пока вы не перейдёте в тему и не нажмёте на хлебные крошки — после этого вверху списка оказывается Тема 1.

2 лайка

Спасибо за подробный отчет, @davidkingham. Очень хитрый баг, я опубликовал исправление.

2 лайка

После сегодняшнего обновления мне пришлось отключить это — всё ломает мою стартовую страницу и категории. Я бы выложил скриншот, но на форуме ограничение 21+, поэтому, @pmusaraj, я отправлю тебе скриншот в личные сообщения.

2 лайка

Спасибо за отчет, @zooy0rk, эта проблема также исправлена.

5 лайков

Новое обновление, похоже, ломает весь UI моего сайта

2 лайка

Есть ли у вас ошибки в консоли? Какую версию Discourse вы используете?

1 лайк

Хорошо, я обновился до последней версии 2.6.0.beta1, и это, похоже, решило проблему

4 лайка

Надеюсь, смогу получить помощь по возникшей у меня проблеме… Я пытаюсь использовать компонент темы, чтобы просто заменить значок замка категории на звезду, но результаты получаются неоднозначными.

Значок меняется в списке последних тем:

И в выпадающем списке категорий:

Но значок рядом с категорией на главной странице списка категорий (/categories) не меняется, там всё ещё замок:

Не упускаю ли я что-то? Чувствую, что здесь что-то упускаю…

Вот настройки темы:

Любая помощь в разгадке того, почему значок замка остаётся, будет очень кстати! Спасибо!

3 лайка

Попробуйте использовать far-star в качестве имени иконки вместо простого “star”.
“far” используется для обычных иконок, а “fab” — для иконок брендов.

Это ограничение компонента, он не интегрируется со страницами /categories. Я изучу возможность исправления этого; скорее всего, для начала потребуется изменение в ядре.

3 лайка

Если вы хотите изменить все значки замка на звезду, вы можете создать новый компонент темы и добавить это в секцию Header:

<script type="text/discourse-plugin" version="0.8">
      api.replaceIcon('lock', 'star');
</script>
4 лайка

Спасибо, @davidkingham, это великолепно! Я подумал об этом и готов заменить все замки на звёзды. Твой код работает отлично. Большое спасибо :clap:

3 лайка

Для справки: ядро и этот компонент также были обновлены, и теперь компонент обновляет значок замка на страницах /categories.

5 лайков

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

Пожалуйста, рассмотрите также исправление для отображения иконок подкатегорий, как описано в Category Icons - #50 by md-misko

3 лайка

@ScammerRevolts @zooy0rk Ха-ха, у меня была такая же проблема. Очень рад, что всё обошлось без серьёзных последствий — никогда бы не догадался, что причина именно в этом, так как во время восстановления у меня возникали и другие ошибки, связанные с PostgreSQL. :sweat_smile: Я уже готовил новый экземпляр для восстановления из резервной копии. Всё отлично, как только этот компонент был обновлён; насколько я помню, он отставал примерно на 4 ревизии.

Режим безопасного запуска действительно помог сузить круг поиска проблемы: Using Safe Mode to troubleshoot issues with themes and plugins

2 лайка

Теперь это объединено, @md-misko, спасибо за PR!

Я также добавил небольшое исправление в ядро, чтобы отображать эти иконки в макете «Коробки с подкатегориями» для /categories.

2 лайка

Я вижу иконки подкатегорий, когда «Стиль списка подкатегорий» установлен в «Коробки с избранными темами», но не вижу их, когда установлено только «Коробки»?

1 лайк

Верно, исправление для этого уже в ядре, поэтому вам нужно пересобрать ваш сайт.

3 лайка