pdoResources параметр toSeparatePlaceholders вызывает ошибку

Здравствуйте.
Пытаюсь вывести статьи в разные плейсхолдеры через pdoResources, но почему-то ничего не получается, выскакивают ошибки PHP. Пытался и через fenom и через обычный синтаксис. Подозреваю, что это именно я делаю что-то не так, но понять не получается…
{*'pdoResources' | snippet : [
                'parents' => 8,
		'limit' => 5,
                'includeTVs' => 'img',
                'sortby' => 'menuindex',
                'sortdir' => 'ASC',
                'toSeparatePlaceholders' => 'myarticle'
 ]*}
 [[pdoResources?
                &parents = 8
		&limit = 5
                &includeTVs = `img`
                &sortby = `menuindex`
                &sortdir = `ASC`
                &toSeparatePlaceholders = `myarticle`
 ]]
Игорь
03 октября 2023, 12:22
modx.pro
433
0

Комментарии: 11

Игорь
03 октября 2023, 19:05
0
а если всё в обычный плейсхолдер засунуть, будет работать? типа myarticle[0].title и т.д… я что-то правда не ожидал, что на этом сниппете споткнусь (… просто сейчас делаю дальше, но этот вопрос висит ((
    Артур Шевченко
    03 октября 2023, 22:57
    0
    Хорошо бы увидеть ошибки
    Артур Шевченко
    03 октября 2023, 23:08
    0
    Ну и непонятно, что ты хотел получить вот так myarticle[0].title? Заголовок отдельной статьи? Во-первых, если верить документации, плейсхолдеры будут [[+myarticle0]], [[+myarticle1]] или на fenom {'myarticle0' | placeholder}, {'myarticle1' | placeholder}. Во-вторых, вряд ли по умолчанию там будет массив, скорее всего строка, даже при отсутствии шаблона, если нужен массив можно попробовать &return=`data`
      Игорь
      04 октября 2023, 21:09
      0
      вроде работает по вашей подсказке, толком не смотрел ещё, но кажется всё ок )
      {set $test = 'pdoResources' | snippet : [
                      'parents' => '8',
      				'limit' => '5',
                      'includeTVs' => 'img',
                      'sortby' => 'menuindex',
                      'sortdir' => 'ASC',
                      'return' => 'data'
       ]}
       
        {$test[0].pagetitle}
       {$test[0].introtext}
       {$test[0].uri}
       {$test[0].tv.img}
      остается только в чанке с версткой эти элементы распихать по нужным блокам
        Игорь
        04 октября 2023, 21:25
        0
        «по уродски конечно получается»… тупо вставлять переменные… но не мы такие, вёрстка такая ))
          Алексей Смирнов
          04 октября 2023, 21:45
          +1
          toSeparatePlaceholders выводит каждый элемент распарсеный в TPL-ке. Те он не выведет вам test.pagetitle.
          Чтобы toSeparatePlaceholders работал необходимо указать tpl.
          и уже распарсеный html будет выводиться через плейсхолдеры будут [[+myarticle0]], [[+myarticle1]] или на fenom {'myarticle0' | placeholder}, {'myarticle1' | placeholder}
          О чем Артур и написал.
          Вариант последний на феноме нужен если вам точечно нужно расставить данные прям в капец верстке.
          через foreach можно, кстати, забацать любую проблемную верстку. но чтобы что-то конкретное посоветовать нужно знать что там с версткой.
            Игорь
            04 октября 2023, 21:50
            0
            спасибо, я уже «по простому забацал» как Вы посоветовали… только с допполями не могу сообразить
            Игорь
            04 октября 2023, 21:47
            0
            только ещё доп.поля почему-то не подтягиваются — но это я видимо сам уже опять туплю
              Игорь
              04 октября 2023, 22:39
              0
              добавил в вызов сниппета, что бы без префикса стали доп.поля — вроде все заработало )
              'tvPrefix'=>'',
              как же у вас всё «сложно» в этом модексе, всю голову можно сломать пока разберешься (
                Игорь
                04 октября 2023, 23:00
                0
                {set $articles = 'pdoResources' | snippet : [
                                'parents' => '8',
                				'limit' => '5',
                                'includeTVs' => 'img',
                                'sortby' => 'menuindex',
                                'sortdir' => 'ASC',
                                'tvPrefix'=>'',
                                'return' => 'data'
                 ]}
                и дальше уже по верстке:
                <section class="building">
                	<div class="container">
                		<h3 class="title">{$title}</h3>
                		<div class="building__inner">
                			<div class="building__blocks">
                				<div class="building__block building__block-1">
                					<div class="title">{$articles[0].pagetitle}</div>
                					<div class="subtitle">{$articles[0].introtext}</div>
                					<a href="{$_modx->config.site_url}{$articles[0].uri}" class="btn">ПОДРОБНЕЕ</a>
                				</div>
                				<div class="building__block building__block-2">
                					<div class="title">{$articles[1].pagetitle}</div>
                					<div class="subtitle">{$articles[1].introtext}</div>
                					<a href="{$_modx->config.site_url}{$articles[1].uri}" class="btn">ПОДРОБНЕЕ</a>
                				</div>
                			</div>
                			<div class="building__blocks">
                				<div class="building__block building__block-3">
                					<div class="photo"><img src="{$_modx->config.site_url}{$articles[2].img}" alt="{$articles[2].pagetitle}"></div>
                					<div class="content">
                						<div class="title">{$articles[2].pagetitle}</div>
                						<a href="{$_modx->config.site_url}{$articles[2].uri}" class="btn">ПОДРОБНЕЕ</a>
                					</div>
                				</div>
                				<div class="building__block building__block-4">
                					<div class="title">{$articles[3].pagetitle}</div>
                					<div class="subtitle">{$articles[3].introtext}</div>
                					<a href="{$_modx->config.site_url}{$articles[3].uri}" class="btn">ПОДРОБНЕЕ</a>
                				</div>
                				<div class="building__block building__block-5">
                					<div class="photo">
                						<img src="{$_modx->config.site_url}{$articles[4].img}" alt="{$articles[4].pagetitle}">
                					</div>
                					<div class="content">
                						<div class="title">{$articles[4].pagetitle}</div>
                						<a href="{$_modx->config.site_url}{$articles[4].uri}" class="btn">ПОДРОБНЕЕ</a>
                					</div>
                				</div>
                			</div>
                		</div>
                	</div>
                </section>
                // и т.д.
                Спасибо за помощь!
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      11