公告栏

安装此主题组件

设置

有几个选项可用于设置内容、Cookie 和布局位置:

样式

对于 CSS 样式,组件结构为:

.announcement-bar {
  &__wrapper { }

  &__container { }

  &__content { }

  &__close { }
}
23 个赞

一如既往的精彩,@manuel :clap: :slight_smile:

8 个赞

很棒的组件想法!

是否可以添加设置,以限制公告可见的用户组?

6 个赞

感谢 @kinetiksoft 的建议!但我更倾向于让共享组件不包含群组功能 :smile: 。原因是我过去的经验表明,实际用例通常比仅仅选择一个群组要具体得多。你可能还需要区分匿名访问者。或者向不同的群组显示不同的内容。这样一来,就会增加复杂性。

我通常会 fork 组件,或者仅使用 CSS 实现不同的布局选项。所以恐怕我的建议也是如此。

关于使用 CSS 定位群组,Discourse 在 body 中添加群组 CSS 类 是一个很好的辅助组件。

2 个赞

2 篇帖子已拆分到新主题:安装主题按钮在 Ember 5 下不起作用

您好
安装并启用后,我遇到了以下错误:

我认为这个控制台错误可能相关:

我是否遗漏了什么?谢谢。

2 个赞

您使用的 Discourse 版本似乎不支持 .gjs 文件格式。

我认为这是在 v3.2.0.beta3 (2023 年 7 月 – 特别是此 提交 中引入的)

不幸的是,除非有人制作一个不使用 .gjs 文件的版本,否则您可以升级 Discourse 或卸载该组件。

4 个赞

我们使用的是 3.1 版本,所以这应该说得通。

希望 Events 能尽快升级以支持 3.2,届时我们将切换过去。

谢谢

4 个赞

抱歉造成混淆 @martyn_thomas,也感谢 @Arkshine 的解释!我已经更新了 about 文件,将其设置为 "minimum_discourse_version": "3.2.0.beta3"

6 个赞

您好,

我可能是错的,但我认为当有人忽略公告时(管理员应该可以选择删除此公告),它会在桌面视图或移动视图中为其他所有人单独删除。

我只知道这一点,因为我关闭并重新打开它进行测试,然后让它运行。我没有将其划掉,现在它消失了?

我不完全明白您指的是什么。您能否再说一遍您在管理员后台做了什么,以及用户看到了什么结果?还有是针对哪些用户?

我指的是这个主题组件。

我的论坛上有这个,但当我没有将其划掉时,它就会消失,因为您有一个选项可以选择显示或不显示它,就像最终用户一样。

我禁用了它,然后又重新启用了它,看看是不是一个问题,但我认为当有人忽略主题组件时,它会为其他人移除它。首先,我在桌面视图上注意到它,然后是移动视图。

1 个赞

不应该。忽略全局横幅或置顶主题应该只对当前登录的用户有效。而不是对所有用户。

1 个赞

禁用该组件会将其移除。

现在,如果您关闭了当前横幅,然后禁用并重新启用该组件。除非进行更改,否则它不会再次出现,或者我记得您可能需要清除 cookie。

嗯……我做过这个了。我还冒充了一个很久没登录的人,也看不到公告栏。

@Aaron_Walsh 我能复现的问题:

  • 无论是作为用户还是匿名访客,都可以关闭公告栏
  • 在同一浏览器中注销或切换到另一个用户账户
  • 公告栏将不会在同一浏览器中显示

因此,我认为这是一个缓存问题。显然,cookie的实现方式对用户账户不敏感,但对浏览器历史记录敏感。我从另一个组件复制了cookie代码,并且我对cookie的详细工作原理不太了解。如果确实可行并且有人有代码,我很乐意更改代码。否则,我不太关心这个问题。我看到的是,它只影响同一浏览器,并且公告栏不会在其他用户的各自会话中被关闭。

3 个赞

我可以确认。已加载横幅。已使用我的管理员帐户将其关闭。

使用不同的用户登录匿名浏览器。

未登录时显示横幅。登录测试用户时显示横幅。关闭横幅并注销再登录,则不显示横幅。关闭隐身 Chrome 浏览器并打开新的浏览器。公告横幅又回来了。

因此,这绝对是 cookie/浏览器缓存相关的问题。

1 个赞

Impersonate 不会清除您的浏览器 Cookie。

是的,我知道。事实上,我用 Chrome 清除了 Cookie 数据以确保万无一失。

冒充只是一个测试,看看他们是否在他们的账户中显示了这一点。

1 个赞