22

I created a grid by following this tutorial, I would like to create 4 grids more, the problem is I need to add all these grids to tab

so far I've created a controller to load the block like this:

class Lime_Customgrid_Adminhtml_CustomController extends Mage_Adminhtml_Controller_Action
{
    public function indexAction()
    {
        $this->_title($this->__('Custom'))->_title($this->__('Custom Lime'));
        $this->loadLayout();
        $this->_setActiveMenu('sales/sales');
        $this->_addContent($this->getLayout()->createBlock('lime_customgrid/adminhtml_table_custom'));
        $this->renderLayout();
    }
}

Block > Adminhtml > Table > Custom > Custom.php:

<?php
class Lime_Customgrid_Block_Adminhtml_Table_Custom extends Mage_Adminhtml_Block_Widget_Tabs
{

    public function __construct()
    {
        parent::__construct();
        $this->setId('custom_tabs');
        // $this->setDestElementId('edit_form');
        $this->setTitle(Mage::helper('lime_customgrid')->__('Custom tabs'));
    }


    protected function _beforeToHtml()
    {
        $this->addTab(
            'form_listing',
            array(
                'label'   => Mage::helper('lime_customgrid')->__('Listing'),
                'title'   => Mage::helper('lime_customgrid')->__('Listing'),
                'content' => $this->getLayout()->createBlock(
                    'lime_customgrid/adminhtml_table_custom_tab_grid'
                )
                ->toHtml(),
            )
        );

        $this->addTab(
            'form_attributes_listing',
            array(
                'label'   => Mage::helper('lime_customgrid')->__('Set Attributes'),
                'title'   => Mage::helper('lime_customgrid')->__('Set Attributes'),
                'content' => $this->getLayout()->createBlock(
                    'lime_customgrid/adminhtml_table_custom_tab_grid'
                )
                ->toHtml(),
            )
        );
        return parent::_beforeToHtml();
    }


}

Block > Adminhtml > Table > Custom > Tab > Grid.php:

<?php

class Lime_Customgrid_Block_Adminhtml_Table_Custom_Tab_Grid extends Mage_Adminhtml_Block_Widget_Grid
{
    public function __construct()
    {
        parent::__construct();
        $this->setId('lime_order_grid');
        $this->setDefaultSort('increment_id');
        $this->setDefaultDir('DESC');
        $this->setSaveParametersInSession(true);
        $this->setUseAjax(true);
    }

    protected function _prepareCollection()
    {
        $collection = Mage::getResourceModel('sales/order_collection')
            ->join(array('a' => 'sales/order_address'), 'main_table.entity_id = a.parent_id AND a.address_type != \'billing\'', array(
                'city'       => 'city',
                'country_id' => 'country_id'
            ))
            ->join(array('c' => 'customer/customer_group'), 'main_table.customer_group_id = c.customer_group_id', array(
                'customer_group_code' => 'customer_group_code'
            ))
            ->addExpressionFieldToSelect(
                'fullname',
                'CONCAT({{customer_firstname}}, \' \', {{customer_lastname}})',
                array('customer_firstname' => 'main_table.customer_firstname', 'customer_lastname' => 'main_table.customer_lastname'))
            ->addExpressionFieldToSelect(
                'products',
                '(SELECT GROUP_CONCAT(\' \', x.name)
                    FROM sales_flat_order_item x
                    WHERE {{entity_id}} = x.order_id
                        AND x.product_type != \'configurable\')',
                array('entity_id' => 'main_table.entity_id')
            )
        ;

        $this->setCollection($collection);
        parent::_prepareCollection();
        return $this;
    }

    protected function _prepareColumns()
    {
        $helper = Mage::helper('lime_customgrid');
        $currency = (string) Mage::getStoreConfig(Mage_Directory_Model_Currency::XML_PATH_CURRENCY_BASE);

        $this->addColumn('increment_id', array(
            'header' => $helper->__('Order #'),
            'index'  => 'increment_id'
        ));

        $this->addColumn('purchased_on', array(
            'header' => $helper->__('Purchased On'),
            'type'   => 'datetime',
            'index'  => 'created_at'
        ));

        $this->addColumn('products', array(
            'header'       => $helper->__('Products Purchased'),
            'index'        => 'products',
            'filter_index' => '(SELECT GROUP_CONCAT(\' \', x.name) FROM sales_flat_order_item x WHERE main_table.entity_id = x.order_id AND x.product_type != \'configurable\')'
        ));

        $this->addColumn('fullname', array(
            'header'       => $helper->__('Name'),
            'index'        => 'fullname',
            'filter_index' => 'CONCAT(customer_firstname, \' \', customer_lastname)'
        ));

        $this->addColumn('city', array(
            'header' => $helper->__('City'),
            'index'  => 'city'
        ));

        $this->addColumn('country', array(
            'header'   => $helper->__('Country'),
            'index'    => 'country_id',
            'renderer' => 'adminhtml/widget_grid_column_renderer_country'
        ));

        $this->addColumn('customer_group', array(
            'header' => $helper->__('Customer Group'),
            'index'  => 'customer_group_code'
        ));

        $this->addColumn('grand_total', array(
            'header'        => $helper->__('Grand Total'),
            'index'         => 'grand_total',
            'type'          => 'currency',
            'currency_code' => $currency
        ));

        $this->addColumn('shipping_method', array(
            'header' => $helper->__('Shipping Method'),
            'index'  => 'shipping_description'
        ));

        $this->addColumn('order_status', array(
            'header'  => $helper->__('Status'),
            'index'   => 'status',
            'type'    => 'options',
            'options' => Mage::getSingleton('sales/order_config')->getStatuses(),
        ));

        $this->addExportType('*/*/exportLimeCsv', $helper->__('CSV'));
        $this->addExportType('*/*/exportLimeExcel', $helper->__('Excel XML'));

        return parent::_prepareColumns();
    }

    public function getGridUrl()
    {
        return $this->getUrl('*/*/grid', array('_current'=>true));
    }
}

the result is so mess up, even when I click to load next pagination, it redirects me to admin dashboard:

enter image description here

3

2 Answers 2

1

Replace this code

$this->_addContent($this->getLayout()->createBlock('lime_customgrid/adminhtml_table_custom'));

with the following

$this->_addContent($this->getLayout()->createBlock('lime_customgrid/adminhtml_table_edit'))
     ->_addLeft($this->getLayout()->createBlock('lime_customgrid/adminhtml_table_custom'));

=> create edit.php file

<?php

class Lime_Customgrid_Block_Adminhtml_Table_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
 {
    /**
    * 
    * @return void
    */
    public function __construct()
    {
        $this->_blockGroup = 'lime_customgrid';
        $this->_controller = 'adminhtml_custom';

        parent::__construct();
    }
}
0

Just Check Below Link & Download that Module.


https://github.com/webspeaks/productsgrid_magento2

2
  • While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. - From Review Sep 5, 2019 at 11:06
  • The Code is too long so i reffer that to send the link
    – user82717
    Sep 5, 2019 at 11:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.