Я хотел бы добавить дополнительную информацию под каждым товаром в корзине. Я уже сохранил эту информацию в таблице "sales_flat_quote_item" в поле "extra_info". Поэтому вопрос заключается только в том, как показать его глобально во всех местах, где показаны предметы.
Я видел в нескольких местах под названием предмета такую структуру:
<?php if ($addtInfoBlock = $this->getProductAdditionalInformationBlock()):?>
<?php echo $addtInfoBlock->setItem($_item)->toHtml() ?>
<?php endif;?>
Например, в следующих файлах:
/app/design/frontend/base/default/template/checkout/cart/item/default.phtml
/app/design/frontend/base/default/template/checkout/onepage/review/item.phtml
Итак, я полагаю, это место, которое я должен использовать для такой задачи.
Я понял, что:
Я должен добавить свое собственное определение блока, например:
<checkout_cart_index>
<block type="core/text_list" name="additional.product.info" translate="label">
<label>Additional Product Info</label>
<block type="various/itemrendererdefault" name="glass.additional" as="glass" template="checkout/cart/glass_additional.phtml"/>
</block>
</checkout_cart_index>
Пока это не проблема. Мой класс загружен
class Site1_Various_Block_Itemrendererdefault extends Mage_Core_Block_Template {
public function setItem(Varien_Object $item) {
$this->setData('item', $item);
return $this;
}
public function getItem() {
return $this->_getData('item');
}
}
и вызывается шаблон checkout / cart / glass_additional.phtml.
Но внутри шаблона я понятия не имею, как получить информацию о том, что $ item я должен обработать. Я попробовал:
$_item = $this->getItem();
print_r($_item);
$_item = $this->getData();
print_r($_item);
но ничего не возвращает.
Итак, мой вопрос: как получить данные $ item внутри моего шаблона.
Могу ли я получить доступ к данным, установленным в?
...
$addtInfoBlock->setItem($_item)->toHtml();
...