Có thể vô hiệu hóa một tuyên bố <remove name="left">
được định nghĩa trong tệp .xml bố cục mặc định, từ tệp local.xml không? Ví dụ, trong checkout.xml trong phần <checkout_cart_index>
, câu lệnh <remove name="left"/>
được định nghĩa ở đó, nhưng bạn có thể vô hiệu hóa dòng đó khỏi tệp local.xml, vì vậy bạn vẫn thấy menu bên trái trên trang thanh toán không?Làm thế nào để vô hiệu hóa một tuyên bố loại bỏ từ local.xml trong Magento
Trả lời
Theo mặc định, Magento không cung cấp thẻ <unremove />
cho tệp cục bộ. Tuy nhiên, hệ thống Bố cục chứa các sự kiện phù hợp, do đó bạn có thể tự thực hiện điều này. Và bởi "bản thân", tôi có nghĩa là tôi đã created an experimental extension thêm thẻ như vậy. Phản hồi được hoan nghênh.
câu trả lời của bạn không phải là để vô hiệu hóa việc loại bỏ nhưng để thêm một lần nữa trong local.xml bạn
Bạn có thể cho tôi ví dụ về cách thêm lại khối đã xóa không? –
tìm hiểu ứng dụng/thiết kế/lối vào/cơ sở/mặc định/bố cục/page.xml trên dòng 78 và xem cách thêm –
Hmm, có vẻ như không hoạt động, tôi thêm khối 'trái' vào tham chiếu đến gốc, như trong trang.xml, và không có gì xuất hiện, ngay cả sau khi xác định rõ ràng một khối khác bên trong khối bên trái, giống như khối bản tin, tôi đang làm gì sai? –
Thay vì cố gắng để tái tạo lại toàn bộ các khối, bình luận phương thức remove bên trong XML gốc. Đây sẽ là ít đau đầu bảo trì hơn là cố gắng để tái tạo lại các khối và lo lắng về việc ưu tiên của các tập tin XML vv
Rẽ này
<remove name="left" />
Into
<!-- disabling remove because X -->
<!-- <remove name="left" /> -->
Bạn sẽ phải chỉnh sửa các tập tin Magento Core cho giải pháp này, đó không bao giờ là một ý tưởng hay. Bạn không thể cập nhật hệ thống của mình khi bạn đã thay đổi các tệp Core. – Handfeger
Khi một khối là loại bỏ nó không bị phá hủy, chỉ bị bỏ qua. Bạn có thể 'kích hoạt lại' nó với:
<checkout_cart_index>
<reference name="root">
<action method="append"><block>left</block></action>
</reference>
</checkout_cart_index>
Tôi chưa bao giờ sử dụng bản thân mình và không muốn, nếu bạn đang tạo chủ đề tùy chỉnh rồi sao chép tệp bố cục cơ sở và chỉnh sửa chúng trực tiếp giống như các câu trả lời khác đề xuất.
Thật không may điều này dường như không hoạt động. Nó sẽ là một giải pháp hoàn hảo nếu nó đã làm. –
Thật không may. Nó không hoạt động. Bất kỳ giải pháp nào khác theo cách này kể từ thời điểm đó? – DarkCowboy
Yup. Đây là một câu trả lời rất cũ và nếu nó đã từng làm việc nó chắc chắn không còn nữa. – clockworkgeek
Hai cách tôi làm điều này là;
Sử dụng plugin tuyệt vời của Alan Storm ở trên.
Hãy chèn lại khối đã xóa trong tệp local.xml với thuộc tính tên mới nhưng cùng một thuộc tính hoặc thuộc tính 'as'.
Tên thuộc tính cần phải được khác nhau vì Magento <remove name="foo" />
là toàn cầu - nó loại bỏ tất cả các trường của <block name="foo" />
ngay cả khi chúng được bổ sung sau khi hướng dẫn loại bỏ. Để thêm lại cột bên trái, ví dụ;
<reference name="root">
<block name="left.2" as="left" type="core/text_list">
<!-- New left column is empty, so you'll need to add your left-column blocks into it here. -->
</block>
</reference>
name = "left.2" có nghĩa là hành động loại bỏ sẽ không giết khối này, như = "left" có nghĩa là nó sẽ vẫn được chèn vào template của bạn thông qua <?php echo $this->getChildHtml('left') ?>
.
Rất tiếc, cột trái vừa được chèn của bạn trống. Vì vậy, bạn sẽ phải chèn lại bất kỳ khối trong đó mà bạn muốn hiển thị là tốt. Làm cho plugin của Alan Storm trở nên hữu ích hơn, tôi nghĩ vậy.
+ phương pháp 2 làm việc cho tôi. –
- 1. Magento lưới vô hiệu hóa phân loại và lọc
- 2. Vô hiệu hóa khách hàng trong Magento
- 3. Trước và Sau Trong Local.xml Magento?
- 4. C# Làm thế nào để vô hiệu hóa một phím
- 5. Magento, làm thế nào để vô hiệu hóa mô-đun lập trình?
- 6. python: làm thế nào để vô hiệu hóa tự động loại khi tạo từ điển
- 7. làm thế nào để vô hiệu hóa fling của scrollView
- 8. Làm thế nào để loại bỏ thuộc tính vô hiệu hóa của một textarea bằng cách sử dụng jQuery?
- 9. Làm thế nào để vô hiệu hóa nút trong UIActionSheet?
- 10. Làm thế nào để vô hiệu hóa rìa trong Emacs?
- 11. Làm thế nào để vô hiệu hóa PerfWatson trong VS2012?
- 12. Làm thế nào để vô hiệu hóa mod_deflate trong apache2?
- 13. Làm thế nào để vô hiệu hóa javax.swing.JButton trong java?
- 14. Làm thế nào để vô hiệu hóa subversion trong netbeans
- 15. Tạo một loại giá trị không thể vô hiệu hóa có thể vô hiệu hóa
- 16. Làm thế nào để vô hiệu hóa tiêu đề của cửa sổ trong một FragmentActivity?
- 17. Popcorn.js - Làm thế nào để loại bỏ một tín hiệu?
- 18. WPF Làm thế nào để vô hiệu hóa DropShadowEffect
- 19. Làm thế nào để vô hiệu hóa OUTFILE và INFILE?
- 20. Khi nào một người nên cố gắng loại bỏ một tuyên bố chuyển đổi?
- 21. Làm thế nào để gỡ lỗi một Tuyên bố LINQ
- 22. Làm thế nào để vô hiệu hóa cuộn bên trong datagrid trong wpf C#
- 23. Vô hiệu hóa Sản phẩm Magento qua mã
- 24. Làm thế nào để giảm một tuyên bố hợp lý?
- 25. Làm thế nào để bạn vô hiệu hóa hiệu ứng MouseOver trên một Nút trong WPF?
- 26. Tuyên bố một loại mảng
- 27. Làm thế nào để vô hiệu hóa bộ đệm sâu?
- 28. Làm thế nào để vô hiệu hóa google maps kéo
- 29. Làm thế nào để vô hiệu hóa Tomcat trang chủ
- 30. Làm thế nào để vô hiệu hóa cảnh báo #pragma?
Cảm ơn bạn Alan. Tiện ích của bạn tuyệt vời và hoạt động mà không gặp bất kỳ sự cố nào ở đây. Chính xác những gì tôi đang tìm kiếm! –