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 :-)

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top