原名“Discourse 类别侧边栏”——鉴于该主题组件现已同时支持类别和标签,其名称已更新为 主题列表侧边栏 。
功能
该主题组件选取一个主题,并将其作为类别或标签的主题列表的侧边栏应用。这些侧边栏仅在浏览器宽度为 767px 或更宽时可见(大多数平板电脑和显示器)。
我可以利用此主题组件做什么?
如何配置?
选择您的类别和标签,并添加您希望用于填充侧边栏内容的主题 ID(例如 example.com/t/example-topic/ 57 )
我建议在各自的类别/标签中创建侧边栏主题,关闭该主题以防止回复,并将其取消列出(这样它就不会出现在主题列表中)。
请注意,您不能将私有类别中的主题用作公共类别的侧边栏(技术上可以,但没有权限访问该私有主题的用户只会看到一个空侧边栏!)。
设置
名称
描述
sidebars
添加和删除侧边栏
sidebar side
选择左侧或右侧
inherit parent sidebar
如果勾选,子类别将继承其父类别的侧边栏(除非子类别已分配了自己的侧边栏)。 如果未勾选,子类别仅在指定了侧边栏时才会显示。
stick on scroll
如果勾选,侧边栏在滚动时将保持固定位置
开发者须知
每个类别侧边栏都包裹在一个包含类别 slug 的类中,因此对于 staff 类别,该类为 .category-sidebar-staff。您可以使用这些类来为各个侧边栏设置样式。
带有侧边栏的页面上的 body 标签也会添加一个类,因此您可以使用 body.custom-sidebar 为所有带有侧边栏的页面应用样式。
致谢
特别感谢 @xrav3nz 为此组件的实现奠定了坚实的基础!
由我们托管? 主题组件可在我们的标准版、商业版和企业版计划中使用。
59 个赞
emilio
(emilio)
2019 年3 月 7 日 19:22
12
Trying to figure out how to make this work with tags as well. (we use tags heavily rather than having tons of categories.)
It looks like it may be about replacing controller:navigation/category with whatever the equivalent for tags is but not sure.
2 个赞
我刚快速看了一下,标签确实可以实现这个功能……
我明天可能会继续完善,并将其独立为一个单独的仓库。
没错,这正是核心所在——以下代码对标签似乎有效:
const controller = container.lookup("controller:tags-show");
const tag = controller.get("tag");
更新 :我已经发布了一个主题组件,Discourse Tag Sidebars 。
10 个赞
jrgong
(jrgong)
2019 年3 月 8 日 10:16
14
Since I am using the header submenu plugin, A part of the text is covered by my header bar. It would be great if it was possible to add extra margin/offset or whatever it’s called for the case when additional elements before the header are covering the sidebar’s content.
Also : is there any way to keep the category drop down menu above the sticky sidebar’s content? that would make it easy for users to jump between categories quickly.
altogether I think the category sidebar is a great plugin and has huge potential to add useful information to the forum structure!
AstonJ
(AstonJ)
2020 年3 月 13 日 05:56
27
Kris,又一个很棒的插件,谢谢!
我有几个问题/建议,希望你能帮忙解答……
1 - 是否可以让插件在用户浏览论坛、翻页时,始终检查侧边栏中帖子的最新版本?目前我认为侧边栏的内容只在页面刷新时更新。遗憾的是,那些很少变化的内容会让用户(尤其是活跃用户)觉得过时,所以如果可能的话,我希望频繁更新侧边栏关联的主题。(同样,如果该页面的选项中主题 ID 被更改,它也应该在下一次页面访问时识别到变化。)我完全接受每次页面加载带来的额外开销,但如果你担心其他用户可能不希望这样,或许可以添加一个“缓存帖子内容”的选项,让插件保持现在的行为。
2 - 是否可以让每个侧边栏关联/获取多个主题的内容?例如,在“最新”页面上,你可能希望按顺序显示主题 33 和 55 的内容。这样既能针对不同页面展示不同内容,又能在每个侧边栏底部包含通用的信息或链接,非常实用。
3 - 是否可以将该插件扩展为全站可用?目前我认为它只能用于某些特定页面。理想情况下,我希望在整个论坛的所有主要版块/页面上使用它。(或许你的标签侧边栏插件可以与之配合,实现更精细的控制,例如针对特定标签和/或主题。我认为两者结合可以成为一个非常强大的侧边栏套件!)
4 - 是否可以在添加可配置的折叠/隐藏显示点的同时,也增加侧边栏宽度的选项?这不算大问题,可以通过 CSS 修改实现,但认为在选项中提供该功能会更贴心。
5 - 最后但同样重要的一点……能否让投票功能正常工作?我认为允许用户直接在侧边栏中投票会非常棒!我发现像这样的动态内容能让侧边栏对用户更具吸引力,从而降低他们自动忽略它的可能性。
我认为,如果实现以上所有功能,这个插件将非常有潜力被纳入核心功能或成为官方 DC 插件。在我看来,它能帮助人们在论坛上打造独特的风格,我相信大家会以有趣且富有创意的方式使用它!
你好,
这是一个很棒的组件。是否可以为特定类别下的每个主题设置这样的侧边栏?
谢谢。
访问子类别的语法是什么?我目前尝试过以下方法:
category/subcategory,123
subcategory,123
category-subcategory,123
这些似乎都不起作用。不过,主类别是可以显示的。
1 个赞
Ralf_Stockmann:
引用子类别的语法是什么?
嗯,有人吗?请帮帮忙……给出一个答案应该没那么难吧……
看起来出现了一个回归问题,在某些情况下子分类无法正常工作,其语法应与分类保持一致:subcategory, 123。
我已对主题进行了重构,因此如果您更新主题,子分类将按预期正常工作!
6 个赞
这确实解决了问题:完美!
非常感谢,正好赶上我们的盛大开幕。
1 个赞
很棒的插件!
这个插件是否也支持群组?为群组设置侧边栏将非常有助于提供群组信息。
有人能指引我如何获取群组参数(让组件知道你正处于某个群组中),以便我尝试自己创建一个 PR 吗?
keegan
(Keegan George)
2022 年5 月 20 日 18:26
48
@hyphalos 我创建了一个群组小部件 ,可以添加到布局插件 的侧边栏中。
也许我为它编写的代码可以帮助您编写您的 PR:
The Groups Widget allows each user to see what groups they are in currently.
或者,您也可以使用布局插件和小部件本身。
2 个赞
虽然要求有点大胆,因为它被称为“侧边栏”,但还是想问一下:是否有可能添加一个选项,将内容始终放在主题列表的“上方”,而不是旁边?
我们使用 Discourse 作为社交内联网,对于某些类别,我们需要一个易于维护的区域来放置链接、人员列表等。——这种机制对此会很棒,但侧边栏的空间太小了。
CSS 技巧也欢迎。
我已经尝试过分类横幅,但它们仅限于第一段,所以这不是一个选项。
此致,
Ralf
(柏林州立图书馆)
nathank
(Nathan Kershaw)
2022 年12 月 13 日 23:28
50
关于这个TC呢?
This theme component provides a number of enhancements for the Discourse category header.
The ‘standard’ Discourse category header is displayed at the top of each category page, above the navigation links and list of topics. It is normally only visible if a category logo image has been uploaded in the category settings. The header displays the logo and a short description of the category, taken from the first paragraph of the ‘About the… category’ topic.
This theme component provides the foll…
我认为你仍然会被第一个段落困住。但这可能会被改变。
Heliosurge
(Dan DeMontmorency)
2023 年1 月 23 日 09:42
51
嗨 Kris,这相当不错。
我想知道这是否可以修改,或者是否有一个选项可以将其从侧边栏移到网站标题下方的顶部栏,或者只是移到类别徽标下方?
或者,如果我可以获得有关添加自定义 CSS 来移动它的指导,并且让它在移动设备上显示为顶部,它是否是一个固定的栏? 锚定在主网站栏正下方?
bdfl
(Bryan)
2024 年5 月 14 日 16:30
52
我可能误解了这个主题组件的工作方式,但它是否可以用来将主题列表显示在左侧,点击列表中的某个主题,然后在右侧显示帖子(并保持主题列表固定在左侧)?我不需要看到分类。它看起来会像 Flarum。
1 个赞
不,此组件的作用是获取主题的内容,并使用它来填充特定类别的列表的主题边栏。导航到主题时,它不可见。
大家好!我刚刚对这个组件进行了一次重大更新,它做了几件事:FEATURE: include tag sidebars, migrate to objects setting by awesomerobot · Pull Request #22 · discourse/discourse-topic-list-sidebars · GitHub
现有设置在更新时应自动迁移……除非您的 slug 与类别名称不同,那么您需要手动更新设置。
例如,site-feedback 将正确迁移到 Site Feedback,但没有方法可以迁移与名称不匹配的 slug(例如,Site Feedback 的 slug 是 hamburgers 而不是 site-feedback)。
我可能会更改此主题组件的名称,并弃用标签侧边栏以反映新情况。
5 个赞
mattdm
(Matthew Miller)
2024 年6 月 5 日 14:24
57
这会自动迁移标签设置吗?
有了新的设置,同一个标签在不同的分类中可以有不同的侧边栏吗?冲突如何解决?
2 个赞