Александр Мельник

Александр Мельник

С нами с 02 сентября 2016; Место в рейтинге пользователей: #53
Александр Мельник
26 октября 2016, 11:44
0
Спасибо огромное
Александр Мельник
25 октября 2016, 13:30
0
так я тоже делал, но тут вопрос — почему не работает так как описано? У кого не спрашиваю, у всех всегда выводится на экран весь массив данных.
Но и плюс ко всему, это к тому чтобы открыть код сниппета и посмотреть там- только те плейсхолдеры, которые лежат в массиве total отображаются на сайте и преобразовываются в значения. Как я понимаю, это от того что они входят в сниппет как простые элементы, а не как массивы. Но в сниппете есть еще и массив — delivery / order/ payment и куча других. В них входят элементы, зачасую с одним и тем же именем. К примеру есть delivery->name а есть payment->name. Не соображу как составить имя плейсхолдера, чтобы обратиться к ним.
Александр Мельник
03 сентября 2016, 09:15
0
А сегодня перестало выводится и в [[+goods]]. Мистика просто какая-то.
Александр Мельник
03 сентября 2016, 08:54
0
Сегодня перестали отображаться даже плейсхолдеры [[+weight]] [[+goods]] и так далее.
Если вчера код
[[!msGetOrder?id=`35`]]
[[+goods]]
выводил мне товары, то сегодня — пустота.
Бред какой-то. Но учитывая, что функционал сайта сохраняется, то означает что это я туплю. Но как один и тот же код может работать вчера и не работать сегодня.
Александр Мельник
03 сентября 2016, 08:30
0
Нет, не выводится ничего. Что за странности такие. Так не работает ни с msOrder ни с msCart ни с msGetOrder
Александр Мельник
03 сентября 2016, 08:27
0
у меня нет. В этом то и вопрос. Хотя я не ставил & перед первым значением. Сейчас попробую хотя это и вроде и не правильно.
Александр Мельник
02 сентября 2016, 19:22
0
$outer = array_merge($order->toArray(), array(
	'user' => $user ? $user->toArray() : array(),
	'address' => $address ? $address->toArray() : array(),
	'delivery' => $delivery ? $delivery->toArray() : array(),
	'payment' => $payment ? $payment->toArray() : array(),
));

$outer['goods'] = '';
$outer['cart_count'] = 0;
$outer['cost'] = $miniShop2->formatPrice($outer['cost']);
$outer['cart_cost'] = $miniShop2->formatPrice($outer['cart_cost']);
$outer['delivery_cost'] = $miniShop2->formatPrice($outer['delivery_cost']);
$outer['weight'] = $outer['cart_weight'] = $miniShop2->formatWeight($outer['weight']);
Это часть php кода из сниппета msGetOrder. Насколько я понимаю goods, cart_count, count,cart_cost, delivery_cost, weight создаются просто как элементы массива. Пишутся в переменную outer (которая и возвращается как результат функции) и поэтому к ним получается обратится напрямую через плейсхолдер [[+weight]].
А остальные элементы передаются как массивы и логично предположить что обращаться к ним нужно так — массив[элемент массива]. Тоесть плейсхолдер должен выглядеть как-то так [[+payment[name] ]]. Но modx не позволяет такую запись. Как-то пробовать экранировать квадратные скобки? Но это уже выглядит совсем не гармонично. Не верю что в miniShop2 не предусмотрели возможности обратиться к таким элементам…
Александр Мельник
02 сентября 2016, 16:58
0
Спасибо, пробовал.
Не помогало.
Александр Мельник
02 сентября 2016, 16:53
0
В [[+goods]] выводится.
Я хочу вывести на экран массив значений, лежащих в msGetOrder.
Вот как на этом скриншоте — yadi.sk/i/Eabu6Gopui9GB
Документация говорит что любой из сниппетов miniShop2 можно вывести на экран в виде массива только лишь указав ему пустой чанк в виде шаблона.
У меня почему то ни с одним сниппетом это не сработало.