2013-02-02 66 views
1

我試圖在Magento中創建一個新的自定義模塊(塊),它將顯示製造商在產品詳細信息頁面上的其他產品。當我加載產品詳細信息頁面獲取:Magento:錯誤的自定義模塊(類未在Layout.php中找到)

Fatal error: Class 'AimIT_ManufacturerBlock_Block_Manufacturerblock' not found in ..\app\code\core\Mage\Core\Model\Layout.php on line 491 

我已經創建:

1)\應用\等\模塊\ AimIT_ManufacturerBlock.xml

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <modules> 
    <AimIT_ManufacturerBlock> 
     <!-- Whether our module is active: true or false --> 
     <active>true</active> 
     <!-- Which code pool to use: core, community or local --> 
      <codePool>local</codePool> 
     </AimIT_ManufacturerBlock> 
     </modules> 
    </config> 

2)\應用\代碼\本地\ AimIT \ ManufacturerBlock \等\ config.xml中

<?xml version="1.0"?> 
<config> 
    <global> 
    <blocks> 
     <aimitmanufacturerblock> 
     <class>AimIT_ManufacturerBlock_Block</class> 
     </aimitmanufacturerblock> 
    </blocks> 
    </global> 
</config> 

3)\應用\代碼\本地\ AimIT \ ManufacturerBlock \塊\ Manufacturerblock.php

<?php 
class AimIT_ManufacturerBlock_Block_Manufacturerblock extends Mage_Core_Block_Template 
{  
    public function getManufacturerProducts($manufacturer) 
    { 
     $collection = Mage::getModel('catalog/product')->getCollection(); 
     $collection->addAttributeToFilter('manufacturer',$manufacturer); 
     $collection->addAttributeToSelect('manufacturer'); 

     return $collection; 
    } 
} 
?> 

4)\應用\設計\前端\默認\響應\模板\ aimit \ manufacturerblock \ manufacturerblock.phtml

<?php $_products = $this->getManufacturerProducts('cukrarna-u-vanku') ?> 
<?php print_r($_products); ?> 

5)在產品目錄中\產品\ view.phtml我已經把這個代碼:

<?php echo $this->getLayout()->createBlock('aimitmanufacturerblock/manufacturerblock')->setTemplate('aimitmanufacturerblock/manufacturerblock.phtml')->toHtml(); ?> 

創建模塊時我省略了什麼?

回答

2

當翻譯「aimitmanufacturerblock/manufacturerblock」成一個類名的Magento產生AimIT_ManufacturerBlock_Block_Manufacturerblock下這樣的名稱也找不到一類,因爲你的塊的類名稱實際上是「AimIT_ManufacturerBlock_Block_ManufacturerBlock」 - 這是錯誤的套管。

重命名你的類到

class AimIT_ManufacturerBlock_Block_Manufacturerblock extends Mage_Core_Block_Template 
{ 

重命名你的類文件ManufacturerBlock .PHP爲Manufacturerblock.php

+0

謝謝您的回答。但似乎沒有幫助。我試過了,並且出現了相同的消息。 – Swip

+0

您的商店是否在Windows或Linux上運行?我的Windows機器上有類似的問題 - 我編輯與Linux服務器共享的文件夾中的代碼庫,在該文件夾中實際運行商店。如果我在Windows中重命名文件並只更改字母大小寫 - Linux服務器並不總是選擇該文件,並且錯誤仍然存​​在。我必須刪除該文件並用正確的名稱重新創建它。 –

+0

好吧,我刪除並重新創建,它現在似乎工作。所以看起來就是這個命名。非常感謝您的幫助! – Swip

相關問題