существующий метод magento переписать с помощью модуля
У меня есть несколько модификаций основных файлов в моей папке app/code/local/Mage, но я не хочу, чтобы они работали как модуль magento.
Мой пример: Я сделал несколько небольших изменений в методе getValueHtml в файле Mage/Bundle/Block/Sales/Order/Items/Renderer.php и теперь я не хочу, чтобы этот переписанный метод использовался.
Я следил за онлайн-учебниками по переписыванию блоков, но это не работает для меня. Я что-то упускаю, но не могу понять, что именно. Это мой модуль файлы:
App/code/local/MyCompany/Bundleproducts/etc/config.xml :
<?xml version="1.0"?>
<config>
<modules>
<MyCompany_Bundleproducts>
<version>1.0.0</version>
</MyCompany_Bundleproducts>
</modules>
<global>
<blocks>
<bundle>
<rewrite>
<sales_order>MyCompany_Bundleproducts_Block_Sales_Order_Items_Renderer</sales_order>
</rewrite>
</bundle>
</blocks>
</global>
</config>
App/code/local/MyCompany/Bundleproducts/Block/Sales/Order/Items/Renderer.php :
<?php
class MyCompany_Bundleproducts_Block_Sales_Order_Items_Renderer extends Mage_Bundle_Block_Sales_Order_Items_Renderer
{
public function getValueHtml($item)
{
if ($attributes = $this->getSelectionAttributes($item)) {
return sprintf('%d', $attributes['qty']) . ' TEST ' .
$this->escapeHtml($item->getName());
} else {
return $this->escapeHtml($item->getName());
}
}
}
И app/etc/modules/MyCompany_Bundleproducts.xml
<?xml version="1.0"?>
<config>
<modules>
<MyCompany_Bundleproducts>
<active>true</active>
<codePool>local</codePool>
</MyCompany_Bundleproducts>
</modules>
</config>
Может ли кто-нибудь указать мне правильное направление? Спасибо!
2 answers
Ваша перезапись блока должна быть такой
<blocks>
<bundle>
<rewrite>
<sales_order_items_renderer>MyCompany_Bundleproducts_Block_Sales_Order_Items_Renderer</sales_order_items_renderer>
</rewrite>
</bundle>
</blocks>
При переопределении необходимо указать полный путь к основному блоку. Это config.xml
код
<?xml version="1.0"?>
<config>
<modules>
<MyCompany_Bundleproducts>
<version>1.0.0</version>
</MyCompany_Bundleproducts>
</modules>
<global>
<blocks>
<bundle>
<rewrite>
<sales_order_items_renderer>MyCompany_Bundleproducts_Block_Sales_Order_Items_Renderer</sales_order_items_renderer>
</rewrite>
</bundle>
</blocks>
</global>
</config>