侧边栏的消息部分

:information_source: 摘要 向侧边栏添加个人和群组消息收件箱链接,包括未读消息指示器
:eyeglasses: 预览 Theme Creator
:hammer_and_wrench: 代码仓库 GitHub - moin-Jana/sidebar-messages-section: Adds personal and group message inbox links to the sidebar, including unread message indicators.
:question: 安装指南 如何安装主题或主题组件
:open_book: Discourse 主题新手? Discourse 主题使用入门指南

安装此主题组件

该组件向侧边栏添加了一个 消息 (Messages) 部分,其中包含指向个人收件箱的链接——包括用户的个人收件箱以及他们有权访问的任何群组收件箱。该部分还在标题旁边包含一个撰写新个人消息的按钮。

个人收件箱

默认情况下,该组件为所有用户添加一个指向个人收件箱的链接。通过 show_personal_inbox 设置,管理员还可以根据 Personal message enabled groups 站点设置,完全隐藏它或仅向被允许创建私信的用户显示它。这反映了个人收件箱链接在通知菜单、用户个人资料和侧边栏的“社区 (Community)”部分中的显示方式。

:bulb: 为避免指向个人收件箱的重复链接,您可能希望删除侧边栏第一部分的“消息”链接。您可以通过打开 更多 (More) 菜单并选择 自定义此部分 (Customize this section),然后从该部分中删除“消息”链接来实现。

群组收件箱

所有包含至少一条消息且用户是其成员的群组收件箱将自动显示在用户的侧边栏中。管理员可以使用 hide_group_inboxes 设置隐藏特定的群组收件箱,这在群组收件箱不再被积极使用时非常有用。

未读指示器

每个收件箱链接根据用户对“显示新项目计数”的偏好显示当前消息状态:圆点数字计数。大于 100 的值显示为 99+

13 个赞

干得漂亮,Moin!:clap: :tada:

3 个赞

小建议:也许 javascripts/discourse/api-initializers/group-inboxes-in-sidebar.gjs 应该是一个 JS 文件而不是 GJS?

很棒的组件!


我花了最后 10 分钟浏览代码并检查核心类,我必须说 Discourse 的构建是多么出色(并且仍然是),以至于一切都如此契合。

2 个赞

是的,该 API 提供了几乎所有您需要的功能,使该部分的外观和工作方式与其他所有部分相同。聊天功能也使用了它,这可能影响了开发。这些功能是同时开发的。
不幸的是,显示核心部分中未读主题数量的 get badgeText() 不受支持,所以我不得不对这些数字做一些巧妙的处理。

4 个赞

我没有找到相关的管理员设置,所以在此发布一个通过 CSS 隐藏它的方法:

.sidebar-section-link[data-link-name="my-messages"] {
    display: none;
}
1 个赞

您为什么更喜欢使用 CSS 隐藏链接,而不是使用管理员自定义侧边栏的现有选项?使用 CSS 隐藏似乎比使用内置的 Discourse 选项更容易出错。

2 个赞

Derp,你说得对。我把它想得太复杂了,以为它会在管理员控制台和/或核心功能中是一个设置。

1 个赞

不只你一个人在那边看。:joy:


这是一个很棒的组件!

1 个赞

我扩展了该注释:

2 个赞

是的,你说了。但是作为管理员,我们通常习惯于通过管理面板进行操作 :wink:。因此,在快速浏览说明时,我们可能会忽略一些细节。

即使是核心更新,我也确信我们中的许多人并不总是会仔细阅读所有细节,直到我们使用的某些东西被移到了另一个区域。

很久很久以前,以安卓为例,我记得姜饼(Gingerbread)以前有导航(Nav)和地图(Maps)。在一次更新中,它们与地图合并后,我花了大约 10 分钟寻找导航。:joy: