Сначала подкатегории в селекторе категорий Composer

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

Возможно ли изменить способ отображения категорий в селекторе категорий так, чтобы подкатегория и категория поменялись местами (при этом подкатегория шла первой)?

Например: пользователь хочет создать тему о «Управлении». В идеале выпадающий список категорий должен показывать «Управление — Администрирование» (при этом список отсортирован по подкатегориям).

А после выбора это отображалось бы в конструкторе как «Управление — Администрирование».

Спасибо

Быстрое решение на CSS может быть следующим. Добавьте его в CSS вашей темы или компонента.
Это меняет порядок «категория → подкатегория» на «подкатегория → категория»:

// Меняет порядок с «категория → подкатегория» на «подкатегория → категория»
.select-kit .select-kit-row.category-row .category-status,
#reply-control .category-input .category-chooser .selected-name .name {
    flex-direction: row-reverse;
}

// Скрывает родительскую категорию при выборе подкатегории
#reply-control .category-input .category-chooser .selected-name .name {
    & > .badge-category__wrapper:first-child {
        display: none;
    }

    & > .badge-category__wrapper:last-child {
        display: unset;
    }
}

Вы — волшебник, большое спасибо!

Есть ли способ заставить Composer при выборе в выпадающем списке приоритетно отображать название подкатегории вместо категории или, что ещё лучше, показывать только подкатегорию (при этом категории «trail» будут появляться только в выпадающем списке)?

После некоторых проб и ошибок я думаю, что добиваюсь прогресса с:

span.name .badge-wrapper:first-child {
    display: none;
}

Однако это не работает, если опция имеет только категорию и нет подкатегории (в этом случае категория должна быть показана) — продолжу экспериментировать.

Что не так с предложением Arkshine?

@martyn_thomas Я обновил свой пост выше. Вы на правильном пути. Не хватает одного правила для восстановления display, когда нет подкатегории. (В основном, решение состоит в том, чтобы всегда скрывать первый элемент и сбрасывать второй)

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

Первая часть работает (меняет местами подкатегорию и категорию), но вторая — нет :frowning:

Попробую разобраться в выходные. Спасибо за помощь — я должен тебе рождественское пиво.

Не уверен. Как видно на скриншоте, у меня всё работает. :thinking:
Также вот видео с моего тестового форума:

У меня тоже работает (и делает места более упорядоченными и логичными, так как нас интересует одна категория, а не путь к ней — родительская категория здесь не важна).

Спасибо вам обоим.

Решено:

В 3.1 это

#reply-control .category-input .category-chooser .selected-name .name {
    & > .badge-wrapper:first-child {
        display: none;
    }

    & > .badge-wrapper:last-child {
        display: unset;
    }
}

Спасибо всем за помощь!

Привет! Я думаю, что если у вас не слишком много категорий без подкатегорий, можно использовать условие.

Например: если категория не cat1 и не cat2, то используйте ваш код для скрытия основной категории в редакторе.

Если же нужно наоборот — измените условие на catX, catY, и примените ваш код.

В каком месте при создании компонента нужно разместить это условие?