пришлось тут работать с данной cms Насколько я понял - ее забросили в 2014 году и многого не решили. может быть кто-то работал уже и сталкивался или подскажет куда рыть примеры возврата смарти с помощью создания нового объекта, в сети я видел, но у них по своему реализован смарти вьювер, который хотелось бы использовать, для возврата в ajax для пользовательской части сайта возврат из экшна у них реализован так PHP: protected function EventInfoboxInfoBlog() { // * Если блог существует и он не персональный if (!is_string(F::GetRequest('iBlogId'))) { $this->Message_AddErrorSingle($this->Lang_Get('system_error')); return; } if (!($oBlog = $this->Blog_GetBlogById(F::GetRequest('iBlogId'))) /* || $oBlog->getType()=='personal'*/) { $this->Message_AddErrorSingle($this->Lang_Get('system_error')); return; } // * Получаем локальный вьюер для рендеринга шаблона $oViewer = $this->Viewer_GetLocalViewer(); $oViewer->Assign('oBlog', $oBlog); // Тип блога может быть не определен if (!$oBlog->getBlogType() || !$oBlog->getBlogType()->IsPrivate() || $oBlog->getUserIsJoin()) { // * Получаем последний топик $aResult = $this->Topic_GetTopicsByFilter(array('blog_id' => $oBlog->getId(), 'topic_publish' => 1), 1, 1); $oViewer->Assign('oTopicLast', reset($aResult['collection'])); } $oViewer->Assign('oUserCurrent', $this->oUserCurrent); // * Устанавливаем переменные для ajax ответа $this->Viewer_AssignAjax('sText', $oViewer->Fetch('commons/common.infobox_blog.tpl')); } в экшнах админки же я не могу это использовать PHP: $oViewer = $this->Viewer_GetLocalViewer(); $oViewer->Assign('oBlog', $oBlog); $oViewer->Assign('oUserCurrent', $this->oUserCurrent); $this->Viewer_AssignAjax('sText', $oViewer->Fetch('commons/common.infobox_blog.tpl')); в админке пашет только это PHP: /**сообщаем что работаем с json**/ $this->Viewer_SetResponseAjax('json'); $this->Viewer_AssignAjax('sText', $sText); Т.е. только возврат в json формате
Собссно все делал правильно, не сразу понял что при вызове шаблона из плагина таким образом, нужно ему скармливать путь к плагину, о чем подсказали мне на официальном ресурсе, причем довольно быстро - чего я совсем не ожидал)) PHP: $this->Viewer_AssignAjax('sText', $oViewer->Fetch(Plugin::GetTemplatePath(__CLASS__).'commons/common.infobox_blog.tpl')); вопрос закрыт