【问题标题】:ModX Get Resources not using templateModX 获取资源不使用模板
【发布时间】:2017-07-25 08:10:36
【问题描述】:

modx 的新手,我正在尝试在 Modx Revo 中构建图像滑块。我正在使用获取资源,但它不输出模板文件。我究竟做错了什么?这是我的代码:

[[getResources? 
        &resources=`[[*slide-img]]` 
        &parents=`-1` 
        &depth=`0` 
        &limit=`0` 
        &tpl=`slides` 
        &sortby=`FIELD(modResource.id,[[*slide-img]])` 
        &sortdir=`ASC`
        &includeTVs=`1` &processTVs=`1` &tvPrefix=`tv.`
    ]]

【问题讨论】:

    标签: modx modx-revolution


    【解决方案1】:

    据我了解,您正在尝试从资源树中的资源中获取所有图像。并将它们显示在图像滑块中。

    我猜你已经有了用于图像滑块的 javaScript。于是就有了获取图片的方法。

    您有一个名为 slide-img电视,对吗?好的。确保它的输出格式文本

    如果您在带有该电视的页面中引用该图像,则可以这样称呼它

    <img src="[[*slide-image]]" alt="some Image" />
    

    如果您在一个块中调用它(使用 getResources 时将执行的操作),您可以这样调用图像:

    <img src="[[+tv.slide-image]]" alt="some Image" />
    

    看到区别了吗? * 用于同一页面内的 TV+ 是对 占位符 的正确调用。因此,如果您使用 getResources,它会将您查询的所有内容放入微模板中的占位符中(我们在 MODX 术语中称为 chunk

    所以您的 getResources 调用可能如下所示:

    [[getResources? 
        &parents=`-1` (the place from where getResources will dig down the tree)
        &depth=`0` (how deep will it dig?)
        &limit=`0` (only the default 5? no! :) )
        &tpl=`slides` (this is your chunk, right?)
        &sortby=`FIELD(modResource.id,[[*slide-img]])` (you will sort by the file name and folder, is that right?)
        &sortdir=`ASC`
        &includeTVs=`1` &processTVs=`1` &tvPrefix=`tv.` (right, right, tv. is already the default value)
    ]]
    

    【讨论】:

    • 很好的解释。我现在明白了很多。谢谢吉多
    • Guido,我需要为每张图片创建一个独特的电视吗?所以 [[+tv.slide-image-one]] 和 [[+tv.slide-image-two]]
    • 这是我的块:

      [[+pagetitle]]

      [[+description]] [[+link_attributes:notempty=&lt;a title="[[+pagetitle]]" class="mt1 button button-primary" href="[[+link_attributes]]"&gt;[[+menutitle]]&lt;/a&gt;]]

      [[+introtext:notempty=&lt;div class="photocaption mt1 small"&gt; &lt;h4&gt;[[+introtext]]&lt;/h4&gt; &lt;/div&gt;]]
    • 我试图弄清楚如何使用像上面那样的单个块创建 3 张幻灯片,但每张幻灯片都有一个独特的图像。
    • 您在 &tpl 参数中命名的块是您的 getResources 调用将找到的每个 [[+slide-img]] 都会调用的微模板。从我在这里看到的情况来看,它看起来不错,除了 :norempty 之后缺少的反引号。我想这只是因为这里的编辑。 getResources 有点像 php 中的“foreach”。所以你的方法很好。尝试从较小的块开始。只放[[+pagetitle]],然后放像[[+tv.slide-img]]这样的电视。如果输出符合预期,继续一步一步完成块。
    【解决方案2】:

    getResources 是一个 sn-p,主要用于列出文档,而不是图像。文档(HTML、XML、CSS 或 JSON 类型,仅举几例)在管理器的文档树中创建,并表示您可以使用 getResources sn-p 获取的资源示例。

    即使有可能以某种方式将图像作为文档(我对此表示怀疑),但无论如何这不是一种常见的方式。通常您希望通过相应类型的模板变量将图像附加到文档。特别是对于滑块,您需要许多图像,而不是一个。因此,您可能需要像 Gallery Extra 这样的特定内容来管理和输出您的图像。也请查看gallery section。请注意,您刚刚安装的 MODX 基本版本功能不完整。我们必须安装附加组件才能正确使用 MODX。通常我最多安装 30 个附加组件。

    你的 sn-p 调用在我看来也很奇怪:

    &resources=`[[*slide-img]]`
    

    我不知道您的模板变量slide-img 的内容是什么,但它应该是一个以逗号分隔的资源ID 列表,例如2,4,6,34。可能,在您的情况下,您有一些不同的东西,例如图像 url,并且 sn-p 调用静默崩溃或什么也不输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-05
      相关资源
      最近更新 更多