被忽略用户创建的主题显示在主页上

你好,如果我的操作有误或发错了版块,请见谅——这是我的第一篇帖子。我是使用该软件的一个网站的版主,我注意到当我选择“忽略”某位用户时,他们的帖子仍然会出现在我的动态中,例如在首页上。但当我点击这些帖子时,实际内容会显示为“已忽略的内容”。能否修复这个问题,让被忽略用户的帖子完全从大家的动态中过滤掉?

10 个赞

我相当确定这是目前的设计,@david 可以确认。

我想我们应该修改一下,让被忽略用户的主题不会出现在“最新”列表中。

7 个赞

没错,目前屏蔽用户仅会隐藏帖子内容,而不会隐藏整个话题。

我们或许可以将其扩展到屏蔽用户创建的话题,但这意味着你将错过该话题中所有“未被屏蔽”用户的回复……

8 个赞

@sam @david 刚刚读完这篇帖子,让我想到了一件事。

是否可以将被静音/忽略用户的帖子从讨论串中提取出来,放入一个类似 TL3 风格的类别中,并设置一个特定的 TLX 标志,只有被屏蔽/忽略的用户才能看到?

我最近作为用户晋升到了 TL3,看到这个几乎不被使用的“隐形”类别觉得很有趣。将其改造成一种“超时/冷静室”或许可行。

这只是我的一点想法。

嘿,你后来有再考虑一下吗?这个问题在我们网站上仍然存在。

目前暂无此计划。

好的!我最后终于找到了解决办法 (:

@BeBe,你找到了什么变通方法?

我有一个用户,他创建的主题可以显示在其他人的帖子里,但我希望隐藏他创建的主题

他的主题总是围绕着相同(无聊)的主题。:wink:

有一个 CSS 方法可以隐藏用户在帖子中的帖子:

但不幸的是,主题列表不包含创建者的用户 ID,因此没有办法隐藏用户创建的主题。

我们以用户名 abc ID 123 为例。

我查看了源代码,看看是否可以通过用户 CSS 来实现。

主题标签目前是这样的:

<tr data-topic-id="123" id="ember123" class="topic-list-item … ember-view">

在其中,我当然可以查询发帖人单元格,但这需要 JavaScript,因为我想隐藏它的父级

tr > td.posters > a:first-child[data-user-card='abc']

现在,如果我们在主题 tr 上有额外的属性 data-op-user-id="123"

<tr data-topic-id="123" id="ember123" data-op-user-id="123" class="topic-list-item … ember-view">

我们就可以使用简单的用户 CSS 来根据用户 ID 进行筛选,如果我们不想看到他们的主题:

tr.topic-list-item[data-op-user-id='123']

是否有可能在主题条目 tr.topic-list-item 标签上添加一个新的 data-op-user-id 属性?


仅在桌面模式下有效,请参见底部。


对于任何可能感兴趣的人,我为 community.metabrainz.org 编写了一个小型用户脚本
我首先按照建议使用了 MutationObserver,但它变得过于复杂,所以我只使用了一个简单的 setInterval

我没有使其动态化并带有用户设置等。
每次更新都会擦除你的黑名单和你的 @include(稍后查看)。

因为我希望 Discourse 中会添加新的 data-op-user-id 属性到主题中,这样我就不需要这个用户脚本了。

你可以通过更改其 @include 为你的 URL(唯一的特定行)来将其适配到任何其他 Discourse 论坛。


在移动视图中无效,因为(不幸的是),根据设计,Discourse 在移动视图中不显示 OP 头像。

所以,就_垃圾信息_而言,拥有建议的 tr.topic-list-item[data-op-user-id='123'] 仍然会非常方便。

现在更新不会重置我的黑名单,我添加了一个基本的黑名单编辑器,并且列表已本地保存。

但我真的非常非常希望 Discourse 能在每个主题的 <tr> data-op-user-id="123"> 行中包含一个 OP 用户 ID,这样就可以使用一个非常简单的用户样式表来隐藏被忽略用户的主题:

tr.topic-list-item[data-op-user-id='123'] { display: none; }

或者我更希望 Discourse 能自己隐藏被忽略用户的主题。

我不明白忽略用户有什么用,如果他们的主题污染了我的浏览。


<script type="text/x-handlebars" data-template-name="components/latest-topic-list-item">
<div class="topic-poster" data-user-card="{{topic.creator.username}}">

也许可以尝试通过覆盖 latest-topic-list-item 模板,将 username/userid 属性添加到 topic poster div,然后你可以通过用户样式表隐藏它们。

如果你想看看,我还有一个自动隐藏已忽略用户的组件。

我只是一个 Discourse 用户,不是管理员。
我无法在我使用的所有 Discourse 网站上安装 Discourse 插件。

我可以像在任何网站上一样运行用户脚本和用户样式表,但这受到限制,因为主题标签中缺少 op-user 信息。
所以我想在真正的软件中实现这个功能。 :slight_smile:

我有一个关于变通方法的建议,可能很容易实现:被忽略用户发布的帖子可以通过点击“显示隐藏帖子”来显示,为什么不能对第一个帖子也这样做呢(也就是,一个由被忽略用户创建的帖子)?

1 个赞

有什么可能的实现方法吗?我认为这应该被视为一个错误。如果你想屏蔽某个用户发送的消息/聊天,你也不想看到他们的话题……对吧?

3 个赞

是否可以仅当“最后”一帖是由被忽略用户发布的时,才将主题从“最新”中隐藏?这样,来自被忽略用户的所有新主题都将被隐藏,但来自其他用户的任何回复仍会显示在“最新”中。

这个问题最近在元(meta)上已经成为一个真正的问题。

2 个赞

出于好奇,您为什么想看别人的回复而不是完全静音该话题?部分对话会不会很难跟上?

2 个赞

您是在问我还是问 David,因为这是他的论点?我无所谓,但最好是每个用户都可以配置它。

就我而言,用户在很大程度上被其他用户基于他们普遍的“举止”所忽略,这很难确切量化,但它只是部分基于他们帖子的内容。

这意味着基于他们“贡献”的进一步讨论有时可能相当有用。

我真正有问题的是,有些用户似乎只挑剔,并且大声抱怨,却不花任何时间或精力去学习,然后一次性在多个主题中发布垃圾信息,这完全淹没了最新帖子。

简单地忽略他们最后的帖子(因此当他们发帖时,最新帖子不会显示该主题被顶起)就可以解决这个问题。现在它的实现方式感觉很糟糕。

1 个赞

对我来说,被静音用户创建的主题应该始终被隐藏。
即使有其他非静音用户参与,我也不关心他们的话题。

2 个赞

添加一个额外的屏蔽用户设置会很棒,主流社交媒体都提供了此功能。

我记得这里有人说过屏蔽用户意味着论坛有问题,所以它没用,也不能真正解决问题,但我认为这只是个人选择隐藏某人,也许其他人喜欢那个用户,只是我不喜欢。

如果该用户冒犯了很多人,他们可能已经被举报了。

1 个赞

确实,忽略某人的整个目的通常是因为他们让你感到烦恼和/或将你卷入争论。所以,当他们在 /latest 等页面上显示时,这似乎确实违背了初衷。

幸运的是,这个插件可用并且似乎运行良好:

但这感觉上应该是一个核心的 Discourse 功能,至少作为一个选项,或者最好是默认启用。

2 个赞

听起来很酷,尽管是外部的并且需要管理员权限。
你知道它在用智能手机浏览时是否有效吗?

是的,它有

1 个赞