Skip to main content

Customize or Merge the fields in admin grid Magento

Sometimes we need to customize the columns of grid list other than the table fields. Like, merging two fields into one column or displaying content after conditional check.

For this we need to add a renderer. Renderer is the class that can render the values of a column by manipulating the data and outputting the data as we like.

For this,
1. Create a folder Renderer inside "Block/Adminhtml" of our module.
2. Create a file Somefilename.php with following contents

class Organicfeast_Customshipping_Block_Adminhtml_Renderer_Suburbname extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract {

    public function render(Varien_Object $row) {
                if ($row->getData('first_name') != NULL || $row->getData('last_name') != NULL) {
            $firstName = $row->getData('first_name');
                    $lastName = $row->getData('last_name');
            if ($lastName != NULL) {
                return $firstName . ' ' . $lastName;
                    } else {
                return $firstName;
            }
            } else {
                return Mage::helper('dailydeal')->__('NO NAME ASSIGNED');
            }
    }
}


3. Finally, call this file at the Grid.php

  protected function _prepareColumns() {
        $this->addColumn("suburb_id", array(
            "header" => Mage::helper("customshipping")->__("ID"),
            "align" => "right",
            "width" => "50px",
            "type" => "number",
            "index" => "suburb_id",
        ));

        $this->addColumn("suburb_name", array(
            "header" => Mage::helper("customshipping")->__("Suburb Name"),
            "index" => "suburb_name",
        ));

           $this->addColumn("monday", array(
            "header" => Mage::helper("customshipping")->__("Monday"),
            "index" => "monday",
            "renderer" => new Organicfeast_Customshipping_Block_Adminhtml_Renderer_Suburbname
        ));
}


Now we can get the customized column in our grid.



Cheers!!!

Comments

Popular posts from this blog

Error on payment method when placing order "No Such Entity With Cart ID"

No Such Entity With Cart ID Error on payment method when placing order. If you receive the error message " No such entity. ", " No such entity with " or "No such entity with  customerId,OrderId " in Magento 2, the issue usually occurred when you try to load not existing object via Magento 2 Repository Class. To debug this issue, please open the file vendor/magento/framework/Exception/NoSuchEntityException.php and at the beginning of the  __construct  method temporary add debug backtrace code: foreach ( debug_backtrace () as $_stack ) { echo ( $_stack [ "file" ] ? $_stack [ "file" ] : '' ) . ':' . ( $_stack [ "line" ] ? $_stack [ "line" ] : '' ) . ' - ' . ( $_stack [ "function" ] ? $_stack [ "function" ] : '' ); } exit (); example: public function __construct ( Phrase $phrase = null , \...

Magento 2.3 Admin panel blank issue

After the Installation of Magento from the composer, we cannot access the admin panel. Also, the deploy command doesn't work. (On Windows 10 OS). Note: Magento 2.3 supports Linux OS. Windows and Mac OS is not supported. This is a Magento bug. Wrong paths to Windows are generated. The fixed fix is Magento 2.3.0 - 2.3.3 #/vendor/magento/framework/View/Element/Template/File/Validator.php:140 the string if (0 === strpos($realPath, $directory)) {     return true; } to replace $realDirectory = $this->fileDriver->getRealPath($directory); if (0 === strpos($realPath, $realDirectory)) {    return true; } Magento 2.2.7 /vendor/magento/framework/View/Element/Template/File/Validator.php:113 code protected function isPathInDirectories($path, $directories) {     if (!is_array($directories)) {         $directories = (array)$directories;     }     foreach ($directories as $directory) {   ...

Changing the attribute type in Magento

Sometimes, we need to change the input type of attributes in Magento. Magento by default doesn't allow to change the input type from backend simply. We need to do this programmatically. Here is a code to change the input type from dropdown to text. $installer = new Mage_Eav_Model_Entity_Setup('core_setup'); $installer->startSetup(); $iProductEntityTypeId = Mage::getModel('catalog/product')->getResource()->getTypeId(); $idAttributeOldSelect = $installer->getAttributeId($iProductEntityTypeId, 'manufacturer'); $installer->updateAttribute($iProductEntityTypeId, $idAttributeOldSelect, array(     'frontend_input' => 'text' )); $installer->endSetup(); Finally, we need to remove the old values or they will conflict with the new setup. DELETE FROM catalog_product_entity_int WHERE entity_type_id = 4 and attribute_id = YOUR_ATTRIBUTE_ID_HERE; Cheers!!