MIGX getImageList и Fenom

Есть такой вызов
{$_modx->runSnippet('!getImageList', [
	'tvname' => 'tv_product_main_gallery',
	'tpl' => '@CODE: <some_chunk>'
])}


По поводу @CODE и fenom, — работает феном в чанке относительно самого ресурса. То есть, когда я делаю так
'tpl' => '@CODE: [[+image]]'
Работает.

Когда я пишу
'tpl' => '@CODE: {$image}'
То не работает.

Когда я пишу
'tpl' => '@CODE: {$_modx->resource.myMIGXtv}'

То работает, получаю содержимое переменной. Весь массив значений.

Вопрос, как использовать феном, чтобы не писать свой парсер переменной и не использовать классический вызов через квадратные скобки, а воспользоваться {$image}?
Paul B.
07 июня 2016, 13:54
modx.pro
18
12 849
0

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

Paul B.
07 июня 2016, 20:43
0
Может-таки знает кто, как получит доступ к полю внутри TV-переменной типа MIGX?
    Алексей
    07 июня 2016, 21:02
    +1
    getImageList работает с JSON на сколько я помню. Он никак не завязан на pdoTools, и чанки в нем обрабатываются не через pdo->getChunk, а через modx->getChunk, поэтому нужно пользоваться конструкцией [[+image]] а не {$image}. Если хотите пользоваться синтаксисом fenom, то нужно все вызовы функции modx->getChunk переделать на pdo->getChunk. Ну это в кратце если.
      Paul B.
      08 июня 2016, 00:51
      0
      Понял!
      Алексей, спасибо. Буду пробовать ;)
        Paul B.
        09 июня 2016, 01:47
        0
        Ещё раз благодарю. Так и поступил.
          Игорь Терентьев
          23 февраля 2018, 20:56
          0
          Подскажи пожалуйста как ты сделал.
          Я сделал копию getImageList и добавил в начало:
          $path = MODX_CORE_PATH . 'components/pdotools/model/pdotools/';
          $pdoFetch = $modx->getService('pdofetch','pdoFetch', $path, $scriptProperties);
          И заменил $modx->getChunk на $pdoFetch->getChunk
          Но не работает.
      Виталий Серый
      08 июня 2016, 00:58
      7
      +3
      Можно попробовать обойтись средствами Fenom без getImageList.
      {set $rows = json_decode($_modx->resource.tv_product_main_gallery, true)}
      {foreach $rows as $row}
          {$row.image}
      {/foreach}
        Paul B.
        09 июня 2016, 01:46
        0
        Спасибо, Виталий!
        Я после плагина о таком тоже подумал, но уже всё переделал под плагин.
          Виталий Серый
          09 июня 2016, 11:58
          0
          Спасибо Василию)
          Избавлялся таким образом от кучи запросов к базе.
          Pavel Zarubin
          13 ноября 2016, 16:27
          0
          А как в таком вызове обернуть каждый {$row} а чанк?
            Виталий Серый
            13 ноября 2016, 18:44
            3
            0
            Код чанка написать между foreach.
            Например:
            {foreach $rows as $row}
            	<div class="item">
            		<div class="title">{$row.title}</div>
            		<div class="desc">{$row.description}</div>
            		<div class="image"><img src="{$row.image}" alt="{$row.title}" /></div>
            	</div>
            {/foreach}
              Pavel Zarubin
              13 ноября 2016, 18:46
              0
              Точно, что-то как-то не подумал, спасибо)
                Андрей П
                03 марта 2017, 22:29
                0
                Скажите пожалуйста, как оформить вызов, если у сниппета getImageList указывается id ресурса родителя &docid=`15`?
                  Виталий Серый
                  03 марта 2017, 22:43
                  4
                  +1
                  Все тоже самое, только тв запрашивать у требуемого ресурса.
                  {set $rows = json_decode(15 | resource : 'migx_tv', true)}
                  {foreach $rows as $row}
                      {$row.image}
                  {/foreach}
                    Андрей П
                    03 марта 2017, 22:57
                    1
                    0
                    Разобрался сам. Такой вывод работает:
                    {set $rows = 15 | resource : 'тв_поле' | fromJSON}
                ck
                ck
                28 февраля 2017, 13:23
                0
                А как в данном варианте прописать дополнительные условия работы цикла?
                Например, выводить только 2 первые записи, или пропустить первые 5 проходок?
                  Виталий Серый
                  28 февраля 2017, 14:03
                  4
                  +4
                  Самое простое через ключ массива.
                  {*Первые два*}
                  {foreach $rows as $idx => $row}
                  	{if $idx < 2}
                  		<div>{$idx} - {$row.title}</div>
                  	{/if}
                  {/foreach}
                  
                  {*С пятой строки*}
                  {foreach $rows as $idx => $row}
                  	{if $idx > 4}
                  		<div>{$idx} - {$row.title}</div>
                  	{/if}
                  {/foreach}
                  
                  {*Чересстрочная вакханалия*}
                  {foreach $rows as $idx => $row}
                  	<div{$idx is odd ? ' class="odd"' : ''>{$idx} - {$row.title} и два тикета туДаблин</div>
                  {/foreach}
                  И т.п.
                  Документация Fenom.
                    ck
                    ck
                    01 марта 2017, 17:12
                    0
                    Спасибо. Работает!
                      ck
                      ck
                      14 февраля 2018, 18:42
                      0
                      Здорово, а можно ли в таком случае настроить пагинацию?
                      Или придётся getImageList через pdoPage запускать?
                        Максим Кузнецов
                        14 февраля 2018, 19:10
                        0
                        MIGX хранит данные в json-формате.

                        То есть по-умолчанию вы сразу достаете все данные, поэтому для реализации пагинации у вас есть 2 способа: визуально прятать часть результатов (внутри цикла foreach, например), отображая нужный промежуток в зависимости от get-параметра или с помощью jQuery при помощи display block/none.
                          Виталий Серый
                          14 февраля 2018, 21:10
                          1
                          +1
                          Можно поизвращаться при желании. Но лучше прислушаться к Максиму и реализовать через js, готовых велосипедов, наверное, полно.
                          {set $page_key = 'num'}
                          {set $page = $.get.$page_key?:1}
                          {set $limit = 3}
                          {if ($page is numeric) && (($page + 0) is not decimal)}
                              {set $total = $rows | length}
                              {set $pages = ($total - ($total % $limit)) / $limit}
                              {set $pages = ($total % $limit) ? ($pages + 1) : $pages}
                              {set $page = $page > $pages ? 1 : $page}
                              {set $offset = $limit * ($page - 1)}
                              {set $idx = 0}
                              {foreach $rows as $val}
                                  {*<p>{$idx} - {$offset} - {$offset + $limit}</p>*}
                                  {set $idx = $idx + 1}
                                  {if $idx <= $offset || $idx > ($offset + $limit)}
                                      {continue}
                                  {/if}
                                  <div>{$idx} - {$val}</div>
                              {/foreach}
                              {macro link($curr_page, $dir='<', $total, $page_key,$tpl)}
                                  {set $classes = ['btn btn-light']}
                                  {set $page = ($dir == '>') ? ($curr_page + 1) : ($curr_page - 1)}
                                  {if (($curr_page >= $total) && ($dir == '>')) || (($curr_page <= 1) && ($dir != '>'))}
                                      {set $classes[] = 'disabled'}
                                      {set $disabled = 1}
                                  {/if}
                                  {if $disabled}
                                      <span class="{$classes | join:' '}">{$tpl}</span>
                                  {else}
                                      <a href="?{$page_key}={$page}" class="{$classes | join:' '}">{$tpl}</a>
                                  {/if}
                              {/macro}
                              {if $pages >= 2}
                                  <div class="pagination">
                                      {macro.link curr_page=$page total=$pages page_key=$page_key tpl='<<'}
                                      {foreach 1..$pages as $num}
                                          {set $classes = ['btn btn-light']}
                                          {if $num@first}{set $classes[] = 'first'}{/if}
                                          {if $num@last}{set $classes[] = 'last'}{/if}
                                          {if $num == $page}{set $classes[] = 'active'}{/if}
                                          <a href="?{$page_key}={$num}" class="{$classes | join:' '}">{$num}</a>
                                      {/foreach}
                                      {macro.link curr_page=$page dir='>' total=$pages page_key=$page_key tpl='>>'}
                                  </div>
                              {/if}
                          {/if}
                    Кирилл
                    11 июня 2017, 15:43
                    0
                    Вопрос такого характера в случае вызова,
                    {set $rows = json_decode(($_modx->resource.options, true)}
                    {foreach $rows as $row}
                        {$row.image}
                    {/foreach}

                    Каким образом прописать условие (ранее из обычного вызова): &where=`{«active»:«1»}`, где active это поле, т.е. указать если не активно тогда изображение не выводим!?
                      Кирилл
                      11 июня 2017, 15:52
                      0
                      Решил так {if $row.active == '1'}
                      Иванов Степан
                      11 июня 2017, 18:19
                      0
                      Добрый день!
                      Подскажите пожалуйста как вывести средствами fenom данную конструкцию, избавившись от квадратных скобок. Вроде читаю тему, понимаю суть, но в голову решение не идёт.
                      {'getImageList' | snippet : [
                      	'tvname' => 'adv.Index',
                      	'tpl' => 'adv_tpl.Index',
                      	'limit' => 6,
                      ]}
                      Содержимое чанка adv_tpl.Index:
                      <div class="col-xs-12 col-sm-6 col-md-4">
                      	<div class="icon-box left media p-0 mb-40">
                      		<div class="media-left pull-left"><i class="[[+icon]] text-theme-colored"></i></div>
                      		<div class="media-body">
                      			<p class="media-heading heading h5">[[+title]]</p>
                      			<p>[[+desc]]</p>
                      		</div>
                      	</div>
                      </div>
                        Максим Кузнецов
                        11 июня 2017, 18:26
                        +1
                        {foreach $_modx->resource['adv.Index'] | fromJSON as $item}
                        	<div class="col-xs-12 col-sm-6 col-md-4">
                        		<div class="icon-box left media p-0 mb-40">
                        			<div class="media-left pull-left"><i class="{$item['icon']} text-theme-colored"></i></div>
                        			<div class="media-body">
                        				<p class="media-heading heading h5">{$item['title']}</p>
                        				<p>{$item['desc']}</p>
                        			</div>
                        		</div>
                        	</div>
                        {/foreach}

                        + ограничить выборку limit'a по MIGX_idx (не помню точное название плейсхолдера)
                          Иванов Степан
                          11 июня 2017, 20:08
                          0
                          Спасибо большое, помогло. Только из этого всего возникла ещё пара вопросов, буду благодарен за помощь:
                          Вывод схожий, но в чанке всё немного по другому:
                          <div class="col-md-1 col-xs-12 [[+_first:is=`1`:then=`col-md-offset-2 col-lg-offset-2`]]">
                          	<img class="adv-img" src="[[+image:phpthumbon=`w=470&h=320&zc=1`]]" alt="">
                          	<p class="text-center font-9 mt-10"><b>[[+desc]]</b></p>
                          </div>
                          Первая проблема с
                          [[+_first:is=`1`:then=`col-md-offset-2 col-lg-offset-2`]]
                          он не хочет работать
                          Вторая с Тем что у поля изображения у меня указан отдельный источник файлов, а тянет он похоже информацию относительно корня обходя эту настройку
                            Максим Кузнецов
                            11 июня 2017, 20:44
                            +1
                            Плейсхолдеры _first и тд создает сниппет getImageList. Так как он в моем примере не используется, вы можете сами методами fenom'a реализовать простой счетчик:

                            {var $counter = 1}

                            И внутри самого цикла:
                            {$counter == '1' ? 'col-md-offset-2 col-lg-offset-2' : ''}
                            	
                            	{$counter = $counter + 1}

                            По поводу второго момента — пропишите недостающий путь источника перед картинкой?
                      Кирилл
                      12 июня 2017, 19:33
                      0
                      Подскажите такой вопрос
                      <select class="wpcf7-select" id='af_position' name="position">
                                          {set $rows = json_decode($_modx->resource.options, true)}
                                          {foreach $rows as $row}
                                              {if $row.active == '1'}
                                                  <option value="{$row.alt}">{$row.alt}</option>
                                              {/if}
                                          {/foreach}
                                  </select>
                      Как в fenom прописать что если нет ни одного option тогда фраза скажем «опций нет», т.е. значение по default???
                        Кирилл
                        19 июня 2017, 01:50
                        1
                        +2
                        Кому надо
                        {set $rows = json_decode($_modx->resource.options, true)}
                                            {var $count=0}
                                            {foreach $rows as $row}
                                                {if $row.active == '1'}
                                                {include ++$count}
                                                    <option value="{$row.alt}">{$row.alt}</option>
                                                {/if}
                                            {/foreach}
                                            {if $count=='0'}
                                             <option value="">Вакансий нет</option>
                                            {/if}
                          Александр
                          28 июня 2017, 01:40
                          0
                          Вариант без лишней переменной.
                          {set $rows = json_decode($_modx->resource.options, true)}
                          {if count($rows)?}
                            {foreach $rows as $row}
                              {if $row.active == '1'}
                                <option value="{$row.alt}">{$row.alt}</option>
                              {/if}
                            {/foreach}
                          {else}
                            <option value="">Вакансий нет</option>
                          {/if}
                            Кирилл
                            28 июня 2017, 02:35
                            0
                            Не выводит что вакансий нет, последние условие не выполняется в данном случае
                              Александр
                              28 июня 2017, 02:44
                              0
                              Исправил. Оказывается ночь уже на дворе!.. Во дела
                              {set $rows = json_decode($_modx->resource.options, true)}
                              {if $rows?}
                                {foreach $rows as $row}
                                  {if $row.active == '1'}
                                    <option value="{$row.alt}">{$row.alt}</option>
                                  {/if}
                                {/foreach}
                              {else}
                                <option value="">Вакансий нет</option>
                              {/if}
                                Кирилл
                                28 июня 2017, 02:47
                                0
                                ))) ага не-а
                                в данном случае поскольку? без: только часть проверки без возвращаемых вариантов! Если не пусто тогда выводим иначе «пофиг»
                            Кирилл
                            28 июня 2017, 01:44
                            0
                            Спасибо, забираю!!!
                            Paul B.
                            24 июня 2017, 23:03
                            0
                            Я смотрю кто-то «подтырил» селект у вордпресса)))
                            Кирилл
                            27 июня 2017, 13:53
                            0
                            ))) есть такое дело!!!
                              Громов Антон
                              27 августа 2017, 13:53
                              0
                              Народ, подскажите, есть migx, в нем поле aml_resource (значения: 2,3,4). Значения — это id-шники страниц.

                              Форыч должен выводить на странице те строки, в которых одно из значений в поле aml_resource совпадает с id текущей страницы.

                              {set $resource_id = $_modx->resource.id}
                              {set $rows = json_decode(25 | resource : 'add_list', true)}
                              {foreach $rows as $row}
                              	{set $aml_resource = [$row.aml_resource]}
                              	{if $resource_id in $aml_resource}
                              		<span>{$row.aml_title}</span>
                              	{/if}
                              {/foreach}
                              Выводится только первое значение.
                              То есть, строка должна вывестись в ресурсах 2,3,4, но выводится только в 2.

                              Где что не так делаю?
                                Громов Антон
                                27 августа 2017, 15:28
                                0
                                Не так надо было массив делать.

                                Меняем
                                {set $aml_resource = [$row.aml_resource]}
                                на
                                {set $aml_resource =  $row.aml_resource|split}
                                и все работает.
                                Владислав
                                29 сентября 2017, 14:42
                                0
                                Подскажите как извлечь поле _last, которое указывает на то что ресурс последний, то есть если _last=>1 то этот элемент последний. Нужно для условия аля
                                {if $row._last == 1}
                                	'здесь дальнейший код'
                                {/if}
                                С такой схемой пробовал, не получается, '$row._last' просто напросто не существует.
                                  Владислав
                                  29 сентября 2017, 14:47
                                  +1
                                  Эхх, сам же нашел решение почитав комменты))
                                  {foreach $rows as $_last => $row}
                                  {if $_last == '1'}
                                  	'код'
                                  {/if}
                                  {/foreach}
                                  Но тут же назрел другой вопрос, а что если нужно и поле _last и поле idx и скажем еще поле _alt для дальнейшего условия? Тобишь:
                                  {foreach $rows as $_last => $row}
                                  {if $_last == '1'}
                                  	'код'
                                  	{if $idx == '1'}
                                  		'еще код'
                                  			{if $_alt != '1'}
                                  				'и еще немного кода'
                                  			{/if}
                                  	{/if}
                                  {/if}
                                  {/foreach}
                                  Естественно это пример а не реальные требования.
                                  Иванов Степан
                                  17 марта 2018, 22:43
                                  0
                                  Всем, привет!
                                  Есть небольшой вопрос:
                                  На проекте есть 4 услуги, у каждой из которых есть по 4 тарифа, через MIGX + foreach тарифы выводятся на нужных страницах в нужных местах.
                                  Но появилась задача, вывести по 1му тарифу из каждой услуги на главной странице. В идеале что бы это были только тарифы с минимальной ценой(повторяющихся нет) или скажем тариф у коготого стоит галочка «На главную».

                                  Как можно реализовать выборку из всех 4х услуг и отобрать нужные элементы по условиям?
                                    Paul B.
                                    18 марта 2018, 13:34
                                    +1
                                    Привет

                                    Было бы проще поработать с кодом, но условный процесс для вывода на главной выглядит так:

                                    1. Вытягиваешь из базы все услуги
                                    2. Запускаешь foreach на полученные услуги в пункте 1
                                    2.1 Сортируешь тарифы в
                                    услугах
                                    по возрастанию
                                    2.2 Применяешь ещё фильтры на нужные тебе тарифы
                                    2.3 Выводишь самый первый тариф после сортировки (он будет минимальный)
                                    3. Foreach закончен. Всё выведено

                                    Надеюсь, я верно понял вопрос и подсказал.
                                    С другой стороны этот топик про MIGX getImageList и fenom…
                                      Иванов Степан
                                      18 марта 2018, 23:07
                                      0
                                      Спасибо. Я прикидывал примерно похожий план, главная загвоздка пока
                                      в пунктах:
                                      1. Вытягиваешь из базы все услуги
                                      2. Запускаешь foreach на полученные услуги в пункте 1
                                      Не могу сообразить как это записать, как вытягивать данные с одной страницы получилось, но с 4х и складывать всё грубо говоря в кучу не понимаю. Даже без фильтрации, скажим если выводить всё со всех страниц
                                        Николай Каленников
                                        19 марта 2018, 09:37
                                        1
                                        0
                                        Вот так можно страницы вытянуть в одну переменную, по перечню id, например:
                                        {var $resources = $_modx->getResources(
                                            ['published' => 1, 'deleted' => 0],
                                            ['resources' => '1,2,3,4', 'sortby' => 'id', 'sortdir' => 'ASC', 'limit' => 10, 'includeTVs' => 'tvname']
                                        )}
                                        {foreach $resources as $resource}
                                            Значение поля {$resource['tvname']}
                                        {/foreach}
                                    Никита Серов
                                    12 февраля 2019, 12:23
                                    0
                                    Добрый день! Подскажите, делаю так:
                                    <div class="row">
                                    	{set $rows = json_decode($_modx->resource.resourcealbum, true)}
                                    	{foreach $rows as $row}
                                    	
                                        <div class="col-xs-6 col-md-2">
                                    		
                                    		<a href="{$row.image}" title="{$_modx->resource.pagetitle}" class="fancybox2" data-fancybox="gallery">
                                    			<img src="{$row.image | phpthumbon : "w=250&h=250&zc=1"}" alt="{$_modx->resource.pagetitle}" title="{$_modx->resource.pagetitle}" class="img-thumbnail">
                                    		</a>
                                    		
                                    	</div>
                                    	{/foreach}
                                    </div>
                                    В итоге нет ни картинки, ни миниатюры.
                                    Что делается не так? Если я добавляю вот это:
                                    <a href="assets/resourceimages/{$_modx->resource.id}/{$row.image}" title="{$_modx->resource.pagetitle}" class="fancybox2" data-fancybox="gallery">
                                    То хотя бы открывается картинка при клике на миниатюру. Но миниатюра идет стандартны noimage. Что не так?
                                    Что прописать вот сюда, чтобы миниатюра нормальная появлялась?
                                    <img src="{$row.image | phpthumbon : "w=250&h=250&zc=1"}" alt="{$_modx->resource.pagetitle}" title="{$_modx->resource.pagetitle}" class="img-thumbnail">
                                      iWatchYouFromAfar
                                      12 февраля 2019, 13:38
                                      0
                                      Очевидно же что надо дописать путь к источнику файлов.

                                      1. Почитайте — modx.pro/howto/16490
                                      2. Воспользуйтесь
                                      print
                                      и посмотрите что живет у вас в переменной
                                        Никита Серов
                                        12 февраля 2019, 14:44
                                        0
                                        В переменной у меня живет: имя файла.jpg. Но как подставить адрес вот сюда, правильно, чтобы все заработало?
                                        <img src="{$row.image | phpthumbon : "w=250&h=250&zc=1"}" alt="{$_modx->resource.pagetitle}" title="{$_modx->resource.pagetitle}" class="img-thumbnail">
                                          iWatchYouFromAfar
                                          12 февраля 2019, 15:11
                                          0
                                          Насколько мне известно phpthumbon хранит обработанные изображения в папке кэша. Я её точно не помню, вы можете посмотреть в настройках компонента и подставить этот путь туда.
                                            Денис Чубенко
                                            13 февраля 2019, 00:13
                                            0
                                            Как-то так можно:
                                            {set $image='assets/resourceimages/'~$_modx->resource.id~'/'~$row.image}
                                            <a href="{$image}" title="{$_modx->resource.pagetitle}" class="fancybox2" data-fancybox="gallery">
                                            	<img src="{$image | phpthumbon : "w=250&h=250&zc=1"}" alt="{$_modx->resource.pagetitle}" title="{$_modx->resource.pagetitle}" class="img-thumbnail">
                                            </a>
                                              iWatchYouFromAfar
                                              13 февраля 2019, 08:37
                                              0
                                              Так можно только если не обрабатывать изображение через phpthumbon. Иначе путь получается другим.
                                                Денис Чубенко
                                                13 февраля 2019, 08:44
                                                0
                                                Почему другой? Дальше он его обрабатывает $image | phpthumbon. А в кеше как вы советуете, нет ни чего, поскольку в его варианте $row.image | phpthumbon, phpthumbon не находит изображение, не обрабатывает его и подставляет заглушку.
                                                  iWatchYouFromAfar
                                                  13 февраля 2019, 08:53
                                                  0
                                                  Я думаю что если человек догадался дописать путь в ссылку:
                                                  <a href="assets/resourceimages/{$_modx->resource.id}/{$row.image}" title="{$_modx->resource.pagetitle}" class="fancybox2" data-fancybox="gallery">

                                                  То он догадается и дописать путь в сам путь к файлу? Иначе это очень неумный человек.
                                                  <img src="assets/resourceimages/{$row.image | phpthumbon : "w=250&h=250&zc=1"}" alt="{$_modx->resource.pagetitle}" title="{$_modx->resource.pagetitle}" class="img-thumbnail">

                                                  Если он это сделал и у него не заработало, то phpthumbon добрался таки до файла, обработал его согласно опциям и (насколько я помню) вместо существующего пути файла он подставляет свой путь, с обработанным изображением, которое хранится в директории указанной в системных настройках.

                                                  Такие выводы я сделал заочно, ибо не использую phpthumbon и не вижу что там у человека получается. :) Возможно конечно я не прав, человек то пропал и ничего не ответил, а возможно кто-то с такой же проблемой столкнется. Помогай вот теперь…
                                                    Никита Серов
                                                    13 февраля 2019, 09:30
                                                    0
                                                    Но если вот это прописать, я конечно попробую, но как я понимаю, что изображение обработанное падает не в папку assets/resourceimages/{$_modx->resource.id}/, а в какую-то другую.
                                                    Сейчас проверю, отпишусь.
                                                    <img src="assets/resourceimages/{$row.image | phpthumbon : "w=250&h=250&zc=1"}" alt="{$_modx->resource.pagetitle}" title="{$_modx->resource.pagetitle}" class="img-thumbnail">
                                                      Денис Чубенко
                                                      13 февраля 2019, 09:32
                                                      +2
                                                      <img src="assets/resourceimages/{$row.image | phpthumbon : "w=250&h=250&zc=1"}"
                                                      в таком виде phpthumbon файл не видит.
                                                      <img src="{'assets/resourceimages/'~$_modx->resource.id~'/'~$row.image | phpthumbon : "w=250&h=250&zc=1"}"
                                                      вот так возможно и увидит.
                                                      Есть не большая тонкость.
                                                      <a href="assets/resourceimages/{$_modx->resource.id}/{$row.image}"
                                                      здесь собирается путь не посредственно в HTML и потом картинку видит именно браузер, а надо что бы ее увидел сначала сниппет, поэтому путь к картинке надо собирать раньше.
                                                        iWatchYouFromAfar
                                                        13 февраля 2019, 09:33
                                                        0
                                                        Да тут вы правы, ваш вариант выше с занесением пути в переменную сразу конечно лучше чем подставлять путь вручную везде.
                                                          Никита Серов
                                                          13 февраля 2019, 09:39
                                                          0
                                                          Попробовал. Не получилось
                                                          Вот что получилось по факту в коде сайта:
                                                          <img src="assets/resourceimages/222//assets/cache_image/noimage_250x250_acd.jpg"
                                                          Никита Серов
                                                          13 февраля 2019, 09:36
                                                          0
                                                          Разумеется это не помогло, теперь вместо заглушки — просто пусто.
                                                            iWatchYouFromAfar
                                                            13 февраля 2019, 09:38
                                                            0
                                                            Напишите мне в личку, если дадите доступ к сайту я посмотрю, исправлю и объясню в чем дело. У меня нет под рукой проекта где я могу проверить работу phpthumbon + migx.
                                              Никита Серов
                                              13 февраля 2019, 10:08
                                              0
                                              Разобрался.
                                              Почему-то заработало, только вот в таком виде.
                                              <div class="row">
                                              	{set $rows = json_decode($_modx->resource.resourcealbum, true)}
                                              	{foreach $rows as $row}
                                                  <div class="col-xs-6 col-md-2">
                                              		<a href="assets/resourceimages/{$_modx->resource.id}/{$row.image}" title="{$_modx->resource.pagetitle}" class="fancybox2" data-fancybox="gallery">
                                              			<img src="
                                              			{'phpthumbon' | snippet : [
                                              			'input' => 'assets/resourceimages/'~$_modx->resource.id~'/'~$row.image,
                                              			'options' => '&w=250&h=250&zc=1',
                                              			]
                                              			}
                                              			" alt="{$_modx->resource.pagetitle}" title="{$_modx->resource.pagetitle}" class="img-thumbnail">
                                              		</a>
                                              		
                                              	</div>
                                              	{/foreach}
                                              </div>
                                              Спасибо Денису за подсказку с написанием пути.
                                                А кто-то ковырял migxLoopCollection + Fenom при использовании MIGXdb и multiple formtabs?
                                                Есть три конфигурации для мультиформ, одна основная, которая указывается в тв для ресурса и две как переключатели.
                                                Столкнулся с такой проблемой что путем:
                                                {set $rows = json_decode($_modx->resource.mytvname, true)}

                                                выводятся только поля основной migx конфигурации.
                                                А вот когда использую сниппет:
                                                [[migxLoopCollection?
                                                                &classname=`myclass`
                                                                &packageName=`mypackage`
                                                                &limit=`0`
                                                                &debug=`0`
                                                            ]]
                                                Выводит все поля всех связанных конфигураций. Вывести бы все поля через Fenom, было бы идеально.
                                                  Denis Bushaev
                                                  03 декабря 2020, 12:45
                                                  0
                                                  Просто укажи параметр class нужный и проверь чтоб sortby поле существовало в схеме твоего класса.
                                                  Igor
                                                  20 февраля 2022, 05:06
                                                  0
                                                  Задача Вывести на Fenom
                                                  [[getImageList? 
                                                        &tvname=`gallery`
                                                        &tpl=`@CODE: <img src="[[+image]]" alt="[[+title]]">`
                                                        &where=`{"published":"1"}`
                                                      ]]
                                                  Решение
                                                  {set $rows = json_decode($_modx->resource.imageGallery, true)}
                                                                                              {foreach $rows as $row}
                                                                                                  {if $row.published == '1'}
                                                                                                  <dl class='gallery-item'>
                                                                                                  <dt class='gallery-icon landscape'>
                                                  <a href='{("assets/images/res/{$_modx->resource.id}/" ~ $row.image)}'><img width="300" height="300" src="{("assets/images/res/{$_modx->resource.id}/" ~ $row.image)| phpthumbon : "w=300&h=300&zc=1"}" class="attachment-thumbnail" /></a>
                                                  														</dt>
                                                                                                      <dd></dd>
                                                                                                  </dl>
                                                                                                  {/if}
                                                                                              {/foreach}
                                                    Юрий Ханжин
                                                    26 декабря 2022, 19:04
                                                    0
                                                    Добрый день. Подскажите пожалуйста, может кто сталкивался: разделить поочередно в колонки бутстрап 2 migx_tv.

                                                    col-lg-6>migx_tv_1 | col-lg-6>migx_tv_2
                                                    col-lg-6>migx_tv_1 | col-lg-6>migx_tv_2


                                                    Пытался вывести так:
                                                    {set $arr_tv = ['migx_tv_1', 'migx_tv_2']} 
                                                    <div class="container">
                                                        <div class="row">
                                                            {foreach $arr_tv as $item}
                                                            	{set $rows = 15 | resource : $item | fromJSON}
                                                            	{foreach $rows as $row}
                                                                    <div class="col-lg-6">
                                                                            {$row.file}" - вытаскиваю из migx_tv_1
                                                                    </div>
                                                                    
                                                                    <div class="col-lg-6">
                                                                        {$row.img} - вытаскиваю из migx_tv_2
                                                                    </div>
                                                                    
                                                            	{/foreach}
                                                            {/foreach}
                                                        </div>
                                                    </div>
                                                    Сначала пробегает по первому migx_tx, и вторая колонка соответственно пустая, затем бежит по второму migx_tv — соответственно нечего вложить в первую колонку.

                                                    Четное и нечетное — соответственно тоже просто idx не выводит migx_tx по этому принципу.

                                                    Я конечно могу версткой вложить в колонку — все значения каждого из migx_tv, но мне интересно можно ли межевать значения из массива между собой.
                                                      Алексей Смирнов
                                                      26 декабря 2022, 19:16
                                                      0
                                                      Мы не знаем что у вас в полях ['migx_tv_1', 'migx_tv_2'] migx лежит…
                                                      Но по логике, вам нужно проверять приходит 1й migx или 2й.
                                                      это делаетя так:
                                                      {set $arr_tv = ['migx_tv_1', 'migx_tv_2']} 
                                                      <div class="container">
                                                          <div class="row">
                                                              {foreach $arr_tv as $item}
                                                              	{set $rows = 15 | resource : $item | fromJSON}
                                                              	{foreach $rows as $row}
                                                                          {if $item == 'migx_tv_1'}
                                                                              <div class="col-lg-6">
                                                                                      {$row.file}" - вытаскиваю из migx_tv_1
                                                                              </div>
                                                                          {else}
                                                                              <div class="col-lg-6">
                                                                                  {$row.img} - вытаскиваю из migx_tv_2
                                                                              </div>
                                                                          {/if}                
                                                              	{/foreach}
                                                              {/foreach}
                                                          </div>
                                                      </div>
                                                        Юрий Ханжин
                                                        26 декабря 2022, 19:29
                                                        0
                                                        Предположим каждый из migx_tv — массив из 4 объектов. В Вашем примере он тогда по порядку вытащит из первого массива TV элемент {$row.file}
                                                        <div class="col-lg-6">{$row.file}</div>
                                                        <div class="col-lg-6">{$row.file}</div>
                                                        <div class="col-lg-6">{$row.file}</div>
                                                        <div class="col-lg-6">{$row.file}</div>
                                                        , а потом пробежится по второму массиву и вытянет объекты с элементом {$row.img}
                                                        <div class="col-lg-6">{$row.img}</div>
                                                        <div class="col-lg-6">{$row.img}</div>
                                                        <div class="col-lg-6">{$row.img}</div>
                                                        <div class="col-lg-6">{$row.img}</div>
                                                        Мне нужно, что бы параллельно (первый TV > первый idx) + (второй TV > второй idx)
                                                          Алексей Смирнов
                                                          26 декабря 2022, 21:39
                                                          +1
                                                          Тогда вы должны определиться какой migx основной и сделать что-то типа такого:
                                                          <div class="container">
                                                              <div class="row">
                                                                  {set $arr = 15 | resource : 'migx_tv_1' | fromJSON}
                                                                  {set $rows = 15 | resource : 'migx_tv_2' | fromJSON}
                                                                  	{foreach $arr as $row index=$index}
                                                                                  <div class="col-lg-6">
                                                                                          {$row.file}" - вытаскиваю из migx_tv_1
                                                                                  </div>
                                                                                  <div class="col-lg-6">
                                                                                      {$rows[$index]['img']} - вытаскиваю из migx_tv_2
                                                                                  </div>
                                                                  	{/foreach}
                                                              </div>
                                                          </div>
                                                            Юрий Ханжин
                                                            27 декабря 2022, 05:37
                                                            0
                                                            Да, это то, что нужно. Мой интерес удовлетворен. Огромное благодарю.
                                                      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                                      67