[РЕШЕНО] $modx->newQuery получить значение TV зная id документа

Добрый вечер. По некоторым причинам нет возможности использовать конструкцию $modx->getObject, но существует еще $modx->newQuery
Как через данный запрос получить значение TV зная id документа?
Спасибо за ответы!

UPD
В моем случае решение выглядит так

<?php
switch ($modx->event->name) {
    case 'msOnGetProductPrice':
    	$values = & $modx->event->returnedValues;
		if (isset($values['price'])) {
			$price = $values['price'];
		}
		$parent = $product->get('parent');
		
        $q = $modx->newQuery('modTemplateVar');
        $q->leftJoin('modTemplateVarResource', 'modTemplateVarResource', 'modTemplateVarResource.tmplvarid = modTemplateVar.id');
        $q->where(array('modTemplateVar.name' => 'day', 'modTemplateVarResource.contentid' => $parent));
        $q->select('modTemplateVarResource.value');

        if ($q->prepare() AND $q->stmt->execute()) {        
            $sale_day = (string)$modx->getValue($q->stmt);
            if (date("N") == $sale_day) {
                $q = $modx->newQuery('modTemplateVar');
                $q->leftJoin('modTemplateVarResource', 'modTemplateVarResource', 'modTemplateVarResource.tmplvarid = modTemplateVar.id');
                $q->where(array('modTemplateVar.name' => 'percent', 'modTemplateVarResource.contentid' => $parent));
                $q->select('modTemplateVarResource.value');
                
                if ($q->prepare() AND $q->stmt->execute()) {
                    $sale_percent = (string)$modx->getValue($q->stmt);
                    $sale_percent = (100 - $sale_percent) / 100;
                    $price = preg_replace('/\s+/', '', $price);
                    $new_price = round($price * $sale_percent);
                    $values['price'] = $new_price;
                }
            }
        }
        break;
}
MrKarandash
20 мая 2019, 19:51
modx.pro
604
0

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0