2012-02-19 36 views
8

Tôi đang cố gắng để tạo ra một mô-đun tùy chỉnh helper trong Magento nhưng tôi nhận được lỗi sau khi tôi gọi nó từ một trang:Gọi một lớp helper trong Magento

Warning: include(Mage/SEO/Helper/Data.php) [function.include]: failed to open stream: No such file or directory in /home/strailco/1stclassholidays.com/html/lib/Varien/Autoload.php on line 93 

Từ mẫu tôi đang sử dụng như sau để gọi các mô-đun helper:

<?php echo Mage::helper('SEO')->getFullProductUrl($product); ?> 

module helper được thành lập theo:

/app/code/local/SEO/Fullurl/Helper/Data.php 
/app/code/local/SEO/Fullurl/etc/config.xml 

Data.php gọi thứ chức năng e:

<?php 

class getFullProductUrl { 

public function getFullProductUrl($product) 
{ 
} 

Tôi đã tôi config.xml thiết lập như thế này:

<?xml version="1.0"?> 
<config> 
    <global> 
     <helpers> 
     <SEO> 
     <class>getFullProductUrl</class> 
     </SEO> 
     </helpers> 
    </global> 
</config> 

Tôi nghĩ vấn đề là cách tôi có các config.xml thiết lập nhưng tôi đang gặp khó khăn để tìm ra cách làm đúng.

Tôi sẽ rất tuyệt vời về bất kỳ trợ giúp nào bạn có thể cung cấp. Tôi đã làm việc này trong một vài ngày nhưng không thể làm cho nó hoạt động được.

Nhiều Cảm ơn

Jason

+0

Tôi có lỗi tương tự với một mô-đun khác: ERR (3): Cảnh báo: bao gồm (Mage/Adjgiftreg/Helper/Data.php): không mở được luồng: Không có tệp hoặc thư mục nào ở ... bạn ở đâu call echo Mage :: helper ('SEO') -> getFullProductUrl ($ sản phẩm); ?? – Leoh

Trả lời

20

vấn đề đầu tiên của bạn là config.xml. Bạn phải nói với Magento lớp bạn đang sử dụng.

...Other Stuff... 
<global> 
    ...Other Stuff... 
    <helpers> 
    <SEO> 
     <class>SEO_Fullurl_Helper</class> 
    </SEO> 
    </helpers> 
    ...Other Stuff... 
</global> 
...Other Stuff... 

Sau đó, bạn cần một người trợ giúp trong app/code/local/SEO/Fullurl/Helper/Data.php trông như thế này:

class SEO_Fullurl_Helper_Data extends Mage_Core_Helper_Abstract 
{ 

    function getFullProductUrl($product) 
    { 
    } 
} 

Sau đó, bạn có thể làm echo Mage::helper('SEO')->getFullProductUrl($product);

+0

Cảm ơn bạn đã trả lời - trong config.xml khi bạn nói "các nội dung khác ..." bạn có ý gì? Tôi có thiếu cái gì đó từ tập tin không? –

+1

Bạn đang thiếu một _lot_ thứ! Đọc http://alanstorm.com/magento_config để tìm hiểu về các tệp cấu hình. Nếu bạn muốn Blocks, Controllers hoặc Models bạn sẽ phải khai báo chúng trong config.xml. Đọc thêm trên http://alanstorm.com/category/magento – Max

1

Tôi đã bỏ lỡ bước của việc thêm các module để app/etc/modules /SEO_Fullurl.xml

<?xml version="1.0"?> 
<config> 
    <modules> 
     <SEO_Fullurl> 
      <active>true</active> 
      <codePool>local</codePool> 
     </SEO_Fullurl> 
    </modules> 
</config> 

Tôi hy vọng điều này sẽ giúp ai đó, ve ry dễ dàng sai lầm để thực hiện.

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