А я подумал что так не прокатит… вот судя по этому: https://github.com/modxcms/revolution/blob/master/core/xpdo/om/xpdoquery.class.php#L401 и этому: https://github.com/MODX-Club/modxSite/blob/master/core/components/modxsite/processors/site/web/getlist.class.php#L114 Твой вариант будет работать?
Хорошо. В новой версии getdata-процессоров изучу возможность в xPDO указывать собственные индексы. Но насколько я могу судить при беглом осмотре, этого нет там. Будем думать.
Все гораздо проще: ..... array( "sort" => "field1 DESC, field2", "dir" => "ASC", ),... // result ->sortby("field1 DESC, field2 ASC");
… foreach ($product as $output) { ... Да, я уже выяснил, что это с этого foreach вылезает массив. Спасибо огромное за помощь!!!
Думаю вот это: ... foreach ($product as $output) { ... Оставь просто: <?php $output = ""; $ids = $modx->resource->get('id'); if ($product = $modx->getObject('msProduct', $ids)) { $colors = $product->get('color'); $putkart = $product->get('put_kartinka'); $nackart = $product->get('nacenka_kartinka'); foreach ($colors as $vid => $cval) { $output .= $modx->getChunk('Test', array( 'color' =>$colors[$vid], 'nacenka' => $nackart[$vid], 'putkart' => $putkart[$vid])); } } return $output;
Спасибо, добрый человек! $output .= $product->get('pagetitle'); //(сомневаюсь что тебе это нужно здесь Это да, мне тут не нужно, ты прав :) Все выводит отлично, с небольшими изменениями твоего кода, но самое главное, ты меня «пнул» в нужном направлении… Но почему-то выводит помимо блоков с информацией еще и Array. Откуда берется не пойму. Вот полностью рабочий код: <?php $output = ""; $ids = $modx->resource->get('id'); if ($product = $modx->getObject('msProduct', $ids)) {
foreach ($product as $output) {
$colors = $product->get('color');
$putkart = $product->get('put_kartinka');
$nackart = $product->get('nacenka_kartinka');
foreach ($colors as $vid => $cval) {
$output .= $modx->getChunk('Test', array(
'color' =>$colors[$vid],
'nacenka' => $nackart[$vid],
'putkart' => $putkart[$vid]));
}
}
} return $output;
Если длина массивов (кол-во элементов) одинакова то вот: <?php
$output = "";
$ids = $modx->resource->get('id');
if ($product = $modx->getObject('msProduct', $ids)) {
$output .= $product->get('pagetitle'); //(сомневаюсь что тебе это нужно здесь :)
foreach ($product as $output) {
$colors = $product->get('color');
$putkart = $product->get('put_kartinka');
$nackart = $product->get('nacenka_kartinka');
foreach ($colors as $vid => $cval) {
$output .= $modx->getChunk('Test', array('color' =>$color, 'nacenka' => $nackart[$vid], 'putkart' => $nackart[$vid]));
}
}
}
return $output;
Вот короче как мог: GitHub :) может пригодится… Можно использовать так: — 1) $params = [ 'sort' => 'parent', 'dir' => 'ASC' ] — 2) $params = [ 'sort' => ['parent', 'menuindex'], 'dir' => 'ASC' ] — 3) $params = [ 'sort' => ['parent' => 'ASC', 'menuindex' => 'DESC'] ] — 4)2) $params = [ 'sort' => ['parent' => 'DESC', 'menuindex'], 'dir' => 'ASC' ]