Разделы

  
 

[REVO] getResource просто перестает работать при большом кол-ве ресурсов

Добрый день!

Вопрос к знатокам REVO, может кто сталкивался c такой проблемой:

есть вывод товаров с TV

http://i-rcenter.ru/katalog-produkczii/setevoe-oborudovanie/montazhnyie-shkafyi-i-stojki/apc/otkryityie-motnazhnyie-stojki-apc/

Связка самая обычная (чуть иже напишу почему вызов некешируемый):

[[!getResources? &parents=`[[*id]]` &depth=`0` &tpl=`product-item-main` &includeTVs=`1` &processTVs=`0` &limit=`0` &sortby=`{"menuindex":"ASC"}` &where=`{"template:=":2}`]]


Чанк product-item-main

<tr class="product-line">
  <td class="article"><strong><a href="[[~[[+id]]]]">[[+tv.article]]</strong></td>
  <td class="pagetitle"><a href="[[~[[+id]]]]">[[+pagetitle]]</a></td>
  [[+tv.Цена:is=``:then=``:else=`<td class="price"><nobr>[[+tv.Цена:num_format]] р.</nobr></td>`]]
  [[+tv.Цена2:is=``:then=``:else=`<td class="price"><nobr>[[+tv.Цена2:num_format]] р.</nobr></td>`]]
  [[+tv.Цена3:is=``:then=``:else=`<td class="price"><nobr>[[+tv.Цена3:num_format]] р.</nobr></td>`]]
  [[+tv.Цена4:is=``:then=``:else=`<td class="price"><nobr>[[+tv.Цена4:num_format]] р.</nobr></td>`]]
  [[+tv.Цена5:is=``:then=``:else=`<td class="price"><nobr>[[+tv.Цена5:num_format]] р.</nobr></td>`]]
</tr>


в общем ничего сверхъестественность, НО при большом кол-ве товаров,

http://i-rcenter.ru/katalog-produkczii/setevoe-oborudovanie/montazhnyie-shkafyi-i-stojki/apc/dopolnitelnoe-oborudovanie-dlya-shkafov-apc/

getResource работает только некешированным, при вызове [[getResources ]] список товаров не выводится.

Если добавить limit=10 и т.д. то вызов работает и с кешем, тоесть как я понял по логике где-то, что-то превысило какието установки и снипет просто завершился, но вот что и куда копать подскажите плиз. Пробовал debug=`true`/1 никакого толка.

Может кто сталкивался, а то 15 секунд на простую страницу для меня не вариант (

неправильная работа getResources

Опять непотное в работе getResources. При выводе списка статей первую статью выводит как положено аннотацией, а вторую(пока их всего две) выводит полностью. В чем можннт быть проблема? И еще при выводе списка статей не выводит изображение через TV-параметр и вместо названия месяца выводит квадратики.

[Решено] [[REVO]]проблемы с getResources

Непонятно из-за чего getResources перестал выводить список статей, вместо этого на страницу он выводит то что вывидете ниже:

т.е. он сразу выводит статьи все на одной странице + еще и свою информацию как будто я не использую чанк для вывода статьи.

[[Revo]]вывод в превью новости изображения

как вывести в превью новости изображение? место под него есть, оно формируется tv-параметром, а как прикрутить само изображение? Использую MODx Revo и getResources.

[REVO] Сложный запрос tvFilters в getResources

Попытаюсь понято сформулировать вопрос, если нет, то спрашиваете. Заранее Спасибо за ваши ответы.

tvFilters Генерируется автоматически
cat_filler является чекбоксами

priceon==1,cat_price<=40000,cat_price>=0,cat_filler==||cat_filler==||cat_filler==Мемориформ||cat_filler==||cat_filler==,icon<>no0


Как мне отделить все значения «или» от значений «и»?

То есть значения «и» должны выполняться независимо от значений «или».

К примеру у меня
priceon==1
, а
cat_filler==Мемориформ


Объект имеет значения
priceon==0
, а
cat_filler==Мемориформ


Он попадает под значение cat_filler, но не попадает под значение priceon.
Поскольку у cat_filler логика «или», то объект выводится.

Мне нужно, что бы cat_filler фильтровался но имел меньший приоритет чем другие.

[REVO] getResources Gallery TV

Здравствуйте. Необходимо вывести список элементов через getResources. При этом при переходе по элементу попадаем на страницу с содержимым альбома(список превью картинок) Gallery. Сейчас работает следующим образом:
Создаю TV параметр Тип ввода: Список Ресурсов
Возможные значения: @SELECT `name` FROM `modx_gallery_albums`
В чанке для элемента getResources к ссылке на ресурс добавляю ?galAlbum=[[+tv.photo]].
И либо на странице или в шаблоне вставляю вызов [[!GalleryAlbums?… ]]

Возможно есть другие варианты решения?
И уточняющие вопросов:
1. При создании дочерних ресурсов шаблон они унаследуют от родителя? Или можно определить программно какой шаблон будет у потомков того или иного документа?
2. Где будет правильнее разместить вызов [[!GalleryAlbums?… ]]?
3. Для того чтобы у getResources можно было задавать чанк-шаблон элемента. Необходимо его изменять или же есть функционал уже заложен для этого?..

[REVO] как используя getResources вывести по 3 документа в блок(линию)

Здравствуйте. В дизайне задумано что бы элементы выводились по 3 в линию при этом каждая «троица» находится в блоке . Следовательно в чанке можно воспользоваться параметром [[+idx]] и использовав условие деления по модулю на 3, вставлять дополнительный код. Установив дополнительно IF addon. Получилось такое вот решение:

[[!If?
   &subject=`[[+idx]]`
   &operator=`%`
   &operand=`3`
   &operandr=`1`
   &then=`<div class="line">`
]]
<div class="element first">
  <div class="title"><h2><a href="[[~[[+id]]]]">[[+pagetitle]]</a></h2></div>
  <div class="description">[[+introtext:default=`[[+content:ellipsis=`300`]]`]]<a href="[[~[[+id]]]]">Подробнее  >></a></div>
</div>
[[!If?
   &subject=`[[+idx]]`
   &operator=`%`
   &operand=`3`
   &operandr=`0`
   &then=`</div>`
   &else=`[[!If?
   &subject=`[[+idx]]`
   &operator=`==`
   &operand=`[[+last]]`
   &then=`</div>`
]]`
]]


и для того что бы это всё заработало изменяем сниппет IF добавив правило.

case '%':
  $output = (($subject % $operand==$operandr) ? $then : (isset($else) ? $else : ''));
  break;


Вопрос: может существует документированный «правильный» способ решения данной задачи?

P.S. использовать tpl_{n} не считаю правильным решением.

Телепрограмма

Привет. Помогите пожалуйста мне с телепрограммой. Нужен вывод значений полей TV в отдельные области телепрограммы и их сортировка по дате.(телепрограмма на N число, которая будет перекидывать на документ по ссылке [сайт]/schedule/dd-mm-yy(24.04.2012))
картинка тут
Более понятная картинка (Я надеюсь)
  • -3
  • 24 апреля 2012, 03:54
  • aolko
  • 8

[[REVO РЕШЕНО]] как получить значение Id для первого "внучатого" ресурса.

То есть ищет дочерний ресурс для дочернего, самого верхнего в меню.

<?
$docid = $modx->getOption('docid',$scriptProperties,3);
$child = $modx->getChildIds($docid,2,array('context' => 'web'));
$grandchild = $modx->getChildIds($child['0'],2,array('context' => 'web'));
return $grandchild['0'];
?>

Сделал так

getresources параметр &idx

Мне кажется, что в версии getresources-1.4.2-pl параметр &idx не работает.
Мне нужно вывести 2 новости из родительского ресурса news сдедующим образом:
на странице находится новость, под ней 2 аннотации других новостей, которые являются предыдущими дочерними ресурсами ресурса news. Получается, что они выводятся, начиная с первой, так как idx по умолчанию равен 1. Мне нужно, чтобы аннотации были предыдущими относительно просматриваемой новости. Пробую так:

[[!getResources?
&tpl=`tpl_news_bottom_news_page`
&limit=`2`
&includeTVs=`1`
&processTVs=`1`
&tvPrefix=``
&idx=`[[*id]]`
&parents=`2`]]

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

Подскажите, пожалуйста, решение проблемы.
Также может быть можно использовать &where и отсекать новости новее просматриваемой. Но к сожалению, не нашел понятных примеров, как это сделать.
  • +1
  • 8 апреля 2012, 01:44
  • xlinuz
  • 6