2011-07-27 9 views
6

Estoy tratando de cargar una versión renderizada de la barra lateral del carro, que tengo la intención de cargar a través de ajax ... He estado buscando mucho y parece que el mejor enfoque es crear un módulo personalizado que manejará toda mi solicitud de Ajax. He creado un módulo personalizado y todo parece estar funcionando; sin embargo, cuando visualizo sidebar.phtml, no se procesa correctamente. Se muestra como si no hubiera nada en el carrito. (Estoy asumiendo que solo está tratando de leer el archivo sin usar ninguna información de la sesión). He buscado un montón pero nada parece relevante para lo que estoy tratando de hacer.Cómo cargar un archivo de vista magento (.phtml) desde un controlador

Este es el código que estoy utilizando en mi controlador personalizado para cargar el archivo phtml, que es esencialmente una copia y el pasado del archivo checkout/cart/sidebar.phtml.

$layout = $this->loadLayout(); 


$block = $this->getLayout()->createBlock(
'Mage_Core_Block_Template', 
'PPWD_Custom', 
array('template' => 'custom/custom.phtml') 
); 
echo $block->toHtml(); 

Gracias

Respuesta

3

el problema está en tipo de bloque incorrecto. En lugar de Mage_Core_Block_Template, debe usar Mage_Checkout_Block_Cart_Sidebar. De esta manera:

$this->getLayout()->createBlock(
    'checkout/cart_sidebar', 
    'PPWD_Custom', 
    array('template' => 'custom/custom.phtml') 
); 
+0

Todavía no tuve suerte, traté de cargar ese código y no produce nada. ¿Es posible cargar el archivo sidecart.phtml "renderizado" original desde este controlador (mediante el texto traducido quiero decir realmente mostrar qué está en el carro en lugar de decir siempre que está vacío)? Gracias de nuevo – user398314

+0

En el archivo de diseño que corresponde a su controlador personalizado, debe agregar la definición del bloque cart_sidebar como en la aplicación/diseño/frontend/base/default/layout/checkout.xml, por ejemplo. Puede ver agregar los procesadores para diferentes tipos de productos aquí. – vsushkov

+0

bien, así que intenté como se sugiere también, pero aún nada. Publiqué mi función completa de indexador de controlador y el archivo de diseño en [link] (http://pastebin.com/ZiebvBSf). No sé exactamente dónde estoy yendo mal. el directorio de plantillas personalizadas es básicamente una copia de * theme */template/checkout. – user398314

Cuestiones relacionadas