Как я понял «template» => 2 это означает что выбираем только категории. Это выборка документов с шаблоном 2 (Категория). Собственно, у нас только категории с таким шаблоном. По этому принципу можно выбирать любые документы с определенными шаблонами. переменной $parent у меня не оказалось) но поставил статичную — нормально. Собственно да, так и предполагалось, что вы укажите там какую-то свою переменную. Теперь еще вопрос как узнать если у категории подкатегории? можно конечно перебрать каждую категорию такие же процессором, но вдруг еще как то можно? У всякого документа есть переменная parent, в которой указан id родителя, и по ней можно понять в корне сайта документ находится или нет. А вот признака есть дети или нет — такого нет. Поэтому только через выборку. Самый простой способ — через $modx->getCount(); $modx->getCount('modResource', array( "parent" => $resource_id, "deleted" => 0, "hidemenu" => 0, "published" => 1 ));
СПасибо. Как я понял «template» => 2 это означает что выбираем только категории. переменной $parent у меня не оказалось) но поставил статичную — нормально. Теперь еще вопрос как узнать если у категории подкатегории? можно конечно перебрать каждую категорию такие же процессором, но вдруг еще как то можно?
Сорри, моя вина. В пример забыл указать ns=«modxsite». Это указывает в папки какого неймспейса искать процессоры. Полный пример: {assign var=params value=[ "where" => [ "parent" => $parent, "template" => 2 ] ]} {processor action="web/getdata" ns="modxsite" params=$params assign=categories}
[2014-01-17 18:52:11] (ERROR @ /index.php) Processor /home/.../core/model/modx/processors/web/getdata.php does not exist; Array ( ) {processor action="web/getdata" params=$params assign=categories} {var_dump($categories)} и как оказалось у меня и в правду такой папки нет ?
По TV-шкам уточняю: ? По поводу «из последней строчки выборки»: у нас при выборке на один документ может быть сразу несколько результирующих строк (к примеру, если у документа несколько значений TV-параметров, то и строк будет *N этих строчек TV). Но когда данные процессор получает, он все эти строки в итоге набивает в уникальные элементы документов, чтобы на один $object мы имели только по одному уникальному документу с массивом ТВшек. Но в SQL-запросе-то эти колонки ведь выводятся, поэтому одну из строчек мы и видим в результате. 2. Чтобы получить картинки категорий, вам и надо получить документы именно категорий, а не документов. Процессор web/catalog/category/getdata имеет все-таки чуть-чуть другое назначение, а именно получение всех дочерних категорий. Если вам нужны дочерние категории только в каком-то одном разделе, то это можно сделать через базовый getdata-процессор: {assign var=params value=[ "where" => [ "parent" => $parent, "template" => 2 ] ]} {processor action="web/getdata" params=$params assign=categories}
$s = $modx->runSnippet('getImageList', array( 'tvname' => 'gallery', 'tpl' => '@CODE: <img src="[[+image]]" class="img-thumbnail img-item"/>', 'limit' => 1, 'randomize' => true, 'docid' => 4
));
print $s; То есть выводится рандомная картинка. 4 — это id документа с мигх-картинками. Собственно это ваш код, поэтому все должно работать. 2. Я, как обычно, формирую пути в процессоре. А потом просто использую массив картинок $object.gallery путь к изображению выводится одинаковый. То есть картинка выводится, но не работает рандом или что?
так по картинке частично нашел switch($this->getProperty('image_url_schema')){ case 'base': ....
case 'full': откуда берется этот параметр?
Еще вопросы лучше тут задавать или новый топик создавать? В общем прикрепил дополнительное поле изображения к категории, естественно он в массиве TV. Но в товарах то он в image. Где это происходит? s3.hostingkartinok.com/uploads/images/2014/01/1213a35352d3ce8a520d3f6755ec42fb.png Второй вопрос, мне нужно вывести список подкатегорий определенной категории пробовал и так {processor action=«web/catalog/category/getdata» ns=«modxsite» assign=result category_id=126} и так {processor action=«web/catalog/category/getdata» ns=«modxsite» assign=result params=«category_id=126»} выводит все подряд
Для каждого ресурса в шаблоне следующий вызов getImageList.
Путь в источнике файлов задан [[migxResourceMediaPath? &pathTpl=assets/images/{id}/
]] {assign var=getImageListParam value=[
'tvname' => Images,
'tpl' => '@CODE: <img src="[[+image]]" class="img-thumbnail img-item"/>',
'limit' => 1,
'randomize' => true,
'docid' => {$object_sale.id}
]}
{snippet name='getImageList' assign=image params=$getImageListParam parse=true}
{$image}