Topic Template Placeholder Text 主题组件

谢谢大家,更新并强制刷新后,现在一切正常了!

2 个赞

刚开始测试这个组件,谢谢!我想知道能否为私信添加占位符文本。有人试过吗?

私信的默认占位符文本与主题帖相同。网站管理员可在管理设置中的“自定义 > 文本”下进行修改。搜索 js.composer.reply_placeholder,如本线程顶部所示。

如果您使用该组件为每个主题类别自定义占位符文本,则默认占位符文本应仅适用于私信。

1 个赞

这个主题组件真的很棒。我一直在寻找一种方法,在用户创建主题时给予他们更多的引导,并希望让体验更接近于填写表单

默认的 Discourse 主题模板文本会在用户输入时保留。听起来这正是您需要的,对吗?

占位符方法:

我和其他人所期望的行为应更像表单中的占位符(即具有独立的表单元素)。

目前的基本默认行为允许我列出表单的不同部分,例如我写的“姓名”、“地点”和“问题”,但默认的模板行为存在与之前指出的相同问题——Markdown 使其令人困惑,且用户很容易破坏它。

我认为理想的情况是像普通表单一样,每个部分(姓名、地点和问题)都有一个占位符,但(这里有所不同)各部分将独立运作。因此,当用户点击“姓名”部分时,占位符“姓名”会消失,而其他部分则保留,直到用户也点击它们。

我想象这可以通过 jQuery 实现。每个部分必须拥有带 ID 的独立 div,然后 jQuery 允许在用户点击时显示或移除该特定 ID 的文本。但这需要在文本区域中添加 div,而我不确定如何实现这一点。

我正在此处进行调查。

模板方法

另一种替代方案是,当用户点击时,部分标题不会“消失”。因此,部分标题(例如:姓名、地点和问题)将作为保留在页面上的文本。与当前模板默认设置相比,为了使其更像表单:

  1. 部分标题文本不可由用户编辑(即 contenteditable="false"
  2. 部分分隔点不可由用户删除
  3. 部分标题下方应有清晰的空间供用户输入。在当前默认模板中,用户必须将光标移到文本位置,按 回车 键以创建输入空间。

也许这是更简单的方法?

我发现“仅应用于首帖”这个设置不起作用。如果我希望主题中的所有帖子都使用相同的占位符并关闭该设置,此时我得到的却是默认占位符。

有没有可能为回复(而非主题的首帖)设置一个专属占位符?我希望为用户提供更明确的指引,说明回复中可以包含哪些内容,而一个在回复中出现的占位符将会很有帮助。

4 个赞

我发现只有当占位符文本有多行时,它才对回复 有效。我不知道为什么,因为代码对我来说有点太复杂了。

附注

在此期间,我提交了一个小的拉取请求(PR),以停止浏览器控制台的警告:

2 个赞

已合并,谢谢你 Nathan。

2 个赞

我遇到了一个问题,占位符文本没有显示。我错过了什么?

模板:

组件设置

没有占位符/模板文本显示

取消勾选“将所有主题模板显示为占位符”时

模板显示为可编辑文本(非占位符文本)

编辑模板文本,其中包含 [placeholder]

模板文本消失/没有占位符文本

这是在一个全新的 Discourse 安装上,没有安装插件/组件 - Discourse 3.4.0

是的,这个主题组件似乎停止工作了。:thinking:

3 个赞

这个组件不工作了。

好吧,我可以确认它不能工作。可能是由于 Discourse 最近的重大更改导致的。

1 个赞

你好,有希望更新吗?:face_with_tongue:

你好 :waving_hand:

我已经创建了一个 PR,让这个主题组件重新焕发生机,并使其与最新的 Discourse 兼容。 :slightly_smiling_face:

8 个赞

感谢 @Don,我已合并你的拉取请求。请测试是否对你有用。:folded_hands:

3 个赞

我刚刚重新安装并使用了它——现在它似乎运行良好。

因此,我已经移除了 broken 标签。

2 个赞

[管理员通知] 主题“主题模板占位符文本”包含需要更新的代码。(ID:discourse.resolver-resolutions)

[主题 50“主题模板占位符文本”] 弃用通知:“site:main”已弃用,请使用“service:site”替代 [自 Discourse 2.9.0.beta7 起弃用] [弃用 ID:discourse.resolver-resolutions]

我已做出该更改并发布更新。现在应该一切正常了。

2 个赞