首页 > 解决方案 > 在 Modx 中获取 TV 的 html 属性中的值

问题描述

我是 Modx 的新手,所以我不知道这是否可能。

我的电视,在这种情况下[[*myTV]]输出以下内容:

<data value='www.mylink.com'>Description</data>

有没有办法只在前端显示数据值?在这种情况下,我只想显示 url。

标签: modx

解决方案


我的建议是将数据(在本例中为 URL)和 html 分开,这可能对您的情况有所帮助。如果电视只包含 URL 本身,那么使用输出修饰符处理电视的输出会变得更加容易。例如,如果[[*myTV]]包含www.mylink.com特定资源并且您想要问题中的原始输出,则可以执行以下操作:

[[*myTV:default=`<data value='[[*myTV]]'>Description</data>`]]

您还可以将 TV 嵌套在输出修饰符中,例如,如果您有一个对应的[[*description]]TV 描述了 中的 URL [[*myTV]],您可以使用:

[[*myTV:default=`<data value='[[*myTV]]'>[[*description]]</data>`]]

TL;DR... 简短版本:将整个输出存储在电视中并从该电视中提取文本以输出比将输出的各个组件存储在单独的电视中并在需要时将它们组合在一起进行输出要困难得多。

更长的版本:在您将数据和 HTML 都存储在电视中的任何情况下(在绝大多数情况下不建议这样做),您可能会在整个项目中发现数据重复,如果您碰巧决定在将来的某个时间更改 html,然后您必须进入每个电视领域并更改该 HTML,这与CMS应该做的相反的效果 - 即使内容管理容易

如果您碰巧找到了存储电视及其 HTML 格式的用例,那么最好留给 MODX Chunks 来完成这项工作,您可以在 MODX 中的一个位置用 HTML 编写电视的实现,而不是复制该代码在任何地方,您都像这样引用块:[[$chunk]].


推荐阅读