Разделы

  
 

Замена getTemplateVarOutput и getDocumentChildrenTVarOutput в Revolution

Который день уже пытаюсь найти замену этим функциям и не могу придумать её. Может кто-нибудь сможет подсказать каким образом в MODx Revolution реализовать такие коды (из Evolution):
$tmp = $modx->getTemplateVarOutput(array('id','tv_param1','tv_param2'),$id);
и
$tmp = $modx->getDocumentChildrenTVarOutput($parent,array('id','pagetitle','introtext','tv_param1','tv_param2'),1,$docsort,$docsortdir);

Я из этой страницы понял, что вместо этих методов теперь метод getCollection, но с разными критериями. Или есть другие методы для этого?
  • 0
  • 4 октября 2011, 17:40
  • Twin
  • 7

DISTINCT value из modTemplateVarResource в newQuery [РЕШЕНО!]

Здравствуйте. Мне хотелось бы реализовать следующий запрос посредством методов newQuery и getCollection в MODx Revolution:
SELECT DISTINCT value FROM modx_site_tmplvar_contentvalues as modTemplateVarResource WHERE tmplvarid = 10 AND contentid IN (10,17,25,47);

Для этого был написан следующий код:
$req = $modx->newQuery('modTemplateVarResource', array(
    'tmplvarid' => 10,
    'contentid:IN' => array(10,17,25,47)
))
    ->select('DISTINCT modTemplateVarResource.id, modTemplateVarResource.value')
    ->sortby('value','ASC');
$result = $modx->getCollection('modTemplateVarResource', $req);

Но таким образом скрипт отдает кортежи, уникальные по двум колонкам. А если убрать modTemplateVarResource.id из select, то скрипт отказывается работать.

Возможно ли как-то реализовать запрос, подправив скрипт или отправив составленный запрос, используя другие классы и методы MODx Revolution? В Evolution всё легко делалось через $modx->db->select() и работало без указания поля id.


( Читать дальше )
  • 0
  • 2 октября 2011, 19:41
  • Twin
  • 14