cancel
Showing results for 
Search instead for 
Did you mean: 

Display Grid in Admin Module of Magento

   Did you know you can see the translated content as per your choice?

Translation is in progress. Please check again after few minutes.

Display Grid in Admin Module of Magento

I am learning Magento module development. I am trying to develop a custom module for Magento Admin panel. I would like to display grid. My codes are as follows

 

Location : app/etc/modules

 

Digitab_Brandlogo.xml

 

<?xml version="1.0" encoding="utf-8"?>
<config>
    <modules>
        <Digitab_Brandlogo>
            <active>true</active>
            <codePool>local</codePool>
        </Digitab_Brandlogo>
    </modules>
</config>

 

Location : app/code/local/Digitab/Brandlogo/Block/Adminhtml

 

Brandlogo.php

 

<?php
class Digitab_Brandlogo_Block_Adminhtml_Brandlogo extends Mage_Adminhtml_Block_Widget_Grid_Container
{
        public function __construct()
        {
           $this->_controller = 'adminhtml_brandlogo';
           $this->_blockGroup = 'brandlogo';
           $this->_headerText = Mage::helper('brandlogo')->__('Brand Logo Manager');
           $this->_addButtonLabel = Mage::helper('brandlogo')->__('Add Brand');
           parent::__construct();
         } 

       protected function _prepareLayout()
       {
         $this->setChild('grid',$this->getLayout()->createBlock( $this->_blockGroup.'/' . $this->_controller . '_grid', $this->_controller . '.grid')->setSaveParametersInSession(true) );
        return parent::_prepareLayout();
       }
}

 

Location: app/code/local/Digitab/Brandlogo/Block/Adminhtml/Brandlogo/Grid.php

 

<?php

class Digitab_Brandlogo_Block_Adminhtml_Brandlogo_Grid extends Mage_Adminhtml_Block_Widget_Grid
{ 
      public function __construct()
      { 
         parent::__construct();
         $this->setId('brand_id');
         $this->setDefaultSort('brand_id');
         $this->setDefaultDir('ASC');
         $this->setSaveParametersInSession(true);
         $this->setUseAjax(true);
       } 

       protected function _prepareCollection()
       { 
           $collection = Mage::getResourceModel('digitab_brandlogo/brandlogo_collection'); 
           $this->setCollection($collection);
           return parent::_prepareCollection();
       }

       public function getRowUrl($row)
        {
             return $this->getUrl('digitab_brandlogo_admin/brandlogo/edit',array('id' => $row->getId()));
        } 

       
    protected function _prepareColumns()
    {
        $this->addColumn('brand_id', array(
            'header' => $this->_getHelper()->__('brand_id'),
            'type' => 'number',
            'index' => 'brand_id',
        ));


         $this->addColumn('brand_name',
            array(
                'header'=> $this->__('brand_name'),
                'index' => 'brand_name'
            )
        );          

        return parent::_prepareColumns();
    }


    protected function _getHelper()
    {
        return Mage::helper('digitab_brandlogo');
    }
}


Location: app/code/local/Digitab/Brandlogo/controllers/Adminhtml

 

BrandlogoController.php

 

 

<?php

class Digitab_Brandlogo_Adminhtml_BrandlogoController extends Mage_Adminhtml_Controller_Action 
{
    public function indexAction()
    {                
       $this->loadLayout();
       $this->renderLayout();
    }

    public function gridAction()
    {
         $this->loadLayout();
         $this->getResponse()->setBody($this->getLayout()->createBlock('digitab_brandlogo/adminhtml_brandlogo')->toHtml());
    }
}

 

 

location: app/code/local/Digitab/Brandlogo/etc

 

config.xml

 

 

<?xml version="1.0"?>
<config>
    <modules>
        <digitab_brandlogo>
            <version>1.0.0</version>
        </digitab_brandlogo>
    </modules>
    <global>           
        <helpers>
            <digitab_brandlogo>
                <class>Digitab_Brandlogo_Helper</class>
            </digitab_brandlogo>
        </helpers>
        <blocks>
            <brandlogo>
               <class>Digitab_Brandlogo_Block</class>
            </brandlogo>
        </blocks>
        <models>
            <brandlogo>
                <class>Digitab_Brandlogo_Model</class>                
                <resourceModel>digitab_brandlogo_resource</resourceModel>
            </brandlogo>
            <digitab_brandlogo_resource>
                <class>Digitab_Brandlogo_Model_Resource</class>
                <entities>
                    <brandlogo>
                        <table>digitab_brandlogo</table>
                    </brandlogo>
                </entities>
            </digitab_brandlogo_resource>
        </models>
        <resources>
    <brandlogo_setup>
        <setup>
            <brandlogo>digitab_brandlogo</brandlogo>
        </setup>
        <connection>
            <use>core_setup</use>
        </connection>
    </brandlogo_setup>
    <brandlogo_write>
        <connection>
            <use>core_write</use>
        </connection>
    </brandlogo_write>
    <brandlogo_read>
        <connection>
            <use>core_read</use>
        </connection>
    </brandlogo_read>
     </resources>
    </global>
    <admin>
      <routers>
        <adminhtml>
            <args>
                <modules>                        
                    <digitab_brandlogo before="Mage_Adminhtml">Digitab_Brandlogo_Adminhtml</digitab_brandlogo>
                </modules>
            </args>
        </adminhtml>
       </routers>      
    </admin>
    <adminhtml>
        <layout>
            <updates>
               <brandlogo>
                  <file>brandlogo.xml</file>
               </brandlogo>
            </updates>
        </layout>
    </adminhtml>
</config>


location: app/code/local/Digitab/Brandlogo/etc

 

adminhtml.xml

 

 

<?xml version="1.0"?>
<config>
    <menu>
        <digitab translate="title" module="digitab_brandlogo">
            <title>Digitab</title>
            <sort_order>110</sort_order>
            <children>
                <brandlogo>
                    <title>Brand Logo</title>
                    <sort_order>1</sort_order>
                    <action>adminhtml/brandlogo/index</action>
                </brandlogo>
            </children>
        </digitab>
    </menu>
</config>


location: app/code/local/Digitab/Brandlogo/Helper

 

Data.php

 

 

<?php
class Digitab_Brandlogo_Helper_Data extends Mage_Core_Helper_Abstract
{
}

 

 

location: app/code/local/Digitab/Brandlogo/Model/Brandlogo.php

 

<?php
class Digitab_Brandlogo_Model_Brandlogo extends Mage_Core_Model_Abstract
{
    protected function _construct()
    {         
        parent::_construct();
        $this->_init('digitab_brandlogo/brandlogo');
    }  
}

 

location: app/code/local/Digitab/Brandlogo/Model/Resource/Brandlogo.php

 

 

<?php
class Digitab_Brandlogo_Model_Resource_Brandlogo extends Mage_Core_Model_Resource_Db_Abstract
{
    protected function _construct()
    {  
        $this->_init('digitab_brandlogo/brandlogo','brand_id');
    }  
}

 

location:app/code/local/Digitab/Brandlogo/Model/Resource/Brandlogo/Collection.php

 

 

<?php
class Digitab_Brandlogo_Model_Resource_Brandlogo_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
{
    protected function _construct()
    {  
        parent::_construct();
        $this->_init('digitab_brandlogo/brandlogo');
    }  
}

 

location: app/design/adminhtml/default/default/layout

 

brandlogo.xml

 

<?xml version="1.0"?> 
<layout version="0.1.0">
    <adminhtml_brandlogo_index>
        <reference name="content">
            <block type="brandlogo/adminhtml_brandlogo" name="brandlogo" />
        </reference>
    </adminhtml_brandlogo_index> 
</layout>

 

I am getting a blank white page when I am clicking on Brandlogo menu of Digitab.

 

Could anyone help me to display a grid??

 

Thanks

5 REPLIES 5

Re: Display Grid in Admin Module of Magento

Hi @foysal

 

If you enable error reporting then you will see following error 

 

Fatal error: Class 'Mage_Brandlogo_Helper_Data' not found in \app\Mage.php on line 520

 

You need following fixes :

 

1) config.xml (use Digitab_Brandlogo not digitab_brandlogo)

 

<modules>
        <Digitab_Brandlogo>
            <version>1.0.0</version>
        </Digitab_Brandlogo>
</modules>

2)In Digitab_Brandlogo_Block_Adminhtml_Brandlogo file

 

Use following for helper

 

$this->_headerText = Mage::helper('digitab_brandlogo')->__('Brand Logo Manager');
$this->_addButtonLabel = Mage::helper('digitab_brandlogo')->__('Add Brand');

As you have used following in config.xml

 

<helpers>
<digitab_brandlogo> <!- This node name should be used for helper -->
<class>Digitab_Brandlogo_Helper</class>
</digitab_brandlogo>
</helpers>

 

 

---
Problem Solved Click Accept as Solution!:Magento Community India Forum

Re: Display Grid in Admin Module of Magento

Thanks @Mukesh Tiwari for your valuable reply.  I enabled error reporting using below code in index.php.

Mage::setIsDeveloperMode(true);

ini_set('display_errors', 1);

error_reporting(E_ALL);

But I could not see any error.

I implemented your solution but the issue is not solved, it is as like previous, I am seeing blank page with menus of Admin Panel. May be the Grid is not loading, what is I am trying to do.

I found below error in exception.log file.

exception 'Mage_Core_Exception' with message 'Invalid block type: Digitab_Brandlogo_Block_Brandlogo' in /home3/theaid/public_html/demo/app/Mage.php:595

Could you help me in this regard ??

Thanks

 

Re: Display Grid in Admin Module of Magento

Hi @foysal

 

In your BrandlogoController.php file use following.

 

$this->getResponse()->setBody($this->getLayout()->createBlock('brandlogo/adminhtml_brandlogo')->toHtml());  

instead of

$this->getResponse()->setBody($this->getLayout()->createBlock('digitab_brandlogo/adminhtml_brandlogo')->toHtml());
---
Problem Solved Click Accept as Solution!:Magento Community India Forum

Re: Display Grid in Admin Module of Magento

Hi @foysal

 

In your BrandlogoController.php file use following.

 

$this->getResponse()->setBody($this->getLayout()->createBlock('brandlogo/adminhtml_brandlogo')->toHtml());  

instead of

$this->getResponse()->setBody($this->getLayout()->createBlock('digitab_brandlogo/adminhtml_brandlogo')->toHtml());
---
Problem Solved Click Accept as Solution!:Magento Community India Forum

Re: Display Grid in Admin Module of Magento

Thanks @Mukesh Tiwari for your reply. I modified my code as per your instruction, but it is not working. The result is as like previous. Thanks.