【问题标题】:Magento Override Model Mage_Catalog_Model_Product_Attribute_Backend_MediaMagento 覆盖模型 Mage_Catalog_Model_Product_Attribute_Backend_Media
【发布时间】:2013-01-07 22:44:39
【问题描述】:

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

你能帮帮我吗?

谢谢

【问题讨论】:

  • 你想做什么?导入图片?
  • 我只想为每张图片添加几列。

标签: magento model overriding


【解决方案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',));

注意“渲染器”选项!

随心所欲地定制

【讨论】:

  • 事实上,我想添加一些新的文本字段,如“标签”,为图像添加更多信息。
  • 我要添加的列在产品编辑中,在图像选项卡中。有什么想法吗?
  • 请参阅stackoverflow.com/questions/14184156/…,这可能会有所帮助
  • 我找到了解决方案。我更新了 media_gallery 属性以使用我自己的 backend_model,它扩展了 Mage_Catalog_Model_Product_Attribute_Backend_Media 谢谢你的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-13
  • 1970-01-01
  • 2012-09-22
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
相关资源
最近更新 更多