我使用magento 1.7,我尝试覆盖模型Model Mage_Catalog_Model_Product_Attribute_Backend_Media,但这不起作用。
我的课程:
class Mycompany_Mymodule_Model_Catalog_Product_Attribute_Backend_Media extends Mage_Catalog_Model_Product_Attribute_Backend_Media
我的配置:
...
<model>
<catalog>
<rewrite> <product_attribute_backend_media>Mycompany_Mymodule_Model_Catalog_Product_Attribute_Backend_Media</product_attribute_backend_media>
</rewrite>
</catalog>
</model>
你能帮助我吗?
THX
答案 0 :(得分:1)
您根本不需要重写任何核心文件。
您需要做的是创建1个新文件:
[Namespace]/[Module]/Block/[Adminhtml]/template/grid/renderer/Image.php
对于Image.php
class [Namespace]_[Module]_Block_[Adminhtml]_Template_Grid_Renderer_Image extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Action {
public function render(Varien_Object $row)
{
return $this->_getValue($row);
}
public function _getValue(Varien_Object $row)
{
if ($getter = $this->getColumn()->getGetter()) {
$val = $row->$getter();
}
$val = $row->getData($this->getColumn()->getIndex());
$val = str_replace("no_selection", "", $val);
$url = Mage::getBaseUrl('media') . DS . $val;
$out = $val. '<center><a href="'.$_url.'" target="_blank" id="imageurl">';
$out .= "<img src=". $url ." width='60px' ";
$out .=" />";
$out .= '</a></center>';
return $out;
}
}
根据需要更改函数中的代码以进入文件夹,并进行错误检查。
对于Grid.php,将以下内容添加到您的某个addColumns中,如下所示
$this->addColumn('image1', array(
'header' => Mage::helper('attributeimages')->__('Image 1'),
'align' => 'left',
'index' => 'image1',
'renderer' => '[module]/[adminhtml]_template_grid_renderer_image',));
注意'渲染器'选项!
自定义