0

我使用 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>

你能帮助我吗 ?

谢谢

4

1 回答 1

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',));

注意“渲染器”选项!

随心所欲地定制

于 2013-01-24T09:29:06.990 回答