2010-01-19 12 views

Respuesta

31

Si puede proporcionar un poco más de información acerca de qué "página de bloqueo" está llamando, puede ser más fácil discernir el problema. De forma predeterminada, Magento incluye la etiqueta de diseño <default> para todas las páginas, que le dará los encabezados y pies de página incluso en llamadas AJAX.

Para enviar una página sin todo ese extra, tiene algunas opciones. En primer lugar, puede configurar la salida manualmente por su cuenta, evitando por completo el sistema de diseño. Magento hace esto por la sola página de características de pago:

$result = array('foo' => 'foo', 'bar' => 'bar',); 
$this->getResponse()->setBody(Zend_Json::encode($result)); 

También puede modificar este método de usar un controlador de diseño personalizado de esta manera:

protected function loadPage() { 
    $layout = $this->getLayout(); 
    $update = $layout->getUpdate(); 
    $update->load('your_custom_handle'); 
    $layout->generateXml(); 
    $layout->generateBlocks(); 
    $output = $layout->getOutput(); 

    $result = array('outputHtml' => $output, 'otherVar' => 'foo',); 
    $this->getResponse()->setBody(Zend_Json::encode($result));   
} 

Y en su archivo de diseño:

<your_custom_handle> 
    <remove name="right"/> 
    <remove name="left"/> 

    <block type="module/block" name="root" output="toHtml" template="module/template.phtml"/> 
</your_custom_handle> 

Una segunda opción, si desea utilizar diseños, es definir un diseño alternativo alternativo. Cuando llame al $this->loadLayout(); en los controladores de Magento, puede especificar un identificador distinto de <default> para descender. Un ejemplo del controlador producto Magento sería:

$this->loadLayout('popup'); 

Esta disposición se define por defecto en el archivo de main.xml disposición, y hace que la plantilla popup.phtml, y puede ser adecuado para su uso.

Si todavía tiene problemas, hágamelo saber y podemos probar otras cosas. Espero que ayude.

Gracias, Joe

+0

Gracias por esto. Me salvó un montón de tiempo. – Travis

+0

Tenga en cuenta que si copia y pega el ejemplo del archivo de diseño, asegúrese de cambiar 'type =" module/block "' a un tipo de bloque de magento real, como 'type =" page/html "', o un tipo de bloque personalizado definido para tu módulo – zlovelady

+0

brillante, simple, eficiente ... Me encanta. Gracias Joe – OSdave

Cuestiones relacionadas