Да, вы делаете это правильно. Хотя у Magento есть иерархия классов для автоматического создания виджетов форм, они страдают от той же «проблемы», с которой сталкиваются все тесно связанные компоненты пользовательского интерфейса: это замечательно, если вы хотите делать именно то, что сделано в другом месте приложения. отнимает много времени, если вы хотите / должны сильно настроить функциональность. Стоит узнать, как они работают, но нет причин, по которым вы не можете использовать Magento, как если бы вы были более простой системой PHP MVC.
Стоит узнать, как работает каждая система в Magento, но прыжок в сетку целиком может просто запутать вас больше, чем когда вы начали.
Переходя к вашему конкретному вопросу, каждый блок, который наследуется от Mage_Core_Block_Template, имеет метод "setTemplate
". Этот метод используется, чтобы сообщить Magento, какой шаблон phtml вы хотите использовать для блока. Итак, в конструкторе вашего блока что-то вроде
class Optimise_Twits_Block_HelloWorld extends Mage_Core_Block_Template
{
protected function __construct()
{
$this->setTemplate('path/to/my/template.phtml');
}
}
Вы также заметите, что мы удалили метод _toHtml
. _toHtml
в базовом классе (Mage_Core_Block_Template
) - это то, что загружает ваш шаблон. Поэтому, если вы переопределите его, ваш блок больше не будет загружаться и отображать шаблон.
Путь к шаблону начинается, в том числе, из папки базового шаблона вашей темы. Итак, если вы использовали современную тему
/app/design/frontend/default/modern/template
Вы бы поместили свой шаблон в
/app/design/frontend/default/modern/template/path/to/my/template.phtml
(это немного упрощено, но, опять-таки, слишком запутаться в том, как работают тематические пути, может только помешать на этом этапе. Начните трассировку с Mage_Core_Block_Abstract::renderView
для «истины»)
Этого должно быть достаточно, чтобы начать. Если у вас возникнут дальнейшие проблемы, просто задайте другой, конкретный вопрос здесь, и кто-то должен быть в состоянии помочь. Пробираясь по Базе знаний - это отличный способ узнать больше о том, как все это работает, а также статьи, которые выходят за рамки базы (отказ от ответственности: я автор оба)