2012-09-06 8 views
6

En el diseño predeterminado de las opciones y añadir a la cesta botones son llamados porMagento - opciones de división de container1 y container2

<?php echo $this->getChildChildHtml('container1', '', true, true) ?> 

me gustaría dividir las opciones configurables del carro complemento a y campo de cantidad para mostrarlos en una posición diferente en mi diseño. ¿Alguna idea o soluciones alternativas listas para usar?

+0

¿Está tienes? yo también necesito el enlace 'agregar al carrito' para el manual. – KarSho

+0

Como este tema anterior recibe muchas vistas, me gustaría compartir mi solución para este problema. Busqué el contenido dentro de 'container1' y lo rendericé directamente en la plantilla de vista o llamé al contenido con' getChildHtml' para las opciones del producto, esto sería '$ this-> getChildHtml ('product_options_wrapper')'. – npostulart

Respuesta

0

Mientras que su solución final dependerá del lugar donde estos bloques tienen que ser movido/insertada en su diseño, definitivamente se puede dividir en “Añadir al carro” product.info.options.wrapper.bottom hacia fuera de opciones configurables product.info.container1 o product.info.container2 como esto:

<catalog_product_view> 
    <reference name="product.info.container1"> 
     <action method="unsetChild"><name>product.info.options.wrapper.bottom</name></action> 
    </reference> 
    <reference name="product.info.container2"> 
     <action method="unsetChild"><name>product.info.options.wrapper.bottom</name></action> 
    </reference> 
</catalog_product_view> 

la forma más fácil de mostrar a continuación el botón “Añadir al carro” es separado a comentar la condicional en catalog/product/view.phtml que permite que el bloque de product.info.addtocart por demostrar si el producto tiene opciones o no:

<?php if (!$this->hasOptions()): // Remove this condition ?> 
    <div class="add-to-box"> 
     <?php if($_product->isSaleable()): ?> 
      <?php echo $this->getChildHtml('addtocart') ?> 

      ... 

     <?php endif; ?> 
    </div> 

    ... 

<?php endif; ?> 

Espero que eso lo ayude a comprender la estructura de estos bloques. Los recursos adicionales que pueden ser útiles:

1

puede dividirlo muy fácil (pero pasado un montón de tiempo para encontrarlo :)) - si se mira a la aplicación/código/core/Mage/Core/Block/Abstract.php a PHPDoc de función pública getChildChildHtml, verá que el segundo parámetro determina el nombre del bloque secundario. Por lo tanto, se puede llamar primero antes de que el bloque de precio rendir

<?php echo $this->getChildChildHtml('container1', 'product.info.options.wrapper', true, true) ?> 

y después de bloque de precio rendido, llame

<?php echo $this->getChildChildHtml('container1', 'product.info.options.wrapper.bottom', true, true) ?> 
Cuestiones relacionadas