AlexBaks 08 октября 2014 0 2
Потребовалось сделать выборку категорий из отдельной таблица, и было собрался я городить очередной процессор и чтобы не усложнять начал переопредилять метод process не чего не возвращая запустил для теста не упало что нибудь и что я вижу? мне вернула строчку следующего содержимого "modCategorySearhProcessor" и тут я вспомнил что где то в недрах modx видел при вызове процессора проверку на существование класса в противном случаи выполнять через requre.

смысл в следующем

вот содержимое процессора

$modx->addPackage('castumcategory',MODX_CORE_PATH.'components/castumcategory/model/');
$q = $modx->newQuery('modCastumCategoryName');
$q->select(array(
'modCastumCategoryName.*'
));
if ($scriptProperties['group']) {
$q->where(array(
"group" => $scriptProperties['group']
));
};
$q->sortby($scriptProperties['sort'],$scriptProperties['dir']);

//$q->limit(100,0);
$q->prepare();
$q->stmt->execute();
return $q->stmt->fetchAll(PDO::FETCH_ASSOC);


вот содержимое шаблона

Металл
{processor action="web/search" params=['group'=>1,'sort'=>'name','dir'=>'ASC'] ns="qcore" assign=result}

{foreach from=$result item=val}

{$val.name}

{/foreach}


считаю это реально круто, так как не всегда требуется вся мощь процессоров а нужно получить простенький массив. Это тоже самое что снипеты произвольный код только возвращается не echo а return

KISS code рулит
2 комментария
Fi1osof1
Fi1osof 08 октября 2014г в 10:36 #
Все новое - хорошо забытое старое)))
Fi1osof1
Fi1osof 08 октября 2014г в 10:37 #
Но я бы все-таки просто расширил getdata-процессор. Что там, передал в него public $classKey = "modCastumCategoryName" и все.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.