Ayuda para Modificación Control shipping módulo por DEFCON2

Chaber

Nuevo usuario
Buenas a todos!!
Me las he visto y deseado para poder descargar el módulo del magnífico DEFCON2 sobre Control shipping (te indica la cantidad de Euros que queda para el envío gratuito). Desde magentoconnect da error y he tenido que usar http://freegento.com/ddl-magento-extension.php y el sistema de paquetes antiguo, el 1.

Mi problema es que el módulo lo saca en el lateral izquierdo o derecho y a mi me gustaría incluirlo dentro de mi propio carrito.

He copiado el código de control_shipping.phtml y lo he incluido dentro de mi carrito (sidebar.phtml) pero no me hace nada más allá de ponerme el título.

No se si DEFCON2 aún anda por aquí o alguno de vosotros ha usado el módulo y ha sabido solucionar el tema que propongo. Imagino que el problema radica en que no encuentra los helpers y por eso me aparece el contenido vacio aún copiando el código del phtml.

Muchas gracias por adelantado por si alguien me puede ayudar y un saludo a todos!
 
Última edición:

Chaber

Nuevo usuario
Bueno, he encontrado la forma de cargar el contenido del bloque dentro del carrito. No se si es la más correcta de las formas pero me ha funcionado.

Nos vamos al sidebar.phtml que es donde está ubicado nuestro carrito y dentro del código añadimos:

Insertar CODE, HTML o PHP:
<?php echo $this->getLayout()->createBlock('controlshipping/list')->setTemplate('controlshipping/control_shipping.phtml')->toHtml() ?>
Y voilá! Ya tenemos el contenido del bloque dentro de nuestro carrito.

Espero que le sirva a alguien a parte de mi.
 

Xarlie

Super Moderador
Miembro del equipo
Ten en cuenta que en los layout lo que se hace es llamar al bloque para ciertos métodos que se llaman desde el phtml.
Si metes el código dentro de otro phtml, en tu caso el sidebar, esos métodos no estarán disponibles.

Lo que se suele hacer es meter el bloque del layout como "hijo" del principal y desde el phtml llamar a ese hijo con getChildren...
 

Chaber

Nuevo usuario
Muy interesante Xarlie, y como podría hacer una llamada usando getchildren a ese bloque del layout?
 

Xarlie

Super Moderador
Miembro del equipo
Ejemplo en el layout

PHP:
<checkout_cart_index>
    <reference name="checkout.cart">
        <block type="miextension/block" name="miextension.block" as="miextension_block" template="miextension/template.phtml">
            <action method="setChild"><name>totals</name><block>totals</block></action>
        </block>
        <action method="setChild"><name>totals</name><block>miextension.block</block></action>
    </reference>
</checkout_cart_index>
y luego llamarlo...

PHP:
<?php echo $this->getChildHtml('totals'); ?>
Es un ejemplo.
 

Chaber

Nuevo usuario
Muchas gracias Xarlie, lo probaré a ver si así me funciona que me parece más correcto que la forma como lo he sacado yo.
 
Arriba