Компонент темы заголовков категорий Discourse

Я вижу много сообщений об ошибках в консоли, упоминающих этот компонент.

Уведомление о устаревании: используйте внедрённые siteSettings вместо Discourse.SiteSettings (устарело с версии Discourse 2.8, удаление в Discourse 2.9)

Мы исправили это в другом плагине, изменив Discourse.application.SiteSettings[...] на container.lookup('site-settings:main')[...].

Возможно, это также решит проблемы здесь.

2 лайка

У меня это не работает. Я уже перепробовал все способы: менял конфигурацию отображения категорий, даже вернулся к теме «Default» в Discourse, но всё равно не могу заставить это работать.

2 лайка

Я только что обновился с версии 2.9.0.beta8 до 2.9.0.beta9, и у меня возникла та же проблема. По какой-то причине это просто не работает.

2 лайка

И на GitHub он не обновлялся уже 2 года, @Rhidian, этот компонент больше не поддерживается?

2 лайка

Я посмотрю, как будет время. Обновление происходит только в том случае, если обновление Discourse ломает его. Буду рад получить pull-запросы на GitHub, если у кого-то будет возможность посмотреть до меня.

4 лайка

image

Это сразу бросается в глаза. Пока неясно, почему именно beta9 вызвала эту ошибку.

Сравнивая мои экземпляры, проблем не было в этой версии.

А самая ранняя версия, в которой у меня возникла проблема, — это этот коммит.

Значит, какой-то коммит между 28 июля и 25 августа что-то нарушил.

2 лайка

Я бегло посмотрел на это, чтобы понять, является ли это основной проблемой, вызвавшей сбой.

Похоже, что в компоненте есть некорректный JavaScript. Поскольку раньше это работало, я предполагаю, что наши недавние обновления конфигурации транспиляции Babel для JavaScript темы сделали систему менее терпимой к таким ошибкам.

Я открыл PR для исправления здесь: FIX: Do not access variables before initialization by davidtaylorhq · Pull Request #3 · naidihr/discourse-category-headers · GitHub

И ещё один, который устранит предупреждение Discourse.SiteSettings: Remove use of deprecated and private functions/properties by davidtaylorhq · Pull Request #4 · naidihr/discourse-category-headers · GitHub

5 лайков

Это отлично, Дэвид. Большое спасибо. Я объединил их.

Род и Тристан — теперь проблема решена?

4 лайка

Да, большое спасибо вам и @david. Сейчас я проверяю это с мобильного устройства, позже проверю на ПК, но пока всё работает корректно.

1 лайк

Как в сказке! Спасибо, Ридиан!

2 лайка

Спасибо за этот замечательный компонент!

Есть ли способ добавить заголовок также на разные страницы тегов?

Как настроить так, чтобы баннер отображался только на главной странице и редактировать его могли участники с уровнем доверия 4?

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

1 лайк

Мне очень нравится эта тема, но есть ошибка, которую я не знаю, как исправить, из-за моей неопытности.
Я использую этот компонент для размещения баннеров в подкатегориях, но в тех подкатегориях, где я не использую изображение, появляется некрасивый зазор. Пример:

Привет @Pandabear, я зашёл на твой форум, чтобы посмотреть, не смогу ли помочь, но похоже, что баннер не включён. Возможно, после его включения стоит попробовать следующее:

в файле common-css темы или компонента темы:

.category-parentcategory-subcategory {
  .category-title-contents {
    display: none;
  }
}

parentcategory и subcategory — это соответствующие слоганы категории и подкатегории (нижний регистр, который вы видите в адресной строке браузера). Например, в случае с вашим скриншотом URL выглядит так: https://holaforo.com/c/musica/thalia/, поэтому код будет таким:

.category-musica-thalia {
  .category-title-contents {
    display: none;
  }
}

Спасибо большое, вы очень добры. Я отключил это, потому что не мог найти способ исправить проблему.

Я пока включил это обратно и добавил баннер только в следующую подкатегорию:

В остальных подкатегориях у меня пока нет фотографий, но в некоторых я вообще не планирую добавлять фото, и тогда выглядит некрасиво из-за пустого пространства.

Касательно следующего кода:

.category-parentcategory-subcategory {
  .category-title-contents {
    display: none;
  }
}

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

Я применяю это ко всем категориям и подкатегориям, и так всё работает:

.category-musica-thalia {
  .category-title-contents {
    display: none;
  }
}
.category-musica {
  .category-title-contents {
    display: none;
  }
}
.category-musica-musicapop1 {
  .category-title-contents {
    display: none;
  }
}
.category-musica-musicavariada {
  .category-title-contents {
    display: none;
  }
}

1 лайк

@Pandabear — я не понимаю, почему вы не используете настройку hide category exceptions в этом компоненте темы?

В любом случае, при необходимости вы можете сделать что-то вроде этого, чтобы было проще управлять тем, к каким категориям и подкатегориям применять CSS-код:

$categories: 'musica', 'musica-thalia', 'musica-musicapop1', 'musica-musicavariada';

@each $category in $categories {
    .category-#{$category}  {
      .category-title-contents {
          display: none;
      }
   }
}
1 лайк

Спасибо за всю вашу помощь.
Я справился со всеми категориями с помощью CSS, кроме «soporte».

Категорию «soporte» я установил как скрытую, но всё равно остаётся промежуток.

Привет, я получаю эти предупреждения относительно этого компонента:

[THEME 68 ‘Компонент темы заголовков категорий’] Уведомление об устаревании: контроллер navigation/category больше не существует, и этот временный адаптер в конечном итоге будет удалён. Для получения информации о текущем маршруте обнаружения используйте вместо этого службу обнаружения. [id устаревания: discourse.navigation-category-controller]

2 лайка

Я сделал PR :+1:

4 лайка