01 октября 2017, 12:08 эту строчку лучше вынести за foreach, т.к. лучше один раз присвоить переменной, чем каждый раз обращаться.Да не досмотрел, спасибо. нужен вложенный foreachну об этом тоже подумал, только вот а выводить потом как, не могу просто додуматься как в $output потом еще и с вложенного цикла вывести плейсхолдеры вложенного массива. Вопросы / Fenom вместо getImageList MIGx 48 0
01 октября 2017, 10:28 Премного извиняюсь, но не подскажете что делать если нужно так же обрабатывать еще и вложенные поля migx? То есть допустим есть MIGx поле 'tv_name1' и в него вложено 'tv_name2'. Массив получается имеет вот такой вот вид: Array ( [MIGX_id] => 1 [title_name] => "значение" [address] => "значение" [tv_name2] => [{"MIGX_id":"1","youtube_video":"значение"}] [idx] => 1 [total] => 4 [_first] => 1 ) Вопросы / Fenom вместо getImageList MIGx 48 0
01 октября 2017, 09:25 Спасибо, так тоже работает, ниже нашел решение через echo, но думаю что ваш вариант предпочтительнее) Вопросы / Fenom вместо getImageList MIGx 48 0
01 октября 2017, 09:22 Сам нашел решение: <?php //$docid - id документа, если не задано берем id текущего документа //$tvname - поле MIGx //$chunk - чанк или @INLINE if (empty($docid)) { $docid = $modx->resource->get('id'); } $tv = $modx->getObject('modResource',$docid); $tv = $tv->getTVValue($tvname); $rows = $modx->fromJSON($tv); reset($rows); $_first = key($rows); end($rows); $_last = key($rows); $total = count($rows); foreach ($rows as $key => $row) { $row['idx'] = $key+1; $row['total'] = $total; if ($key === $_first) $row['_first'] = 1; if ($key === $_last) $row['_last'] = 1; if ($key % 2) $row['_alt'] = 1; $pdo = $modx->getService('pdoTools'); if (empty($chunk)) { $output = '<pre>' . $pdo->getChunk('', $row) . '</pre>'; } else { $output = $pdo->getChunk($chunk, $row, false); //$output = $pdo->fastProcess($output); } echo $output; }Просто return надо поменять на echo и поместить в цикл. Вопросы / Fenom вместо getImageList MIGx 48 0
01 октября 2017, 07:59 Подскажите пожалуйста что я делаю не так, написал сниппет, потому как предложенное здесь решение не совсем меня удовлетворяет, но через сниппет выводятся только значения последнего элемента. <?php //$docid - id документа, если не задано берем id текущего документа //$tvname - поле MIGx //$chunk - чанк или @INLINE if (empty($docid)) { $docid = $modx->resource->get('id'); } $tv = $modx->getObject('modResource',$docid); $tv = $tv->getTVValue($tvname); $rows = $modx->fromJSON($tv); reset($rows); $_first = key($rows); end($rows); $_last = key($rows); $total = count($rows); foreach ($rows as $key => $row) { $row['idx'] = $key+1; $row['total'] = $total; if ($key === $_first) $row['_first'] = 1; if ($key === $_last) $row['_last'] = 1; if ($key % 2) $row['_alt'] = 1; $pdo = $modx->getService('pdoTools'); if (empty($chunk)) { $output = '<pre>' . $pdo->getChunk('', $row) . '</pre>'; } else { $output = $pdo->getChunk($chunk, $row, false); //$output = $pdo->fastProcess($output); } } //return print_r($placeholder); return $output;А еще вопрос, будет ли таким способом кешироваться чанк задаваемый в параметре chunk в виде файла? Вопросы / Fenom вместо getImageList MIGx 48 0
[Решено] Обновление MODX 3.2.2 компонент FetchIt ломает сайт PHP 8.3 FetchIt пока не адаптирован к MODX 3
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Расскажите пожалуйста как вы настраиваете сайт на MODX 3 чтобы был dev, prod, stage. Можете описать workflow? Допустим у меня 80% — это магазины, там клиенты, продажи, все онлай...
MaxNotify Обновление компонента 1.3.0-pl (22.07.2026) — добавлено автоматическое получение полей через msOrder->toArray(); — массивы и объекты безопасно пропускаются; — стандартные...
MyFavorites MyFavorites — 3.0.0-beta Первая версия для MODX Revolution 3.x — компонент полностью переписан с нуля (PHP >= 8.4, namespaced-ядро MODX 3, PSR-4, сервис-ориентированная архит...
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Для начала перейдем на Markdown, а дальше будет видно
MaxNotify3 Вышло обновление 1.3.0-pl (20.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет maxNotify3FormIt; — добавлены уведомления о заявках SendIt через hook-с...
ну об этом тоже подумал, только вот а выводить потом как, не могу просто додуматься как в $output потом еще и с вложенного цикла вывести плейсхолдеры вложенного массива.
Просто return надо поменять на echo и поместить в цикл.
А еще вопрос, будет ли таким способом кешироваться чанк задаваемый в параметре chunk в виде файла?