Hetzerok

Hetzerok

Был в сети 04 июня 2019, 15:37
Заказы принимаю
Внутри цикла нужно получить значене tv для кадждого товара (можно это сделать конечно и вне цикла одним запросом но чуть сложнее, также можно делать данную операцию в момент формирования корзины и запихивать значение TV в массив $cart — так наверное наиболее правильно).
$resource = $this->modx->getObject('modResource', ['id' => $item['id']]);
$tvValue = $resource->getTVValue('tvName');
Ну и потом подставить значение в вычисление total_cost.
Если у вас просто каталог, то сделайте как делали — выведите вместо цены любой чанк. Если же у вас полноценный магазин, то не обойтись без доработок. Как мне это видится нужно будет ввести таблицу с полями группа товара и цена товара. Дать для каждого товара возможность указать группу или создать новую. Поменять на выводе списка товаров чтобы цены брались из этой таблицы, ну и изменить метод формирования цены (getPrice на сколько я помню) для самого магазина.
А по поводу кастомного валидатора — для проверки номера вида +7 (XXX) XXX-XX-XX простейший валидатор будет выглядеть так:
<?php
$success = false;
if (!preg_match('/^\+7 \(\d{3}\) \d{3}-\d{2}-\d{2}$/g') { 	
  $validator->addError($key, 'Неверный формат номера телефона!');
} else {
  $success = false;
}
return $success;
Я полагаю нужно создать для каждого пользователя свою группу и для нее группу ресурсов куда и пихать документы доступные для данного пользователя. Ничто же не мешает пользователю быть участником нескольких групп одновременно.