2012-09-06 6 views
6

Im Standard-Layout-Optionen und Add-to-cart-Taste wird vonMagento - Split-Optionen von container1 und container2

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

mag ich teile die konfigurierbaren Optionen aus der Add-to-cart genannt und Mengenfeld, um sie an einer anderen Position in meinem Layout anzuzeigen. Irgendwelche Ideen oder bereit, Workarounds zu verwenden?

+0

Sind Sie? Ich brauche auch "Add-to-Cart" Link für das Handbuch. – KarSho

+0

Da dieses alte Thema viele Ansichten hat, möchte ich meine Problemumgehung für dieses Problem teilen. Ich habe nach dem Inhalt in 'container1' Ausschau gehalten und ihn direkt in der view-Vorlage gerendert oder den Inhalt mit' getChildHtml' für die Produktoptionen aufgerufen, das wäre '$ this-> getChildHtml ('product_options_wrapper')'. – npostulart

Antwort

0

Während Ihre endgültige Lösung hängt davon ab, wo diese Blöcke müssen in Ihrem Layout bewegt/eingefügt werden, können Sie Split auf jeden Fall die „In den Warenkorb“ product.info.options.wrapper.bottom aus konfigurierbaren Optionen product.info.container1 oder product.info.container2 wie folgt aus:

<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> 

der einfachste Weg, um die „in den Warenkorb“ klicken separat dann zu zeigen, ist die bedingte in catalog/product/view.phtml Kommentar aus, die den product.info.addtocart Block gezeigt werden kann, ob die Produktoptionen oder nicht hat:

<?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; ?> 

Hoffentlich hilft Ihnen das, die Struktur dieser Blöcke zu verstehen. Zusätzliche Ressourcen, die hilfreich sein können:

1

Sie spalten kann es sehr einfach (aber ich habe es viel Zeit zu finden :)) - Wenn Sie das Aussehen zu app/code/core/Mage/Core/Block/Abstract.php zu PHPDoc von öffentliche Funktion getChildChildHtml, sehen Sie, dass der zweite Parameter Kindblocknamen ermittelt. So können Sie zum ersten Mal vor dem Preisblock rufen machen

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

und nach Preis Block gemacht, ruft

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