Создайте модуль magento 1 для добавления изображения столбца и категории столбца в таблицу управления продуктом.

Я новичок в magento, и у меня есть задача добавить изображение столбца и категорию столбца в таблицу управления продуктами (раздел администратора). Может кто-нибудь сказать мне рабочий процесс (только какие шаги я должен следовать)?

Я использую magento 1.9.2.4.

1

Решение

Прежде всего, чтобы добавить новый столбец в существующую таблицу управления продуктами, необходимо расширить блок magento: Mage_Adminhtml_Block_Catalog_Product_Grid.
Для этого вы можете создать свой собственный модуль, например. с именем XXX и в вашем файле config.xml поместите эти строки:

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

Теперь в вашем файле XXX_Adminhtml_Block_Catalog_Product_Grid вам нужно перезаписать два метода: _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');
//...

и второй метод:

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;
}
}

Аналогичным образом вы можете легко добавить виджет категории. Пример кода может быть не идеальным, но должен работать. Наслаждаться.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]