【问题标题】:get document by id in modx在 modx 中通过 id 获取文档
【发布时间】:2013-02-25 22:30:50
【问题描述】:

很简单,我想在一个页面上有多个内容区域。请注意,这是我的第一个 Modx 网站。

到目前为止,我已经有了主页并为主页上的子区域创建了子文档。我只想在模板中调用它们。

例如有一个id为2的文档,我想要首页的长标题(id为1)。

类似:

[[~2*longtitle]] 

不幸的是,上面只是返回该子文档的 url,而不是该文档本身的长标题。

到目前为止,我还没有找到有关这样做的文档。有谁知道如何做到这一点?

【问题讨论】:

    标签: modx modx-revolution modx-templates


    【解决方案1】:

    您有 2 个选项,艰难的方式 ~ 您选择的路线 ;) 和简单的方式......我也会概述。

    对于您要执行的操作,您将要使用 getResources http://rtfm.modx.com/display/ADDON/getResources,这将允许您遍历资源集合并提取您需要的字段 [在本例中为“内容”] 或 getresourceField @ 987654322@ 这将允许您指定单个资源和要提取的字段,只需在模板中多次调用它。

    你可以试试:

    [[getResources? &parents='[[*id]]' &tpl='myTpl' &includeContent='1']] 
    

    应该获取当前资源的所有子资源 [最多默认 ~ 10],然后您将创建一个模板来循环获取资源:

    <h1>[[+longtitle]]</h1>
    <p>[[+content]]</p>
    

    注意资源字段使用 + 而不是 *

    简单的方法是为您的额外内容区域创建模板变量,您也可以将它们设置为富文本区域。这样,任何给定页面的所有内容都在一个资源中〜您无需创建子资源来保存页眉/页脚/侧边栏/等的内容

    无论哪种方式都可以,但 TV 方法可能会使用更少的开销。

    【讨论】:

    • 我明白了。模板变量确实很强大!
    • 请注意,块对于模板中的可重用内容区域非常有用,例如[[$header]][[$footer]][[$sidebar]]
    【解决方案2】:

    你可以使用快场

    [[#12.pagetitle]]
    

    或在通话中

    [[#[[+id]].pagetitle]]
    

    您还可以获取该资源的所有电视,例如

    [[#12.myTv]]
    

    另请参阅:http://rtfm.modx.com/extras/revo/fastfield

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      • 1970-01-01
      • 2013-06-12
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多