Обзор
Компонент темы, позволяющий размещать компоненты[1] в верхней и боковых панелях.
- Укажите набор «виджетов» отдельно для маршрута и позиции.
- Поддерживает настройки для каждого из: discovery[2], topic, tag[3], category[3:1], categories[3:2] или tags-intersection[4].
- «Панели» могут быть: верхняя, левая, правая или альтернативное правое расположение.
- Каждая панель может быть свернута или закрыта (обновите браузер, чтобы сбросить закрытие). По умолчанию они могут быть свернуты.
- Обрабатывает официальную боковую панель, но если вы планируете использовать левую боковую панель Bars, рекомендуется режим раскрывающегося списка официальной боковой панели.
- В комплекте идут существующие примеры настроек, показывающие некоторые большие буквы: частично для демонстрации, частично чтобы вы могли увидеть примеры настроек. Удалите их и замените собственными именами компонентов.
- Поставляется с одним компонентом:
bars-custom-html(см. предварительно заполненные примеры настроек), но совместимы компоненты из многих существующих компонентов темы и плагинов. - Поддержка мобильных устройств еще не реализована.
Быстрые ссылки
https://github.com/merefield/discourse-tc-bars |
|
| GitHub - merefield/discourse-tc-bars: A Theme Component that allows you to lay out Components ("widgets") on top and side bars · GitHub | |
| Installing a theme or theme component |
Нравится этот компонент темы? Пожалуйста, поставьте ему
на GitHub! ![]()
Бесплатный пример:
При первой загрузке:
Некоторые важные моменты, которые следует учитывать в этом TC!
-
Этот компонент темы в основном предназначен для разработчиков и администраторов, которые имеют некоторое техническое понимание разработки тем. Если вы не обладаете достаточными техническими знаниями и вам нужна помощь в реализации боковых панелей с помощью Bars, вы можете нанять меня или разработчика в Marketplace.
-
Этот компонент темы предназначен для предоставления структуры поддержки боковых панелей. Он не и не предназначен для обеспечения окончательного визуального оформления, которое вам нужно будет добавить в своей теме с помощью дополнительного CSS. Однако он выполняет за вас много работы, избавляет от необходимости думать о многих вещах и даже может дать вам возможности, которых у вас раньше не было …

Особенности компонентов
-
Вы должны указать имя компонента. Имя компонента фактически совпадает с именем файла в каталоге
componentтемы, TC или плагина без суффикса.- Имя компонента — это не имя компонента темы (который может содержать множество компонентов Ember Glimmer), а имя фактического файла компонента Ember
, например:
то есть
layouts-tag-list - Имя компонента — это не имя компонента темы (который может содержать множество компонентов Ember Glimmer), а имя фактического файла компонента Ember
-
Они могут быть из существующего компонента темы или плагина. Существующие компоненты могут работать. Примеры:
- 🏷️ Bars Tag List Component
- Render a component within a Widget. (Using select-kit components within plugin code) - #31 by merefield
- Discourse AI Topic Summary 🤖 … и возможно даже:
- Виджет таблицы лидеров: https://github.com/discourse/discourse-gamification/blob/main/assets/javascripts/discourse/components/minimal-gamification-leaderboard.js (сообщите мне, если попробуете ниже!)
-
Для создания компонентов требуется определенный уровень expertise.
- Но попробуйте создать свой собственный компонент в другом компоненте темы и убедитесь, что оба активны в одной теме.
-
Компоненты должны получать свои собственные данные (к сожалению, они не могут использовать передачу моделей через плагины из-за необходимости использования конкретных плагинов для такой компоновки).
- Из коробки вы можете использовать только существующие данные JSON API, например, из ядра Discourse или предоставленные существующим плагином. Если вам нужны собственные данные, которые нельзя получить из текущих API, вы можете нанять меня или кого-то в Marketplace для помощи.
-
Возможно, вам потребуется стилизовать границы боковой панели и компонента по своему вкусу. (снова, если нужна помощь, рассмотрите возможность найма разработчика).
- Стратегическое использование теней и рамок может сделать внешний вид очень привлекательным — будьте артистичны!
Зачем
-
С обновлением ядра Discourse до Ember 5 трюк, который использовал Плагин Layouts от Pavilion для отличного способа манипуляции макетом Discourse, перестал работать. Теперь не было простого способа показать боковую панель на маршруте темы через относительно простой интерфейс конечного пользователя.
-
Кроме того, Ember представил компоненты Glimmer, с которыми гораздо приятнее работать. (Layouts использовал API виджетов, который устарел в пользу компонентов Glimmer).
-
Наконец, команда ядра Discourse предоставила новый редактор JSON для настроек компонентов темы, что сделало развертывание более сложных настроек возможным

-
Вместо того чтобы исправлять плагин Layouts (TC не существовали во времена Layouts), имело смысл переделать его как компонент темы, потому что мы можем реализовать большинство необходимых нам вещей только на фронтенде.
-
Встречайте «Bars»
За здоровье!!
Известные проблемы
- Верхняя панель не фиксируется (я могу удалить соответствующую настройку, если не смогу решить проблему).
Благодарности
- Духовный преемник теперь неработающего Плагина Layouts, созданного @angus (спасибо!), который служил нам верой и правдой многие годы.
- Использует систему параметров из Правых боковых блоков (спасибо @pmusaraj!)
Термин «discovery» (маршрут) относится к основным страницам списка тем (например, «Последние», «Новые»), которые позволяют просматривать доступные темы перед тем, как перейти к конкретной. ↩︎
Технически это тоже маршрут «discovery», но мы разделяем их на отдельные имена, чтобы вы могли при желании обрабатывать их по-разному. ↩︎
См. здесь для получения более подробной информации. Чтобы это оставалось опциональным (не все установщики Bars захотят создать собственную домашнюю страницу), Bars не добавляет необходимый модификатор в
about.json, поэтому вы должны добавить его в родительскую тему или другой TC для активации. ↩︎ ↩︎ ↩︎








