Magento Grid ->addColumn de seqüência de caracteres de comprimento
-
12-12-2019 - |
Pergunta
Eu estou tentando exibir Cliente iniciais em vez de nomes completos do Cliente na Grelha.ou seja.Em vez de "Senhor João Médio Smith" eu gostaria de "Mr J M Silva"
Alguém pode me apontar na direção certa para alterar isso:
$this->addColumn('firstname', array(
'header' => Mage::helper('customer')->__('First Name'),
'index' => 'firstname',
));
Para obter apenas o primeiro caractere do firstname
Obrigado :-)
Solução
Você pode usar o seu próprio renderizador para isso.Veja o exemplo:
$this->addColumn('firstname', array(
'header' => Mage::helper('customer')->__('First Name'),
'renderer' => 'amexample/adminhtml_customer_grid_renderer_name',
....
));
O processador de classe:
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);
}
}
você pode encontrar o rendereres aqui:
app\code\core\Mage\Adminhtml\Bloco\Widget\Grade\Coluna\Processador
Outras dicas
Passo 1: Você tem que substituir o arquivo na pasta local ou apenas copiar app\code\core\Mage\Adminhtml\Block\Customer\Grid.php
para app\code\local\Mage\Adminhtml\Block\Customer\Grid.php
Passo 2: Substitua o código abaixo
$this->addColumn('name', array(
'header' => Mage::helper('customer')->__('Name'),
'index' => 'name'
));
Substituir 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',
));
Passo 3: Criar arquivo de NameSpace\Customergrid\Block\Adminhtml\Renderer\Namewithprifx.php
Passo 4: Copie abaixo o 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;
}
}
Passo 5: Atualização de cache e verificar os dados.