问题描述
我是Modx的新手,所以我不知道这是否可行。
我的电视,在这种情况下,[[*myTV]]
输出以下内容:
<data value='www.mylink.com'>Description</data>
有没有办法只在前端显示数据值?在这种情况下,我只想显示网址。
解决方法
我的建议是将数据(在本例中为 URL)和 html 分开,这可能对您的情况有所帮助。如果 TV 只包含 URL 本身,那么使用输出修饰符处理 TV 的输出会更容易。例如,如果 [[*myTV]]
包含特定资源的 www.mylink.com
并且您想要问题中的原始输出,您可以执行以下操作:
[[*myTV:default=`<data value='[[*myTV]]'>Description</data>`]]
您还可以在输出修饰符中嵌套 TV,例如,如果您有一个对应的 [[*description]]
TV 来描述 [[*myTV]]
中的 URL,您可以使用:
[[*myTV:default=`<data value='[[*myTV]]'>[[*description]]</data>`]]
TL;DR... 简短版本:将整个输出存储在电视中并从该电视中提取文本以进行输出比将该输出的各个组件存储在单独的电视中要困难得多并在需要时将它们组合在一起进行输出。
更长的版本:在任何情况下,您将数据和 HTML 都存储在电视中(在绝大多数情况下这是不可取的),您可能会发现重复的项目中的数据,如果您决定在将来的某个时间偶然更改 html,那么您必须进入每个电视领域并更改该 HTML,这与 CMS 应该产生的效果相反做 - 即让C内容M管理更容易!
如果您碰巧找到了存储电视及其 HTML 格式的用例,那么最好留给 MODX 块,在那里您可以在 MODX 中的一个地方用 HTML 编写电视的实现,而不是到处复制该代码,您可以像这样引用块:[[$chunk]]
。