А как тебе такая идея: добавляем в процессор параметр 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 текст. Я уже у себя проверил, работает. и шаблоны поаккуратнее смотрятся, вывод меню или данных — в одну строку :)