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