Tạo một lớp trình trợ giúp tùy chỉnh trong mô-đun


24

Tôi đã tạo một mô-đun mới được gọi test_helpervà tôi muốn tạo một lớp trợ giúp trong mô-đun này để tôi có thể thêm các chức năng tùy chỉnh được gọi trên tất cả các trang web của mình.

Tuy nhiên tôi dường như không thể tìm thấy bất kỳ ví dụ nào về cách thực hiện việc này. Tôi giả sử tôi phải tạo thêm một số xml trong cấu hình và quảng cáo một tệp khác ở đâu đó mở rộng trình trợ giúp cơ sở nhưng tôi không gặp may mắn khi tìm thấy một ví dụ để xây dựng.

Câu trả lời:


34

Quy ước đặt tên mô-đun của bạn khá khó hiểu - bạn đang gọi chính trình trợ giúp mô-đun? Với mục đích giải thích, tôi chọn gọi mô-đun của bạnmyname_mymodule

Trong mô-đun của bạn ./app/code/community/MyName/MyModule/etc/config.xml, trong các <global>thẻ

<helpers>
  <mymodule>
      <class>MyName_MyModule_Helper</class>
  </mymodule>
</helpers>

Sau đó tạo tập tin ./app/code/community/MyName/MyModule/Helper/Data.php

<?php

class MyName_MyModule_Helper_Data extends Mage_Core_Helper_Abstract{

}

Sau đó, để gọi mô-đun đó, bạn sẽ sử dụng

$helper = Mage::helper('mymodule');

9

Thêm một thư mục Trình trợ giúp trong thư mục mở rộng và trong đó có một tệp Data.php

class Test_Helper_Helper_Data extends Mage_Core_Helper_Abstract {

  public function yourFunction() {
     ...
     your code here
     ...
  } 

}

Bây giờ bạn có thể gọi nó qua

Mage::helper('test/helper')->yourFunction();

Ngoài ra, thêm vào sau đây của bạn config.xml

...
<global>
    ...
    <helpers>
        <[extension name]>
            <class>[Namespace]_[extension name]_Helper</class>
        </[extension name]>
    </helpers>
    ...
</global>
...

Cảm ơn hai bạn rất nhiều, Điều này sao lưu một chút thông tin nhỏ mà tôi có thể tìm thấy và cuối cùng tôi đã có thể làm cho nó hoạt động. Tôi thực sự không gọi nó là test_helper chỉ dành cho tôi để trải qua các công cụ trong khối kiểm tra litle của tôi nhưng vâng ý tưởng ngu ngốc gọi nó là helper = p
Chris Morris

Có lẽ bạn nên đổi tên nó nhưng điều chính là nó hoạt động! chúc may mắn với dự án
Sander Mangel
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.