А как тебе такая идея: добавляем в процессор параметр tpl, в который передаем имя файла шаблона
{processor action="getmenu" ns="site" propset="cities" tpl="cities/outer.tpl"}
и добавляем код в плагин function.processor.php:
function smarty_function_processor($params, & $smarty) { ... if ($response = $modx->runProcessor($action, $scriptProperties, $options)) { $output = $response->getResponse(); if ($response->isError()) { if ($response->hasFieldErrors()) { $errors = (array) $response->getFieldErrors(); foreach ($errors as $error) { $output['field_errors'][$error->getField()] = $error->getMessage(); } } } else { + if (isset($params['tpl']) and $tpl = $params['tpl']) { + $items=$ouput['object']; + $out=$smarty->fetch($tpl); + $ouput=$out; + } else { $output['success'] = true; + } } } return !empty($assign) ? $smarty->assign($assign, $output) : $output; }
Тогда, если есть это параметр, процессор вернет не объект, а обработанный smarty текст. Я уже у себя проверил, работает. и шаблоны поаккуратнее смотрятся, вывод меню или данных — в одну строку :)