Прежде всего вы должны определить дескриптор макета для вашего контроллера:
Примерно так:
<modulename_name_index>
</modulename_name_index>
Вы должны определить, где вы хотите отобразить: контент, слева, справа, другоеblock:
<modulename_name_index>
<reference name="content">
</reference name="content">
</modulename_name_index>
И затем вы определяете блок, который будет отображаться:
<modulename_name_index>
<reference name="content">
<block type="module/blockname" name="blockname" template="templatedir/templatefile.phtml"/>
</reference name="content">
</modulename_name_index>
Где module / blockname - это имя вашего блока.В примере файл должен выглядеть следующим образом:
Company / ModuleName / Block / Blockname.php.Ваш config.xml также должен быть определен правильно, чтобы magento понимал, что с модулем он должен загружать именно ваш класс.Примерно так:
<global>
...
<blocks>
<module>
<class>Company_Module_Block</class>
</module>
</blocks>
...
</global>
ОБНОВЛЕНИЕ 1
Если вы хотите просто визуализировать некоторый контент, вы можете использовать класс блоков Magento по умолчанию:
core/template or Mage/Core/Block/Template
Вот так будет выглядеть ваш xml-файл:
<modulename_name_index>
<reference name="content">
<block type="core/template" name="blockname" template="templatedir/templatefile.phtml"/>
</reference name="content">
</modulename_name_index>
НО, если у вас есть в .phtml-файле что-то вроде:
$this->getSomethingSpecificValueForCurrentDisplay()
Это не сработает.С другой стороны, если у вас очень простой php в вашем phtml, как показано ниже, вам не нужен ваш пользовательский блок.
<?php for(i = 0; i++; i< 10){ ?>
<?php echo "Hello mates" ?>
<?php } ?>