Magento Grid -> Длина струны AddColumn
-
12-12-2019 - |
Вопрос
Я пытаюсь отобразить инициалы клиентов вместо полных имен в сетке клиента. т.е. Вместо того, чтобы «г-н Джон Средний Смит» я хотел бы «мистер Дж М Смит»
Кто-нибудь может указать мне в правильном направлении, чтобы изменить это:
$this->addColumn('firstname', array(
'header' => Mage::helper('customer')->__('First Name'),
'index' => 'firstname',
));
.
Чтобы просто получить первый персонаж firstname
Спасибо: -)
Решение
Вы можете использовать свой собственный рендерер для этого.Смотрите пример:
$this->addColumn('firstname', array(
'header' => Mage::helper('customer')->__('First Name'),
'renderer' => 'amexample/adminhtml_customer_grid_renderer_name',
....
));
.
класс рендерера:
class Amasty_Example_Block_Adminhtml_Customer_Grid_Renderer_Name extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
public function render(Varien_Object $row)
{
return substr($row->getFirstname(), 0, 1);
}
}
.
Вы можете найти рендеренеров по умолчанию здесь:
APP \ Code \ Core \ mage \ adminhtml \ block \ widget \ grid \ column \ renderer
Другие советы
app\code\core\Mage\Adminhtml\Block\Customer\Grid.php
для GeneracodicCode
<Сильный> Шаг 2: Заменить ниже код с помощью
$this->addColumn('name', array(
'header' => Mage::helper('customer')->__('Name'),
'index' => 'name'
));
.
Заменить на
$this->addColumn('namewithprifx', array(
'header' => Mage::helper('customer')->__('First Name'),
'index' => 'firstname',
'type' => 'text',
'width' => '250px',
'sortable' =>false,
'filter' => false,
'renderer' => 'NameSpace_Customergrid_Block_Adminhtml_Renderer_Namewithprifx',
));
.
app\code\local\Mage\Adminhtml\Block\Customer\Grid.php
.
<?php
class NameSpace_Customergrid_Block_Adminhtml_Renderer_Namewithprifx extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
public function render(Varien_Object $row)
{
//$getData = $row->getData();
$str=$row->getData('prefix'). " ". $row->getData('fname'). " ". $row->getData('lname');
return $str;
}
}