Andrei

Andrei

С нами с 22 декабря 2015; Место в рейтинге пользователей: #527

Как упростить условие на Fenom

У меня есть такое условие:
{if $id == '15' OR $id == '31' OR $id == '32' OR $id == '33' OR $id == '34'}
выводится код
{/if}
15 это ID родителя, все остальные ID (31,32,33,34) это дочки этого родителя.

Как упростить условия — показать родителя и всех его потомков без явного указания дочерних ID?

$id == '15' OR $id == '31' OR $id == '32' OR $id == '33' OR $id == '34'

PS. ID родителя постоянен и от него можно отталкиваться.
Александр Янк
17 января 2018, 09:41
modx.pro
2
8 105
0

От чего может возникать такая ошибка?

Лог забивается такой странной ошибкой
(ERROR @ /core/xpdo/om/xpdoquery.class.php: 704) Error parsing condition with key 0:
Вася
07 декабря 2017, 11:38
modx.pro
1
2 744
0

Fenom вместо getImageList MIGx

Есть обработка MIGx полей через Fenom с условиями:
{set $rows = json_decode($_modx->resource.tv_name, true)}
{foreach $rows as $_list $row}
	{if $_last==1}
		'какойто коТ'
	{/if}
{/foreach}
Все замечательно работает, но если мне к примеру помимо _last нужны поля idx, _alt, _first и прочее, как быть в таком случае? Неужели без getImageList все же не обойтись?

Решение
{set $rows = json_decode($_modx->resource.migx_tv, true)}
{set $idx = 0}
{foreach $rows as $idxArr => $row}
	{set $row['idx'] = $idx++} {* idx от созданной переменной с инкриментом*}
	{set $row['idxForeach'] = $row@index} {* idx от foreach*}
	{*set $idxMIGX = $row['MIGX_id']*} {* idx от MIGX*}
	{if $row@first} 
		{set $row['_first'] = 'first item'}
	{/if}
	{if $row@last} 
		{set $row['_last'] = 'last item'}
	{/if}
	{if !($idx % 2)}
		{set $row['_alt'] = 'odd item'}
	{/if}
	{$row | print_r}
{/foreach}
Владислав
29 сентября 2017, 15:22
modx.pro
8
8 939
-2

Как решить конфликт where и level в pdoMenu?

Всем привет!
Натолкнулся на странную особенность работы pdoMenu с параметрами where и level.
Нужно вывести двухуровневое меню, при этом исключив вывод детей одного из разделов.

Обычный вызов (без исключения детей) pdoMenu срабатывает ожидаемо правильно:
{$_modx->runSnippet('!pdoMenu', [
            'parents' => 0,
            'level' => 2
])}
Роман Ильин
04 сентября 2017, 08:21
modx.pro
1
1 384
0

Делимся приемами оптимизации под Google PageSpeed

Поделитесь опытом, кто как оптимизирует сайт? Кто набирает 85 баллов на продуктовой странице или на странице категории товаров, то есть на тех, где minishop2 свои ресурсы подключает?
Konstantin
31 августа 2017, 16:56
modx.pro
14
6 476
+3

Вывод количества товаров в minishop2

Уважаемые мастера MODXRevo! Cтолкнулся с проблемой вывода количества товаров в minishop2.

Вывод сделал через сниппет getChildCount
rkt777
21 июля 2017, 19:36
modx.pro
2
4 002
0

Редирект на свою страницу после оформления заказа

Для Minishop2 версий >= 2.4.* Думаю, информация будет полезна начинающим разработчикам: можно на простой задаче заодно и немного разобраться в логике работы магазина.
Алексей Шумаев
02 июня 2017, 22:06
modx.pro
20
6 631
+7

Множетственная ReCaptcha2 на 1 стр + Ajaxform

Добрый день! Вдохновленный заметкой и комментарием Андрея в ней, я решил немного по подробнее расписать про особенности подключения Google ReCaptcha 2 для использования в MODX Revolution c дополнением AjaxForm и FormIt.


Под катом пример с картинками.
Sergey Leleko
17 мая 2017, 11:11
modx.pro
33
7 802
+12

[localizator] Мультиязычность, СЕО, автоперевод...



Языковые версии \ сателиты без контекстов, с автоматическим переводом всех полей ресурса + сео, да еще и автоперевод лексиконов — это я уместил в названии localizator.
but1head
23 апреля 2017, 20:57
modx.pro
42
31 681
+32

Обновление корзины или рефреш страницы

Добрый день!

Сделал плагин для добавления подарка при достижении определенной суммы. Код стандартен

switch ($modx->event->name) {
	case 'msOnAddToCart': case 'msOnChangeInCart': case 'msOnRemoveFromCart':
		$cartArray = $cart->get();
		$cartStatus = $cart->status();
		
		if ($cartStatus['total_cost'] >= 100){
			$cart->add(666);
			$cartArray = $cart->get();
			foreach ($cartArray as &$cartProduct) {
				if ($cartProduct['id'] == 666) {
					$cartProduct['count'] = 1;
				}
			}
		}
		else{
			foreach ($cartArray as $key => $cartProduct) {
				if ($cartProduct['id'] == 666) {
					unset($cartArray[$key]);
				}
			}
		}
		$cart->set($cartArray);
		break;
}
подарок добавляется в корзину ($cart) все хорошо, но не знаю как обновить страницу с корзиной чтобы показать добавленный подарок в корзине. Тоже самое при удалении части заказа из корзины, если сумма заказа уменьшилась, я из $cart удаляю подарок, но страницу с корзиной не могу обновить.
Как обновить страницу с корзиной?
Алексей Хребтов
28 марта 2017, 15:24
modx.pro
4
2 370
+1