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

asked Jun 16, 2017 at 9:19
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();
 }
}
answered Nov 22, 2017 at 4:37
0

Just Check Below Link & Download that Module.


https://github.com/webspeaks/productsgrid_magento2

answered Sep 5, 2019 at 10:44
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 Commented Sep 5, 2019 at 11:06
  • The Code is too long so i reffer that to send the link Commented Sep 5, 2019 at 11:10

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.