Похоже, это больше не работает после устаревания Discourse.NavItem, и кто-то упомянул в этом посте, что кастомные ссылки верхней навигации могут решить проблему:
Однако этот компонент не создает динамические ссылки, где URL проверяется в зависимости от текущего местоположения.
В моем случае я хочу устанавливать разные ссылки для главной страницы и подкатегорий, например, чтобы отображать элемент навигации с фильтром тегов «не завершено/завершено» в зависимости от текущей категории. Раньше я мог использовать код ниже, но теперь он не работает:
<script>
Discourse.ExternalNavItem = Discourse.NavItem.extend({
href : function() {
return this.get('href');
}.property('href')
});
I18n.translations.en.js.filters.unfinished = { title: "tbc", help: "placeholder" };
I18n.translations.en.js.filters.finished = { title: "finished", help: "placeholder" };
Discourse.NavItem.reopenClass({
buildList : function(category, args) {
var list = this._super(category, args);
var url = category ? category.url : "";
// Главное меню и две конкретные категории будут иметь эти два элемента навигации с разными URL
if(!category || (category && url && (url.includes("mix") || url.includes("other")))) {
var tbc_url = category ? "/tags" + url + "/tbc" : "/tags/tbc";
var finish_url = category ? "/tags" + url + "/finished" : "/tags/finished";
list.push(Discourse.ExternalNavItem.create({href: tbc_url, name: 'tbc'}));
list.push(Discourse.ExternalNavItem.create({href: finish_url, name: 'finish'}));
}
return list;
}
});
</script>
Может ли кто-нибудь помочь обновить этот код с учетом текущего компонента navigation-item? Или более общий вопрос: как найти текущее использование замены Discourse.NavItem?
Спасибо!