ModX Получить ресурсы без использования шаблона

Новичок в 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.`
    ]]

person madameFerry    schedule 05.03.2017    source источник


Ответы (2)


Насколько я понимаю, вы пытаетесь получить все изображения из ресурсов в дереве ресурсов. И покажите их в виде слайдера.

Я думаю, у вас уже будет javaScript для слайдера изображений. Итак, вот как получить изображения.

У вас есть телевизор под названием slide-img, верно? Хороший. Убедитесь, что это формат вывода - текст.

Если вы ссылаетесь на это изображение на странице, на которой есть этот телевизор, вы называете это так

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

Если вы вызываете его по частям (что вы будете делать при использовании getResources), вы вызываете изображение следующим образом:

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

Увидеть разницу? * для TV на той же странице, + - правильный вызов для заполнителя. Поэтому, если вы используете getResources, он поместит все, что вы запрашиваете, в заполнители в вашем микротемпле (мы называем это chunk в терминах MODX)

Итак, ваш вызов 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)
]]
person Guido Gallenkamp    schedule 06.03.2017
comment
Очень хорошее объяснение. Теперь я понимаю это намного лучше. Спасибо, Гвидо - person madameFerry; 06.03.2017
comment
Гвидо, мне нужно создавать уникальный телевизор для каждого изображения? Итак, [[+ tv.slide-image-one]] и [[+ tv.slide-image-two]] - person madameFerry; 07.03.2017
comment
ЭТО МОЙ ЧАНК: ‹div class = slider-item style = background-image: url ('[[+ tv.slide-img]]')› ‹div class = p-responsive center› ‹div class = caption› ‹ h2 class = h1 белый сжатый жирный текст, тень ›[[+ pagetitle]] ‹/h2› ‹p› [+ description]] ‹/p› [[+ link_attributes: notempty = <a title="[[+pagetitle]]" class="mt1 button button-primary" href="[[+link_attributes]]">[[+menutitle]]</a>]] ‹/div› [ [+ introtext: notempty = <div class="photocaption mt1 small"> <h4>[[+introtext]]</h4> </div>]] ‹/div› ‹/div› - person madameFerry; 07.03.2017
comment
Я пытаюсь понять, как создать 3 слайда, используя один кусок, как показано выше, но каждый слайд имеет уникальное изображение. - person madameFerry; 07.03.2017
comment
Ваш фрагмент, который вы называете в параметре & tpl, ЯВЛЯЕТСЯ микрошаблоном, который будет вызываться для каждого [[+ slide-img]], который найдет ваш вызов getResources. Судя по тому, что я здесь вижу, это выглядит хорошо, за исключением отсутствующих обратных кавычек после: norempty. Я думаю, это только из-за редактора. getResources работает так же, как foreach в php. Так что ваш подход хорош. Попробуйте начать с меньшего куска. Ставь только [[+pagetitle]], потом ставь телевизор вроде [[+tv.slide-img]]. Если результат соответствует ожиданиям, продолжайте и шаг за шагом завершите фрагмент. - person Guido Gallenkamp; 07.03.2017

getResources - это фрагмент, используемый в основном для вывода списка документов, а не изображений. Документ (типа HTML, XML, CSS или JSON, чтобы назвать несколько) создается в дереве документов в диспетчере и представляет собой пример ресурса, который вы можете получить с помощью фрагмента getResources.

Даже если есть возможность каким-то образом поместить изображение как документ (в чем я сомневаюсь), это все равно не распространенный способ. Обычно вы хотите прикрепить изображение к документу через переменную шаблона соответствующего типа. В частности, для слайдера вам нужно много изображений, а не одно. Таким образом, вам может потребоваться что-то конкретное, например Gallery Extra, для управления и вывода ваших изображений. Также посетите раздел галереи. Обратите внимание, что базовая версия MODX, которую вы только что установили, не полностью функциональна. Мы должны установить дополнения, чтобы правильно использовать MODX. Обычно устанавливаю до 30 экстров.

Также ваш вызов сниппета кажется мне странным:

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

Я не знаю, каково содержимое вашей переменной шаблона slide-img, но это должен быть список идентификаторов ресурсов, разделенных запятыми, например 2,4,6,34. Вероятно, в вашем случае у вас есть что-то другое, например URL-адрес изображения, и вызов фрагмента молча дает сбой или просто ничего не выводит.

person curveball    schedule 05.03.2017