2012-01-19 27 views
8

Khi tôi cần phải viết lại một chức năng trong một người quan sát nằm trong phần Enterprise, cách viết lại bit đó sẽ giống như thế nào trên config.xml.Viết lại chức năng quan sát Thẻ quà tặng Magento

có giống như thế này không?

<global> 
    <models> 
     <enterprise> 
      <rewrite> 
       <giftcard>Custom_GiftCard_Model_Observer</giftcard> 
      </rewrite> 
     </enterprise> 
    </models> 
</global> 

Lớp học của tôi được khai báo như sau: lớp Custom_GiftCard_Model_Observer kéo dài Enterprise_GiftCard_Model_Observer { ..... }

Trả lời

17

Tôi không có một thiết lập môi trường phát triển doanh nghiệp vào lúc này, vì vậy đây là chưa được kiểm tra , nhưng nó sẽ hoạt động như mô tả.

Nếu bạn nhìn vào cấu hình Gift Card trong

app/code/core/Enterprise/GiftCard/etc/config.xml 

Bạn có thể grep về và khám phá những bí danh lớp học cho các quan sát viên thẻ quà tặng

<class>enterprise_giftcard/observer</class> 

Như vậy, với một bí danh lớp enterprise_giftcard/observer bạn có tên nhóm mô hình là enterprise_giftcard và tên lớp mô hình là observer.

Trong tập tin cấu hình của mô-đun của bạn, trước tiên bạn sẽ tạo ra một khu vực dành cho cấu hình mô hình

<global> 
    <models> 

    </models> 
</global> 

Sau đó, bạn sẽ thêm tên nhóm của lớp bạn muốn viết lại, enterprise_giftcard

<global> 
    <models> 
     <enterprise_giftcard> 
     </enterprise_giftcard> 
    </models> 
</global> 

Sau đó, bạn sẽ thêm nút cho biết bạn muốn viết lại một lớp duy nhất trong nhóm này

<global> 
    <models> 
     <enterprise_giftcard> 
      <rewrite> 
      </rewrite> 
     </enterprise_giftcard> 
    </models> 
</global> 
.210

này, bạn sẽ thêm một nút chỉ lớp MÀ trong nhóm mà bạn muốn viết lại, bằng cách sử dụng phần tên của bí danh lớp (observer)

<global> 
    <models> 
     <enterprise_giftcard> 
      <rewrite> 
       <observer></observer> 
      </rewrite> 
     </enterprise_giftcard> 
    </models> 
</global> 

Và cuối cùng, trong phạm vi nút này, bạn sẽ thêm một nút văn bản là tên của lớp mới của bạn.

<global> 
    <models> 
     <enterprise_giftcard> 
      <rewrite> 
       <observer>Custom_GiftCard_Model_Observer</observer> 
      </rewrite> 
     </enterprise_giftcard> 
    </models> 
</global> 

Bạn có thể kiểm tra viết lại của bạn bằng cách instantiating người quan sát trực tiếp và kiểm tra tên lớp của nó

$model = Mage::getModel('enterprise_giftcard/observer'); 
var_dump(get_class($model)); 
+0

mô tả Vâng tôi ur đi theo. – Gowri

+0

cảm ơn phản hồi nhanh. sẽ nhanh chóng dùng thử. – ShaunOReilly

+0

Điều đó đã làm công việc, cảm ơn. Tôi đã kéo tóc ra, bởi vì tôi đã quên những điều cơ bản! – ShaunOReilly

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