Magento Grid -> agregar longitud de cadena de columna
-
12-12-2019 - |
Pregunta
Estoy intentando mostrar las iniciales de los clientes en lugar de los nombres completos en la cuadrícula de clientes.es decir.En lugar de "Mr John Middle Smith", quisiera "Mr JM Smith".
¿Alguien puede indicarme la dirección correcta para cambiar esto?
$this->addColumn('firstname', array(
'header' => Mage::helper('customer')->__('First Name'),
'index' => 'firstname',
));
Para obtener simplemente el primer carácter de firstname
Gracias :-)
Solución
Puedes usar tu propio renderizador para esto.Ver el ejemplo:
$this->addColumn('firstname', array(
'header' => Mage::helper('customer')->__('First Name'),
'renderer' => 'amexample/adminhtml_customer_grid_renderer_name',
....
));
La clase de renderizador:
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);
}
}
Puede encontrar renderas predeterminadas aquí:
APP \ CODE \ Core \ Mage \ adminhtml \ block \ widget \ grid \ column \ renderer
Otros consejos
Paso 1: Tienes que anular el archivo en la carpeta local o simplemente copiarlo. app\code\core\Mage\Adminhtml\Block\Customer\Grid.php
a app\code\local\Mage\Adminhtml\Block\Customer\Grid.php
Paso 2: Reemplace el siguiente código con
$this->addColumn('name', array(
'header' => Mage::helper('customer')->__('Name'),
'index' => 'name'
));
Sustituir por
$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',
));
Paso 3: Crear archivo en NameSpace\Customergrid\Block\Adminhtml\Renderer\Namewithprifx.php
Etapa 4: Copie el siguiente código.
<?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;
}
}
Paso 5: Actualiza el caché y verifica los datos.