Алексей
7 окт. 2014 г., 22:28

Приятная неожиданность

Потребовалось сделать выборку категорий из отдельной таблица, и было собрался я городить очередной процессор и чтобы не усложнять начал переопредилять метод 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 рулит
Все новое - хорошо забытое старое)))
Но я бы все-таки просто расширил getdata-процессор. Что там, передал в него public $classKey = "modCastumCategoryName" и все.

Добавить комментарий