За последние 24 часа нас посетили 23545 программистов и 1664 робота. Сейчас ищут 847 программистов ...

alto cms ajax возврат smarty шаблона в админке

Тема в разделе "PHP для новичков", создана пользователем rewuxiin, 20 сен 2016.

Метки:
  1. rewuxiin

    rewuxiin Активный пользователь

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    пришлось тут работать с данной cms
    Насколько я понял - ее забросили в 2014 году и многого не решили.
    может быть кто-то работал уже и сталкивался или подскажет куда рыть

    примеры возврата смарти с помощью создания нового объекта, в сети я видел, но у них по своему реализован смарти вьювер, который хотелось бы использовать, для возврата в ajax

    для пользовательской части сайта возврат из экшна у них реализован так
    PHP:
    1.    
    2.  protected function EventInfoboxInfoBlog() {
    3.  
    4.         // * Если блог существует и он не персональный
    5.         if (!is_string(F::GetRequest('iBlogId'))) {
    6.             $this->Message_AddErrorSingle($this->Lang_Get('system_error'));
    7.             return;
    8.         }
    9.  
    10.         if (!($oBlog = $this->Blog_GetBlogById(F::GetRequest('iBlogId'))) /* || $oBlog->getType()=='personal'*/) {
    11.             $this->Message_AddErrorSingle($this->Lang_Get('system_error'));
    12.             return;
    13.         }
    14.  
    15.         // * Получаем локальный вьюер для рендеринга шаблона
    16.         $oViewer = $this->Viewer_GetLocalViewer();
    17.  
    18.         $oViewer->Assign('oBlog', $oBlog);
    19.         // Тип блога может быть не определен
    20.         if (!$oBlog->getBlogType() || !$oBlog->getBlogType()->IsPrivate() || $oBlog->getUserIsJoin()) {
    21.             // * Получаем последний топик
    22.             $aResult = $this->Topic_GetTopicsByFilter(array('blog_id' => $oBlog->getId(), 'topic_publish' => 1), 1, 1);
    23.             $oViewer->Assign('oTopicLast', reset($aResult['collection']));
    24.         }
    25.         $oViewer->Assign('oUserCurrent', $this->oUserCurrent);
    26.  
    27.         // * Устанавливаем переменные для ajax ответа
    28.         $this->Viewer_AssignAjax('sText', $oViewer->Fetch('commons/common.infobox_blog.tpl'));
    29.     }
    в экшнах админки же я не могу это использовать

    PHP:
    1.  
    2. $oViewer = $this->Viewer_GetLocalViewer();
    3. $oViewer->Assign('oBlog', $oBlog);
    4. $oViewer->Assign('oUserCurrent', $this->oUserCurrent);
    5. $this->Viewer_AssignAjax('sText', $oViewer->Fetch('commons/common.infobox_blog.tpl'));
    в админке пашет только это
    PHP:
    1. /**сообщаем что работаем с json**/
    2. $this->Viewer_SetResponseAjax('json');
    3. $this->Viewer_AssignAjax('sText', $sText);
    Т.е. только возврат в json формате
     
  2. rewuxiin

    rewuxiin Активный пользователь

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    Собссно все делал правильно, не сразу понял что при вызове шаблона из плагина таким образом, нужно ему скармливать путь к плагину, о чем подсказали мне на официальном ресурсе, причем довольно быстро - чего я совсем не ожидал))

    PHP:
    1. $this->Viewer_AssignAjax('sText', $oViewer->Fetch(Plugin::GetTemplatePath(__CLASS__).'commons/common.infobox_blog.tpl'));
    вопрос закрыт