Возможно ли добавить дополнительные столбцы в списки пользователей в группах? У меня есть плагин, в который я пытаюсь добавить функционал: столбец в списке пользователей групп, показывающий, активен ли пользователь, приостановлен, заглушен или деактивирован. Похоже, что мне нужно работать с шаблоном Handlebars group-index и контроллером group-index, но там нет точки расширения для плагинов. Поэтому я спрашиваю, какой правильный способ добавить новый столбец, если это вообще возможно. Я новичок в разработке для Discourse, возможно, я что-то упускаю, но буду очень благодарен за любые советы. Я прочитал эти руководства по разработке — отличные ресурсы, но сейчас я застрял.
Привет, добро пожаловать в Meta ![]()
Вы можете использовать выходы group-index-table-header-after-username и group-index-table-row-after-username, чтобы вставить заголовок или строку рядом с колонкой имени пользователя.
Например:
Для заголовка можно использовать компонент TableHeaderToggle.
Для строки, например, можно использовать <div class="directory-table__cell directory-table__cell--status">{{this.args.member}}</div> — данные можно получить через {{this.args.member}}.
Вам также потребуется скорректировать CSS для сетки, чтобы добавить новую колонку.
.group-members--can-manage {
grid-template-columns: 3fr repeat(5, minmax(min-content, 1fr)) 3em;
^
}
Если вы хотите переместить колонку, позиционирование может быть немного сложным из-за display: contents; однако использование свойства order может помочь.
Кстати, у вас могут возникнуть проблемы с получением статуса пользователя. В моих тестах данные не отображались в member, если пользователь был отстранён или замолчан (silencedTillDate или suspendedTillDate не определены). Не уверен, есть ли здесь ошибка. Пока я не углублялся в это дальше!
Надеюсь, это поможет.
Отлично, спасибо! Это очень помогает. Я только сейчас понял, что не видел выходы group-index-table-header-after-username и group-index-table-row-after-username, потому что сайт использует устаревшую версию Discourse (2.7).
Пожалуйста! 2.7! Действительно, довольно старая версия. ![]()
Кстати, я настоятельно рекомендую вам использовать этот компонент: (deprecated) Plugin outlet locations theme component. Очень полезно! ![]()
