171 похожих чатов

Парни, не знаете, как вывести всех производителей определенной категории по

ID?

50 ответов

36 просмотров

Поскольку у производителя нет привязки к категории, я бы написал плагин на сохранение товара и записывал выбранных производителей в ТВ у родителя.

<?php $parent = $modx->getOption('parent', $scriptProperties, $modx->resource->id); $arRes = []; $resources = $modx->getIterator('modResource', ['parent' => $parent, 'class_key' => 'msProduct']); if(is_object($resources)){ foreach($resources as $resource){ $arRes[] = $resource->get('id'); } } $q = $modx->newQuery('msVendor'); $q->innerJoin('msProductData', 'msProductData', 'msProductData.vendor = msVendor.id'); $q->innerJoin('msProduct', 'msProduct', array( 'msProductData.id = msProduct.id', 'msProduct.deleted' => 0, 'msProduct.published' => 1 )); if(isset($arRes)){ $q->where(['msProductData.id:IN' => $arRes]); } $q->groupby('msVendor.id'); $q->sortby('name','ASC'); $output = []; if ($q->prepare() && $q->stmt->execute()) { while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) { $output[] = $row; } } //$modx->log(1, print_r($scriptProperties, 1), '', 'listVendors.php'); return $output; $pdoTools = $modx->getService('pdoTools'); return $pdoTools->getChunk($scriptProperties['tpl'], ['vendors' => $output]);

Ozzy- Автор вопроса
Иван Бочкарев
<?php $parent = $modx->getOption('parent', $script...

Вчера где-то находил это пробовал, выводится array [[!brandParent? &parents=`15` ]] Так же?

Ozzy
Вчера где-то находил это пробовал, выводится array...

попробуй использовать pdoResources и class msVendor

Ozzy
Вчера где-то находил это пробовал, выводится array...

Буду у пк гляну в проекте. Я с телефона скопировал код

Ozzy- Автор вопроса
Sentinel
попробуй использовать pdoResources и class msVendo...

Я это в меню пытаюсь вывести, а pdoResources внутри pdoMenu не работает - пробовал

Ozzy
Вчера где-то находил это пробовал, выводится array...

выводится array Так нужно далее просто массив разобрать и все

Ozzy- Автор вопроса
Иван Бочкарев
выводится array Так нужно далее просто массив разо...

А как и где его разобрать? В снипете или в выводе снипета как-то?

Ozzy
А как и где его разобрать? В снипете или в выводе ...

Если ты не используешь fenom, то в сниппете, в противном случае можно прям после вызова сниппета

Ozzy- Автор вопроса
Pavel Androsov
tpl нет

[[!brandParent? &parents=`1637` &tpl=`@INLINE [[+id]]` ]] Как-то так?

Ozzy
[[!brandParent? ...

Нет. У тебя же сниппет отдаёт массив, а надо чтобы парсил чанк. В сниппете там где возвращается массив, напиши $modx->parseChunk($tpl, $array). Ну и в вызове передай имя чанка. А а самом чанке будут доступны элементы массива как плейсхолдеры [[+id]]

Ozzy- Автор вопроса
Ozzy
screenshot 😵‍💫 сорри, но не догоняю как, куда вставить(

когда ты вызываешь return - все что снизу у тебя уже не отрабатывает

Артур Шевченко💀
На строку 29

Если не сработает тогда удали то, что написал и закомментируй 30 строку

Ozzy
screenshot 😵‍💫 сорри, но не догоняю как, куда вставить(

вместо 30-33 пишешь так: return $modx->parseChunk($tpl, $output) ;

Ozzy- Автор вопроса
Pavel Androsov
вместо 30-33 пишешь так: return $modx->parseChunk...

Сделал, в чанке просто плейсхолдер [[+id]] написал - итог выводит 1637 просто, то что указано в parents получается

Ozzy
screenshot

Тебе надо начиная с 29 строки объявить переменную $html а ниже в цикле перебрать массив $output, подставив в тело цикла то, что сейчас написано на 30 строке без return, только второй аргумент будет не output, а то что ты напишешь после as. Ну и сохранять это надо в переменную $html и её же за циклом вернуть.

Ozzy
screenshot Не получается...

$q->select(array('msVendor.id', 'name')); Где-то после 22 строки попробуй это добавить. В коде с сайта bezumkin.ru она есть, а в примере пропущена. Иначе плейсхолдеры создаются с несколько другими ключами

Ozzy- Автор вопроса
Алексей Иванов
$q->select(array('msVendor.id', 'name')); Где-то...

Добавил, но вроде это тоже не помогает

Ozzy- Автор вопроса
Артур Шевченко💀
$html .= $modx...

[[!brandParent? &parents=`1637` &tpl=`tpl.vendor` ]] В чанке tpl.vendor: [[+id]] Итог выводит: 1637

Ozzy
screenshot [[!brandParent? ...

Совсем всё плохо с программированием, да? До цикла $html = ''; В цикле $html .= $modx->parseChunk(...)

Ozzy- Автор вопроса
Артур Шевченко💀
Совсем всё плохо с программированием, да? До цикла...

С PHP угу... надо было блогером стать) Сделал, но это не помогло все равно, просто ничего не выводит теперь

Артур Шевченко💀
Совсем всё плохо с программированием, да? До цикла...

Ну хотят за счет таких как ты, я и других, получить кеш ничего не делая НЕДУМАЯ!

Vectorserver
Ну хотят за счет таких как ты, я и других, получит...

Это понятно, но я сегодня добрый, готов к благотворительности)))

Vectorserver
Скидоны допилил)?

Да, вчера вечером. Кстати по поводу сортировки массивов usort не подошла, она ключи затирает, а вот uasort делает то же самое, но ключи сохраняет.

Артур Шевченко💀
Да, вчера вечером. Кстати по поводу сортировки мас...

ну да, я думал тебе нужно сортнуть тупо двумерный массив

Vectorserver
ну да, я думал тебе нужно сортнуть тупо двумерный ...

Не, мне корзину, чтобы... и вот тут я сейчас задумался, а как правильнее отсортировать по возрастанию цены или по убыванию? Просто если скидка на каждый N товар, то если начинать с дорогих, итоговая скидка будет меньше, что выгодно владельцу магазина.

Ozzy- Автор вопроса
Артур Шевченко💀
Скинь доступы в админку в личку

Спасибо, сделаю по-другому) способов куча, просто хотелось как-то по правильному что ли...

Vectorserver
screenshot

Ну нет, это пусть уже без меня)))

Ozzy- Автор вопроса
Vectorserver
Ну хотят за счет таких как ты, я и других, получит...

Ну совсем не так... просто кто в чем разбирается лучше... я что знаю, могу помочь тоже

Ozzy
Ну совсем не так... просто кто в чем разбирается л...

Не принимай близко) У меня чувство юмора как у Петросяна!)

Ozzy- Автор вопроса
Vectorserver
Не принимай близко) У меня чувство юмора как у Пет...

Я когда нахожу решение, какой-то задачи пишу ее решение четко по шагам, чтоб потом кому-то пригодилось, ведь куча задач повторяется

Ozzy
screenshot [[!brandParent? ...

вы вопрос то закрыли?

Ozzy- Автор вопроса
Степан Гончаров 🇷🇺
вы вопрос то закрыли?

Нет, рабочего снипета так и не получилось же..

Ozzy
Нет, рабочего снипета так и не получилось же..

я правильно понимаю что вы хотели бренду получить по одному товару?

Ozzy- Автор вопроса

Похожие вопросы

Обсуждают сегодня

Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
48
Всем привет! Скажите, никто не пытался уменьшить размер процесса ssl, которые ассоциируется с открытым соединением (не помню точное название этого процесса, но там была какая-...
Алексей
20
а проверьте, собирается ли у кого сейчас транк лазаря через делюкс? у меня вот: fpcupdeluxe: info: Lazarus Native Installer (BuildModuleCustom: UserIDE): LazBuild: building Us...
Iluha Companets
20
Мне тут приспичило встроить в программу форматировние текста SQL, расставить переносы строк и отступы так, чтобы лучше читалось. Я что-то свое изобразил, оно после ключевых сл...
Sergey Bodrov
11
This is a big issue. Just by being a citizen of a country, you are denied to contribute to Open Source software: https://youtu.be/L5Ec5jrpLVk?si=1iIuHnMPbCB4anV-
Sharuzzaman Ahmat Raslan
72
добрый день. возможно ли изменить цвет окон лазаруса? Как?
Budemposmotret
35
Господа, а кто-нибудь сталкивался с размещением на TTabControl/TTabSheet множества контролов (> 100) с последующими External: Access violation? Вот буквально на ровном месте. ...
Dmitry
29
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Добрый день. Опять снова хочу обратиться к вам за помощью. После создания проэкта stack new, lazy.nvim + nvim-lspconfig/haskell-tools + hlint, ormolu из mason + hls из ghcup ...
Nannk
8
Does anyone have some zeroday's left?
Wito!d ♥️🩷
44
Карта сайта