За всеки, който търси решение. Използвах този урок на уебсайта на Inchoo: Добавяне на персонализирано изобразяване за персонализирана колона в мрежата на Magento. Има някои SO въпроси, които също помогнаха да се разбере решението.
Не успях да променя цвета на фона на целия ред, както първоначално исках, просто променям фона на клетката. Но в края е достатъчно да посочи на потребителя, че този ред е малко по-различен. Това, което направих, беше да добавя нова персонализирана колона. В свойството renderer
посочих нов клас.
$this->addColumn('collision_type', array(
'header' => $helper->__('Collision'),
'align' => 'center',
'index' => 'collision_type',
'type' => 'action',
'renderer'=> new Dts_Banners_Block_Adminhtml_Collisions_Grid_Renderer_Collisiontype(),
));
Поставих необходимия клас в ново поддърво:
Grid
└─ Renderer
└─ Collisiontype.php
И това е новият клас, който трябва да изобрази колоната. За да имате различни цветове, просто трябва да оцените променливата $value
и да приложите различни цветови стилове за съответната стойност, това е, което правя сега.
<?php
class Dts_Banners_Block_Adminhtml_Collisions_Grid_Renderer_Collisiontype extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
public function render(Varien_Object $row) {
$value = $row->getData($this->getColumn()->getIndex());
return '<div style="color:#FFF;font-weight:bold;background:#F55804;border-radius:8px;width:100%">'.$value.'</div>';
}
}
?>
И резултатът:
person
Yaroslav
schedule
12.12.2012