Я хочу создать платежный модуль, который в основном идентичен методу чека / денежного перевода, в котором, когда вы нажимаете переключатель, чтобы выбрать его, внизу появляется часть информации с инструкциями.
Я создал модуль, который работает, но я не могу получить эту информацию под ним.Когда я включаю его, я просто получаю пустую страницу ошибки (без сообщения).
У меня есть следующие файлы в папке моего модуля:
- Block / Form /Bacs.php
- Блок / Информация / Bacs.php
- и т.д. / config.xml
- etc / system.xml
- Model / Method / Bacs.php
И вот, у меня есть следующие файлы:
- payment / info / bacs.phtml
- payment / form / bacs.phtml
Я думаю, чтопроблема заключается в моих блочных php-файлах, потому что когда я удаляю ссылки на них из моего файла модели, модуль работает.Вот обзор файлов, в которых, как мне кажется, заключается проблема:
Model / Method / Bacs.php
class Creare_Bacs_Model_Method_Bacs extends Mage_Payment_Model_Method_Abstract
{
protected $_code = 'bacs';
protected $_formBlockType = 'bacs/form_bacs';
protected $_infoBlockType = 'bacs/info_bacs';
public function assignData($data)
{
$details = array();
if ($this->getInstructions()) {
$details['instructions'] = $this->getInstructions();
}
if (!empty($details)) {
$this->getInfoInstance()->setAdditionalData(serialize($details));
}
return $this;
}
public function getInstructions()
{
return $this->getConfigData('instructions');
}
}
Block / Info / Bacs.php
class Creare_Bacs_Block_Info_Bacs extends Mage_Payment_Block_Info
{
protected $_instructions;
protected function _construct()
{
parent::_construct();
$this->setTemplate('payment/info/bacs.phtml');
}
public function getInstructions()
{
if (is_null($this->_instructions)) {
$this->_convertAdditionalData();
}
return $this->_instructions;
}
protected function _convertAdditionalData()
{
$details = @unserialize($this->getInfo()->getAdditionalData());
if (is_array($details)) {
$this->_instructions = isset($details['instructions']) ? (string) $details['instructions'] : '';
} else {
$this->_instructions = '';
}
return $this;
}
}
Block / Form / Bacs.php
class Creare_Bacs_Block_Form_Bacs extends Mage_Payment_Block_Form
{
protected function _construct()
{
parent::_construct();
$this->setTemplate('payment/form/bacs.phtml');
}
}
В моем файле system.xml у меня есть это, которое выводит инструкции textareaна картинке ниже:
<instructions translate="label">
<label>Instructions</label>
<frontend_type>textarea</frontend_type>
<sort_order>2</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</instructions>
Действительно не уверен, что я сделал неправильно.Я не хочу, чтобы этот первый пост был слишком длинным, поэтому дайте мне знать, нужны ли еще какие-то файлы.Я уверен, что проблема в предоставленных мной блочных файлах.
Может кто-нибудь сказать мне, если я допустил ошибку при создании любого из файлов, которые я показал выше?