Вновь созданный класс блоков не найден в magento

Внезапно в Magento 1.9.2.4 я не могу создать новый блок. Значит когда я создаю файл класса и на интерфейсе когда я пытаюсь получить имя класса или получить макет его говорит класс не найден.

Существующие блоки работают правильно и только новые не работают.

Я определил блок в config xml

<?xml version="1.0"?>
<config>
  <modules>
    <Custom_Homepage>
      <version>0.1.0</version>
    </Custom_Homepage>
  </modules>
  <global>
    <blocks>
      <homepage>
        <class>Custom_Homepage_Block</class>
      </homepage>
    </blocks>
  </global>
</config>

<?php
 class Custom_Homepage_Block_Product_Slider3 extends
       Mage_Catalog_Block_Product_List{
   protected function _construct(){
      echo 1212;exit;
   }
 }
 ?>

И пытается вызвать блок в файле шаблона :-

$this->getLayout()->createBlock('homepage/product_Slider3')
->setTemplate('homepage/catalog/product/category-3.phtml')->toHtml();

2 ответа

  1. Попробуйте расширить с помощью Mage_Core_Block_Template вместо Mage_Catalog_Block_Product_List. Также измените это

    $this->getLayout()->createBlock('homepage/product_Slider3') ->setTemplate('homepage/catalog/product/category-3.phtml')->‌​toHtml(); 
    

    к

    $this->getLayout()->createBlock('homepage/product_slider3') ->setTemplate('homepage/catalog/product/category-3.phtml')->‌​toHtml(); 
    

    Чтобы отобразить содержимое этого блока, можно также вызвать этот вызов, так как вы не используете макет интерфейса

    $this->getLayout()->createBlock('homepage/product_slider3'); 
    
  2. В дополнение к опечатке в имени блока, упомянутой Jickson-вы никогда не должны создавать блок программно в шаблоне. Вместо этого используйте XML-код макета, чтобы добавить блок в блок, из которого его нужно вызвать. Затем используйте $this->getChildHtml()файл шаблона этого блока для вызова нового блока.

    Создание его вручную, по существу, обходит фреймворк, который разрушает цель его использования.