2012-03-05 32 views
6

Tôi cố gắng viết lại tệp lõi từ Magento. Bằng cách nào đó nó không ghi đè mã. Tôi cố gắng ghi đè hàm getProduct().Magento: Viết lại khối không hoạt động

Tipfix/Khối/sản phẩm/View.php

<?php 

class WP_Tipfix_Block_Catalog_Product_View extends Mage_Catalog_Block_Product_View 
{ 

    public function getProduct() 
    { 

     if (!Mage::registry('product') && $this->getProductId()) { 
      $product = Mage::getModel('catalog/product')->load($this->getProductId()); 
      Mage::register('product', $product); 
     } 

     //return Mage::registry('product'); 
    } 
} 

Tipfix/etc/config.xml

<blocks> 
    <WP_Tipfix> 
     <class>WP_Tipfix_Block</class> 
    </WP_Tipfix> 
    <catalog> 
     <rewrite> 
      <product_view>WP_Tipfix_Block_Catalog_Product_View</product_view> 
     </rewrite> 
    </catalog> 
</blocks> 

Tôi có biết ý tưởng những gì tôi đang làm sai.

Gr. Lex

+0

FYI nhóm lớp ' 'là không cần thiết trừ khi bạn đang tạo các lớp khối. – benmarks

Trả lời

9

Lớp học của bạn là WP_Tipfix_Block_Catalog_Product_View có nghĩa là phải nằm trong thư mục WP/Tipfix/Block/Catalog/Product/View.php. Bạn phải di chuyển thư mục Sản phẩm của mình vào một thư mục mới có tên Catalogue ở địa điểm đó hoặc đổi tên lớp của bạn (cả lớp và trong XML) thành WP_Tipfix_Block_Product_View. Tôi khuyên bạn nên di chuyển tệp.

+0

Cảm ơn thông tin của bạn! – Lexperts

3

Vui lòng thay đổi nội dung config.xml của module này, và tôi chắc chắn rằng nó sẽ làm việc: -

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <modules> 
     <WP_Tipfix> 
      <version>1.0.0</version> 
     </WP_Tipfix> 
    </modules> 

    <global> 
     <blocks> 
      <wptipfix> 
       <class>WP_Tipfix_Block</class> 
      </wptipfix> 

      <catalog> 
       <rewrite> 
        <product_view>WP_Tipfix_Block_Catalog_Product_View</product_view> 
       </rewrite> 
      </catalog> 
     </blocks> 
    </global> 
</config> 

Hy vọng nó giúp.


UPDATE: - Sau bình luận Ben 's, tôi cảm thấy rằng tôi nên đã nói rằng OP cũng phải sử dụng các giải pháp như đã đề cập bởi Max trong answer mình. Vì vậy, OP sẽ cần một nỗ lực kết hợp để khắc phục vấn đề của mình.

+1

Cảm ơn bạn đã khắc phục sự cố. Tuyệt quá! – Lexperts

+0

Chúc mừng và chào đón nhiều nhất! –

+0

Giải pháp này * không thể * đã khắc phục sự cố dựa trên mã ban đầu của OP. – benmarks

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