Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 147 комментариев

Василий Краковецкий
Василий Краковецкий
В админке модикса есть готовое решение, называется «Безопасность -> Настройка форм», там можно ненужные поля для определенной группы пользователей скрыть, делается это все интуитивно-понятно, но нужно уметь настраивать группы пользователей, хотя разобраться не так сложно — в сети куча видео по этому поводу есть, в том числе и по настройке форм(правда по нему я видел только на английском, но это не особо мешает просмотру)
Василий Наумкин
Василий Наумкин
if (empty($parent)) {$parent = $modx->resource->id;}

$pids = array_merge(array($parent), $modx->getChildIds($parent));
$ids = array();

$q = $modx->newQuery('msProduct');
$q->where(array('class_key' => 'msProduct','parent:IN' => $pids,'published' => 1,'deleted' => 0));
$q->select('`msProduct`.`id`');
if ($q->prepare() && $q->stmt->execute()) {
	$ids = $q->stmt->fetchAll(PDO::FETCH_COLUMN);
}

$q = $modx->newQuery('msProduct');
$q->leftJoin('msCategoryMember', 'msCategoryMember', '`msCategoryMember`.`product_id` = `msProduct`.`id`');
$q->where(array('class_key' => 'msProduct','msCategoryMember.category_id:IN' => $pids,'published' => 1,'deleted' => 0));
$q->select('`msProduct`.`id`');
if ($q->prepare() && $q->stmt->execute()) {
	$ids2 = $q->stmt->fetchAll(PDO::FETCH_COLUMN);
	if (!empty($ids2)) {
		$ids = array_unique(array_merge($ids, $ids2));
	}
}

return count($ids);