Thêm khối điều hướng lớp vào trang tùy chỉnh


9

Trong Magento, khối Điều hướng được xếp lớp hoạt động độc đáo trong trang danh sách sản phẩm.

Làm thế nào khối này có thể được sao chép thành công vào một trang tùy chỉnh, nơi có một danh sách các sản phẩm tùy chỉnh?

Lưu ý: Chỉ cần thêm khối vào XML và gọi nó getChildHtml('blockname')không phải là mẹo.


2
Bạn cần thêm một danh mục mặc định vào mã khối điều hướng layared vì điều hướng layared được xây dựng từ các sản phẩm của thể loại hiện tại.
Sander Mangel

+1 cho trợ giúp, nếu có nhiều sản phẩm từ nhiều danh mục (ví dụ: sản phẩm thỏa thuận) thì sao?
pzirkind

2
Tôi sẽ tạo một thể loại đặc biệt cho điều đó. Có thể có những cách khác nhưng đây chắc chắn là cách dễ nhất và có thể mở rộng nhất!
Sander Mangel

1
Nếu bạn thực sự muốn thì bạn sẽ phải tạo một thể loại tùy chỉnh. Điều hướng lớp thực sự hy vọng sẽ có một thể loại để làm việc, nó sẽ không có một ProductCollection đơn giản mà không ghi đè lên toàn bộ nhiều lớp.
Rick Kuipers

Câu trả lời:


5

Về cơ bản những gì bạn phải làm là extend/overwritetừ Mage_Catalog_Block_ Productt_List (List.php) và viết lại getProductCollection()phương thức:

protected function _getProductCollection()
{
    if (is_null($this->_productCollection)) {
        // Build collection and set it
        $collection = "...";
        $this->setProductCollection($collection);
    }

    return $this->_productCollection;
}

Khi đã xong, tôi đã ghi đè cả Mage_Catalog_Model_Layerlớp và lớp Mage_Catalog_Model_Categoryvà giới thiệu một biến mới:

protected $_customProductCollection;

Tôi đã ghi đè lên getProductCollection()cả hai lớp và tôi đã thêm phần này vào đầu phương thức:

if(isset($this->_customProductCollection)){
    return $this->_customProductCollection;
}

Tôi cũng có một phương thức cho phép tôi đặt cái này "customProductCollection"bên trong cả hai lớp này. Sau khi được đặt, phần còn lại của dữ liệu của điều hướng / danh mục lớp được dựa trên bộ sưu tập này.

Kiểm tra câu hỏi ban đầu + trả lời ở đây .

Chúc may mắn ;)


Phương pháp này để thiết lập chế độ giám sát và bạn gọi nó từ đâu?
Easymoden00b 17/2/2015
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.