2011-10-18 24 views
5

Câu hỏi thực sự đơn giản với (tôi đặt cược) một câu trả lời rất đơn giản ... Tôi muốn xóa một trong các tab thông tin sản phẩm khỏi trang xem sản phẩm của tôi. Tôi muốn loại bỏ các tab trong đó cho thấy các thuộc tính, nhưng thay vì bình luận nó ra trong catalog.xml Tôi muốn loại bỏ nó đúng cách thông qua local.xml.Magento - Xóa tab khỏi chế độ xem sản phẩm bằng cách sử dụng local.xml

<action method="addTab" translate="title" module="catalog"> 
<alias>additional</alias><title>Additional Information</title> 
<block>catalog/product_view_attributes</block> 
<template>catalog/product/view/attributes.phtml</template> 
</action> 

tôi nghĩ có thể có một phương pháp removeTab, nhưng điều đó không làm việc. Ngoài ra còn có method = "unsetChild", nhưng tôi không thể thấy cách tôi sẽ nhắm mục tiêu đến phần tử cụ thể đó vì không có tên được xác định trong XML.

Bất kỳ ý tưởng nào cũng sẽ được đánh giá cao.

+0

Bạn không thể làm điều đó trong 'local.xml'. Xml cục bộ không thuộc tệp cập nhật bố cục. – Zyava

+0

Tôi đang đề cập đến tệp local.xml được tạo cho các chủ đề tùy chỉnh, được sử dụng để cập nhật bố cục. –

+0

Xin lỗi, không biết rằng các chủ đề tùy chỉnh cũng có tệp local.xml. – Zyava

Trả lời

10

Dựa trên cách đọc của tôi về Mage_Catalog_Block_Product_View_Tabs::addTabs(), bạn sẽ có thể để loại bỏ các khối không bị trả lại với một trong các cách sau:

<!-- language: xml --> 
<catalog_product_view> 
    <reference name="product.info.tabs"> 
     <action method="unsetChild"> 
      <child>additional</child> 
     </action> 
    </reference> 
</catalog_product_view> 

Hoặc:

<catalog_product_view> 
    <remove name="additional" /> 
</catalog_product_view> 

Lý do mà tôi tin rằng những sẽ làm việc là addTab() chỉ cần lấy các đối số và sử dụng chúng để tạo một thể hiện khối như là một phần tử con của khối cha của tab.

Nhận xét của Zyava không chính xác, như tôi cho rằng bạn biết. Có một sự khác biệt giữa app/etc/local.xml (một tệp cấu hình) và tệp cục bộ được nạp cuối cùng rõ ràng từ các thiết lập thiết kế của bạn.

+0

Cảm ơn Ben, nó hoạt động hiệu quả. –

2

Tôi đang sử dụng mô-đun bố trí adminhtml xml của tôi để thêm hoặc loại bỏ các tab (bạn có thể sử dụng local.xml của chủ đề của bạn, dựa trên các bước sau với một chút tweakking.)

Đầu tiên bạn sẽ cần phải tuyên bố của bạn cập nhật bố trí (trong config.xml mô-đun của bạn) như sau:

<adminhtml> 
    <layout> 
     <updates> 
      <mymodule> 
       <file>mymodule.xml</file> 
      </mymodule> 
     </updates> 
    </layout> 
</adminhtml> 

sau đó, trong mymodule.xml, thêm dòng sau (ở đây, tôi đang sử dụng tay cầm quản trị để xem trang)

<adminhtml_sales_order_view> 
    <reference name="sales_order_tabs"> 
     <action method="removeTab"> 
      <name>order_shipments</name> 
     </action> 
     <action method="addTabAfter"> 
      <name>order_shipments_mymodule</name> 
      <block>mymodule/adminhtml_order_shipments</block> 
      <after>order_creditmemos</after> 
     </action> 
     <action method="addTab"> 
      <name>order_receipts</name> 
      <block>mymoduled/adminhtml_order_recp</block> 
     </action> 
    </reference> 
</adminhtml_sales_order_view> 

Hy vọng điều này sẽ giúp !! (Đừng quên để upvote giải pháp này)

Các vấn đề liên quan