Динамически создавать блок из контроллера


Я создаю всплывающее окно, которое загружается через окно входа в Magento по умолчанию ajax.

Шаблон блока входа по умолчанию находится в template/persistent/customer/form/login.phtml.

Я уже успешно реализовал контроллер, выводящий данные для запроса ajax:

<?php

class My_Module_LoginController extends Mage_Core_Controller_Front_Action {  

    public function loginwindowAction() {

        echo 'Hello world'; // I can see this text in ajax response

        // Now, how to print here login block?
    }

}

Что я пытаюсь сделать, так это просто создать блок и воспроизвести его HTML. Только блок, без остальной части макета страницы.

Есть ли какой-либо способ сделать это без создания xml-макета страницы?

Author: Marvin3, 2013-07-02

1 answers

Вы должны быть в состоянии сделать это (тип блока может быть неправильным, поэтому измените его по мере необходимости):

$block = $this->getLayout()->createBlock('customer/form_login')->setTemplate('persistent/customer/form/login.phtml');

$this->getResponse()->setBody($block->toHtml());
 12
Author: Paul, 2013-07-02 15:45:03