0

私は magento 1.7 を使用し、モデル モデル 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 の 1 つに以下を追加します。

        $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 に答える