[РЕШЕНО] $modx->newQuery получить значение TV зная id документа
Добрый вечер. По некоторым причинам нет возможности использовать конструкцию $modx->getObject, но существует еще $modx->newQuery
Как через данный запрос получить значение TV зная id документа?
Спасибо за ответы!
UPD
В моем случае решение выглядит так
Как через данный запрос получить значение 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;
}