Привет, сообщество ![]()
Не знает ли кто-нибудь, есть ли возможность изменить названия выпадающих списков внутри конкретной категории?
Я бы хотел настроить части «все» и «все теги»:
Но это не изменится только для определенных категорий.
Я начал работать над очень хакерским CSS-решением, оно не идеально… И я немного не хочу делиться чем-то таким хакерским. ![]()
Понял, спасибо за помощь! @merefield @Canapin
Ой, извините, пробежался по тексту!
Да, они глобальные.
Давай, давай ![]()
Мне кажется, это излишне усложнено, особенно когда подкатегории не определены как таковые в HTML-коде… У меня есть что-то наполовину рабочее, но, думаю, это нужно сделать правильно, и в этом может помочь Discourse JS API. К сожалению, я мало знаю о нём.
Привет ![]()
Я создал компонент темы, чтобы реализовать это…
Он содержит два параметра для удобства.
Название категории
Первое поле: slug категории
Второе поле: заголовок выпадающего списка категории
Название тега
Первое поле: slug категории
Второе поле: заголовок выпадающего списка тега
Это будет выглядеть так.
Добавление заголовка подкатегории
Надеюсь, это поможет ![]()
Редактирование: Я исправил ширину выпадающего списка, чтобы она корректно выравнивалась по ширине пользовательского текста. UX: fix the dropdown width to keep the custom content width · VaperinaDEV/category-breadcrumb-dropdown-title@faca71c · GitHub
Вау, отличная работа, @Don — ты меня поражаешь
![]()
Слушайте все!
![]()
Из глубин тайн SCSS и сложностей фронтенд-алхимии восстал сэр Дон. Покоряя функции, овладевая циклами и расшифровывая списки, мы с гордостью вручаем ему почётную Медаль за выдающиеся достижения во фронтенде ![]()
.
И ваш компонент работает без единой строки JS…

Скажи, пожалуйста, GPT4bot помог тебе это написать ![]()
100% да, боюсь.
Отлично, это решение впечатляет, но ты можешь сделать это, @Don:
api
.modifySelectKit("category-drop")
.replaceContent((component, content) => {
let newContent = [];
content.forEach((item) => {
if (
component.category?.slug === "general" &&
item.id === "all-categories"
) {
item.name = "jojo";
}
newContent.push(item);
});
return newContent;
});
https://github.com/discourse/discourse/blob/main/app/assets/javascripts/select-kit/addon/mixins/plugin-api.js содержит список всех доступных действий:
Дай знать, если возникнут трудности с использованием. Вероятно, это стоит лучше документировать, но я на связи, если у тебя появятся вопросы.
@Don @j.jaffeux вы просто потрясающие, ребята!! ![]()