Magento Grid - > AddColumn文字列の長さ
-
12-12-2019 - |
質問
顧客グリッドの氏名の代わりに顧客のイニシャルを表示しようとしています。 すなわち。 「Mr John Middle Smith」の代わりに「r j m smith」
誰かがこれを変更するための正しい方向に私を指していることができます:
$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
他のヒント
ステップ1:ローカルフォルダでファイルをオーバーライドする必要があります。
ステップ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',
));
ステップ3: app\code\core\Mage\Adminhtml\Block\Customer\Grid.php
でファイルを作成する
ステップ4:以下のコードをコピーします。
.
<?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;
}
}
ステップ5:キャッシュをリフレッシュしてデータを確認します。