大家好
我想知道是否可以在每个标签中都包含一个表单,在该主题的顶部显示客户的必要详细信息,比如作为标签。
这个表单可以添加到多个主题中,并显示客户的详细信息,比如
而无需创建类别,因为我们根据其他标准创建类别
或者任何其他可以帮助我在多个主题和类别中自动显示客户详细信息的解决方案?
大家好
我想知道是否可以在每个标签中都包含一个表单,在该主题的顶部显示客户的必要详细信息,比如作为标签。
这个表单可以添加到多个主题中,并显示客户的详细信息,比如
而无需创建类别,因为我们根据其他标准创建类别
或者任何其他可以帮助我在多个主题和类别中自动显示客户详细信息的解决方案?
我不认为有现有的功能可以实现这一点。你可能需要使用一个插件。
不过,我可能是错的。您能进一步说明一下吗?谢谢。
哪个插件可以帮助我构建此工作流?
您好,您能进一步阐述您最初的问题吗?我可能误解了您的意思。
我想您可能需要做一些定制化的操作,但没有更多细节很难确定。
您想要的是在主题帖子中添加一个表单,并根据表单内容为主题添加标签吗?如果是这样,您或许可以使用一个主题组件(Theme Component)来完成。
如果我正确理解您的问题,听起来您为每个客户使用一个标签,并且您希望在查看任何包含该标签的主题时显示扩展的客户描述。
它不完全是一个表单,但这里看到的 Tag Banners 组件可能会让您实现一半目标:
安装此组件后,您可以为每个标签添加文本描述,该描述将显示在选择标签本身时出现的横幅中。文本字段接受 HTML,并且可以使用自定义 CSS 进行样式设置,因此您可以用它做很多事情,但这是一个非常简单的示例,我在其中编辑一个标签:
挑战在于修改此组件,使其不仅显示在标签页面上,而且显示在使用该标签的每个主题上。我不知道这可能需要多少工作量,但更有经验的编码员(比如 Nate…)可能有一些想法。
感谢 @toddz,这对我帮助很大,正是我需要的
那么,“@NateDhaliwal 标签横幅对我帮助很大,但现在我的问题是:
如何让它出现在主题本身中,以便当我添加标签时,详细信息会出现在主题的顶部”
好的,既然我理解了你的问题,我会编辑这个主题的标题,这样可能会有更多人关注。
我猜这需要分叉(forking)该组件以创建一个新版本,找出触发横幅在标签页面上显示的条件,并更改该条件,使其在查看被标记的主题时也能触发。
你可能会很幸运,有人觉得这听起来很有趣——否则你可能需要确定一个项目预算,并在 Marketplace 中发布一个请求。
我正在研究这是否可行,正在一个分支上进行实验。不过,我不能保证!
很高兴你接受了这项任务,内特。我自己没有这个需求,但我很兴奋地试用了它。它运行得很棒!
不过,当一个主题有多个标签时,我确实发现了一个棘手的问题。(而且很难想象只用一个标签来管理事物。)
标签要么按字母顺序排序,要么按受欢迎程度排序……

……所以作者对哪个标签首先显示没有直接控制权。
我曾想过使用非字母字符(如 ~ClientName)来启动客户端标签,这样它总能排在列表的最前面。这在 /tags 页面上有效——但在主题页面上无效,那里的标签列表会忽略 ~ 字符。![]()
在去年的一篇主题中,似乎可以插入某些不可见的非字母字符来强制排序:Invisible way to force display order of tags?,但现在这似乎不再起作用了。当我今天创建一个带有撇号或逗号的标签时,它要么被拒绝,要么被静默删除。(不确定为什么 ~ 被接受。)
上面显示的标签排序设置会影响 /tags 页面和主题上的标签列表——但我猜它们可能使用了不同的字母排序算法?
嗯……我猜这真的取决于楼主想做什么。如果是一个标签 → 一个主题 → 一个用户,那么这会奏效。否则,就需要更多信息了
。
感谢您的贡献!
我想知道这是否有可能被添加到官方功能更新列表中。
我觉得我也有非常适合使用这种情况的场景。
嗯……我不确定这是否完全符合“标签横幅”的核心概念,因为它原本是用来在标签页面上显示标签信息的,但现在它在带有该标签的主题中显示标签信息
。
另外,主组件已经有一些更新,所以我也需要尝试更新这个分支,但请注意,这个分支只是一个概念验证。
是的,我不知道它是否足够广泛有用,可以添加到原始插件中。一个单独的版本或一个名为“带标签的主题横幅”的附加组件可能更合适。
但我认为实用性相当有限,除非作者也能指定哪个标签是主要的。我想到的唯一方法是……
~ 这样的字符视为列表顶部。# plugin.rb
after_initialize do
module ::CustomTagSort
def custom_tag_sort(tags)
tags.sort_by do |tag|
# 将以“~”开头的标签放在最前面,然后按 A-Z 排序
[tag.name.start_with?("~") ? 0 : 1, tag.name.downcase]
end
end
end
# 补丁到计算 visible_tags 或类似内容的序列化器/方法
require_dependency 'topic_tags_mixin'
TopicTagsMixin.prepend(Module.new do
private
def all_tags
return @tags if defined?(@tags)
tags = topic.visible_tags(scope)
if SiteSetting.tags_sort_alphabetically
tags = ::CustomTagSort.custom_tag_sort(tags)
else
topic_count_column = Tag.topic_count_column(scope)
tags = tags.sort_by { |tag| tag.public_send(topic_count_column) }.reverse
end
@tags = tags
end
end)
end
2.) 更好:根据指定的标签组顺序对标签进行排序。
搜索发现了很多要求对标签顺序进行更多控制的主题,因为这通常出于各种原因很重要(属 → 种,品牌 → 型号,等等)——但回复表明这需要相当大的工作量。