2016-08-24 3 views

答えて

2

まず、既存の製品管理テーブルに新しい列を追加するには、マゼンタブロック:Mage_Adminhtml_Block_Catalog_Product_Gridを拡張する必要があります。 これを行うには、カスタムモジュールfeを作成することができます。これらの行を入れXXXという名前で、config.xmlファイル内:_prepareCollection()

class XXX_Adminhtml_Block_Catalog_Product_Grid extends Mage_Adminhtml_Block_Catalog_Product_Grid { 
    // ... 
    protected function _prepareCollection() 
    { 
     //... 
     $collection = Mage::getModel('catalog/product')->getCollection() 
      ->addAttributeToSelect('sku') 
      ->addAttributeToSelect('name') 
      ->addAttributeToSelect('attribute_set_id') 
      ->addAttributeToSelect('type_id') 
      ->addAttributeToSelect('thumbnail'); 
     //... 

及び第二の方法::

<global> 
    <blocks> 
     <adminhtml> 
      <rewrite> 
       <catalog_product_grid>XXX_Adminhtml_Block_Catalog_Product_Grid</catalog_product_grid> 
      </rewrite> 
     </adminhtml> 
    </blocks> 
</global> 

は、今すぐあなたのファイルに次の2つのメソッドを上書きする必要がありますXXX_Adminhtml_Block_Catalog_Product_Grid
protected function _prepareColumns() 
{ 
    //... 
    $this->addColumn('product_image', array(
     'header' => Mage::helper('frame')->__('Thumbnail'), 
     'column_css_class' => 'vertical-align-middle', 
     'width'  => '90px', 
     'index'  => 'frame_left', 
     'type'  => 'image', 
     'escape' => true, 
     'sortable' => false, 
     'filter' => false, 
     'renderer' => Mage::getBlockSingleton('xxx_adminhtml_block_catalog_product_grid_renderer_image') 
    )); 
    //... 

product_image列を必要に応じて入れてください。ここで列を追加する順序は重要です。あなたはイースリーかもしれ完璧であることが、すべきではない作品カテゴリウィジェットのサンプルコードを追加することができます

class XXX_Adminhtml_Block_Catalog_Product_Grid_Renderer_Image extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract 
{ 
    public function render(Varien_Object $row) 
    { 
     $thumbnail = $row->getThumbnail(); 
     $gridImageSrc = $this->getSkinUrl('images/np_thumb2.gif'); 
     if($thumbnail != 'no_selection') { 
      $temp = str_replace("\\","/", Mage::getBaseUrl('media') . 'catalog'. DS . 'product' . $thumbnail); 
      $fileExistsRemote = @fopen($temp, 'r'); 
      if($fileExistsRemote) { 
       $gridImageSrc = $temp; 
      } 
      @fclose($fileExistsRemote); 
     } 
     $html = '<img '; 
     $html .= 'id="' . $this->getColumn()->getId() . '" '; 
     $html .= 'width="80" '; 
     $html .= 'height="80" '; 
     $html .= 'src="' . $gridImageSrc . '" '; 
     $html .= 'class="grid-image vertical-align-middle"/>'; 

     return $html; 
    } 
} 

同様の方法:最後のステップは、あなたのイメージ・レンダラを作成することです。楽しい。

関連する問題