Max Roganov

Max Roganov

С нами с 18 июля 2016; Место в рейтинге пользователей: #514
Антон Левиц
Антон Левиц
11 октября 2016, 18:22
1
0
Решил вот такой конструкцией

<div id="msGallery[[+id]]" class="card-gallery col-xs-12 col-sm-7 col-md-8 col-lg-6">    
    <div class="gallery-mainBlock">
[[!pdoResources?
	&class=`msProductFile`
	&tpl=`@INLINE <div class="gallery-item" style="background-image: url('{$url}')"></div>`
	&where=`{"product_id":[[+id]], "parent":0, "rank":0}`
	&limit=`1`
	&sortby=`id`
	&sortdir=`asc`
]]    	
	</div>
	<div class="gallery-items">
[[!pdoResources?
	&class=`msProductFile`
	&tpl=`@INLINE <div class="gallery-item" style="background-image: url('{$url}')"></div>`
	&where=`{"product_id":[[+id]], "parent":0}`
	&sortby=`id`
	&sortdir=`asc`
]]
	</div>
</div>
но не нравится, что два раза сниппет приходится вызывать.

в msGallery все проще было
<div id="msGallery[[+id]]" class="card-gallery col-xs-12 col-sm-7 col-md-8 col-lg-6">    
    {if $files?}
        <div class="gallery-mainBlock">
			<div class="gallery-item" style="background-image: url('{$files[0]['url']}')"></div>
		</div>
		<div class="gallery-items">
		     {foreach $files as $file}
			<div class="gallery-item" style="background-image: url('{$file['url']}')"></div>
			 {/foreach}
		</div>
    {/if}
</div>
Александр Суркин
29 октября 2015, 15:12
1
+1
Пишу ответ на свой вопрос, вдруг кому пригодится :)
<?php
switch ($modx->event->name) {
    case 'msOnCreateOrder':

//        $data = array(); // данные стороннего сервиса. если они были в json, то нужно преобразовать в массив php
  $data = array('Параметры');
        $properties = $msOrder->get('properties'); // получаем уже сохраненные properties в виде массива, мало ли туда еще какой плагин что напишет или уже написал

        $properties['delivery_details'] = $data; // сохраняем массив данных от стороннего cервиса

  $msOrder->set('delivery_cost', 123); // записываем стоимость доставки в заказ
        $msOrder->set('properties', $properties); // перезаписываем properties
        $msOrder->save(); // сохраняем наш заказ
    break;
}