2012-09-06 18 views
6

Trong mặc định bố trí các tùy chọn và thêm vào giỏ hàng nút được gọi bằngMagento - chia tùy chọn của container1 và container2

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

Tôi muốn chia các tùy chọn cấu hình từ giỏ add-to- và trường số lượng để hiển thị chúng trên một vị trí khác trong bố cục của tôi. Bất kỳ ý tưởng hoặc sẵn sàng để sử dụng cách giải quyết?

+0

bạn đang có? tôi cũng cần liên kết 'thêm vào giỏ hàng' cho hướng dẫn sử dụng. – KarSho

+0

Vì chủ đề cũ này nhận được nhiều lượt xem, tôi muốn chia sẻ cách giải quyết của mình cho vấn đề này. Tôi đã xem nội dung bên trong 'container1' và hiển thị trực tiếp trong khung nhìn-Mẫu hoặc gọi nội dung bằng' getChildHtml' cho các tùy chọn sản phẩm này sẽ là '$ this-> getChildHtml ('product_options_wrapper')'. – npostulart

Trả lời

0

Trong khi giải pháp cuối cùng của bạn sẽ phụ thuộc vào nơi các khối cần phải được di chuyển/lắp vào cách bố trí của bạn, bạn chắc chắn có thể chia nhỏ các “Thêm vào giỏ” product.info.options.wrapper.bottom ra từ tùy chọn cấu hình product.info.container1 hoặc product.info.container2 như thế này:

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

cách dễ nhất để sau đó hiển thị nút “Thêm vào giỏ hàng” riêng là nhận xét ra các điều kiện trong catalog/product/view.phtml cho phép khối product.info.addtocart được hiển thị cho dù sản phẩm có các tùy chọn hay không:

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

Hy vọng rằng sẽ giúp bạn hiểu cấu trúc của các khối này. Tài nguyên bổ sung có thể hữu ích:

1

Bạn có thể chia nó rất dễ dàng (nhưng tôi đã dành rất nhiều thời gian để tìm nó :)) - nếu bạn nhìn vào ứng dụng/mã/lõi/Mage/Lõi/Khối/Abstract.php đến PHPDoc của chức năng công cộng getChildChildHtml, bạn sẽ thấy rằng thông số thứ hai xác định tên khối con. Vì vậy, bạn có thể gọi đầu tiên trước khi các khối giá làm

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

và sau khi khối giá trả lại, gọi

<?php echo $this->getChildChildHtml('container1', 'product.info.options.wrapper.bottom', true, true) ?> 
Các vấn đề liên quan