** Новый EDIT **
так что я пытаюсь это сделать.
Я хочу добавить новые элементы формы, сгенерированные моим модулем, в представлении продукта следующего URL
http://magento.example.com/catalog/product/view/id/46
в конечном итоге эти элементы будут отображаться связанной таблицей в моем модуле
Я ожидал, что если бы я расширил Mage_Catalog_Block_Product_View в своем модуле, как показано ниже, я смог бы создать в форме продукта блок, который будет содержать такие поля формы, только если он находится в соответствующей таблице в моем модуле
поэтому я создал файл test.phtml в
app/design/frontend/default/default/templates/<module>/test.phtml
затем, как вы можете видеть в моем файле View.php, описанном ниже, я построил блок и отобразил его в представлении продукта.
Оно появилось, но в 5 раз больше. из приведенных ниже ответов это нормально, поэтому он отвечает на вопрос о том, почему он появляется пять раз, но оставляет вопрос о том, как правильно действовать, поскольку этот план не будет работать
** Конец нового редактирования **
в моем модуле я вызываю _prepareLayout (), и он делает это 5 раз, когда я поднимаю страницу
вот мой код
в
/app/code/local/Namespace/Module/Product/Veiw.php
class <Namespace>_<module>_Block_Product_View extends Mage_Catalog_Block_Product_View {
protected function _toHtml() {
return parent::_toHtml();
}
public function _prepareLayout() {
$block = $this->getLayout()->createBlock(
'Mage_Core_Block_Template',
'my_block_name_here',
array('template' => '<module>/test.phtml')
);
if ($block){
$this->getLayout()->getBlock('content')->insert($block)->toHtml();
}else{
echo "no block";
}
return parent::_prepareLayout();
}
}
Примечание:
Я только что заметил, что это также убирает доступность цены и добавляет кнопку в корзину. что также является проблемой
EDIT
Сначала я хочу поблагодарить вас всех за ваши ответы. Во-вторых, я хочу дать вам больше контекста
причина, по которой я решил сделать это в модуле, заключается в том, что я не хочу, чтобы блок отображался на каждом продукте. У меня есть таблица того, что я назову пользовательскими параметрами, содержащими свойства продукта, такие как вес цвета волос и т. Д., И в зависимости от того, какой набор свойств привязан к продукту (если есть), будет зависеть от того, какой HTML-контент показать на странице.
так что в одном случае это может быть выпадающее меню, а в другом - поле ввода. другая очень важная часть - это то, что это должно быть настроено так, чтобы я мог выдать конечный результат в виде модуля, который можно установить, и не беспокоиться, что он не будет отображаться, если кто-то обновит его magento
тем не менее, имеет ли смысл делать все это в файле xml?