Magento – Custom magento admin grid not displaying

adminadminhtmlgrid

Hi I am developing a module & creating a custom admin grid by following this inchoo article
http://inchoo.net/magento/how-to-create-a-custom-grid-from-scratch/

but it's not working just blank screen in content area
enter image description here

my code is here

Ooorza/PaypalAdaptivePayment/etc/config.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Ooorza_PaypalAdaptivePayment>
            <version>1.0.6</version>
        </Ooorza_PaypalAdaptivePayment>
    </modules>
    <global>
        <models>
      <paypaladaptivepayment>
        <class>Ooorza_PaypalAdaptivePayment_Model</class>
        <resourceModel>paypaladaptivepayment_mysql4</resourceModel>
      </paypaladaptivepayment>
      <paypaladaptivepayment_mysql4>
        <class>Ooorza_PaypalAdaptivePayment_Model_Mysql4</class>
        <entities>        
              <paytransaction>
                <table>ooorza_adaptivepayment_paytransaction</table>
              </paytransaction>
        </entities>
      </paypaladaptivepayment_mysql4>
    </models>

        <resources>
            <ooorza_paypaladaptivepayment_setup>
                <setup>
                    <module>Ooorza_PaypalAdaptivePayment</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </ooorza_paypaladaptivepayment_setup>
            <ooorza_paypaladaptivepayment_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </ooorza_paypaladaptivepayment_write>
            <ooorza_paypaladaptivepayment_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </ooorza_paypaladaptivepayment_read>
        </resources>

        <helpers>
            <paypaladaptivepayment>
                <class>Ooorza_PaypalAdaptivePayment_Helper</class>
            </paypaladaptivepayment>
        </helpers>

        <blocks>
            <paypaladaptivepayment>
                <class>Ooorza_PaypalAdaptivePayment_Block</class>
            </paypaladaptivepayment>            
        </blocks>


    <frontend>
        <routers>
            <paypaladaptivepayment>
                <use>standard</use>
                <args>
                    <module>Ooorza_PaypalAdaptivePayment</module>
                    <frontName>paypaladaptivepayment</frontName>
                </args>
            </paypaladaptivepayment>            
        </routers>

    </frontend>

    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <paypaladaptivepayment before="Mage_Adminhtml">Ooorza_PaypalAdaptivePayment_Adminhtml</paypaladaptivepayment>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>

</config>

Ooorza/PaypalAdaptivePayment/Model/Paytransaction.php

<?php

class Ooorza_PaypalAdaptivePayment_Model_Paytransaction extends Mage_Core_Model_Abstract
{
    protected function _construct(){

       $this->_init("paypaladaptivepayment/paytransaction");

    }

}

Ooorza/PaypalAdaptivePayment/Model/Mysql4/Paytransaction.php

<?php
class Ooorza_PaypalAdaptivePayment_Model_Mysql4_Paytransaction extends Mage_Core_Model_Mysql4_Abstract
{
    protected function _construct()
    {
        $this->_init("paypaladaptivepayment/paytransaction", "pay_id");
    }
} 

Ooorza/PaypalAdaptivePayment/Model/Mysql4/Paytransaction/Collection.php

<?php
    class Ooorza_PaypalAdaptivePayment_Model_Mysql4_Paytransaction_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
    {

        public function _construct(){
            $this->_init("paypaladaptivepayment/paytransaction");
        }

    }

Ooorza/PaypalAdaptivePayment/controllers/Adminhtml/TransactionController.php

<?php

class Ooorza_PaypalAdaptivePayment_Adminhtml_TransactionController extends Mage_Adminhtml_Controller_Action
{

    public function indexAction()
    {
        $this->_title($this->__('Transaction'))->_title($this->__('Adaptive Transaction'));
        $this->loadLayout();
        //$this->_setActiveMenu('paypaladaptivepayment/adaptivepayment');
        $this->_addContent($this->getLayout()->createBlock('paypaladaptivepayment/adminhtml_adaptivepayment_transaction'));
        $this->renderLayout();

    }

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

    public function exportOoorzaCsvAction()
    {
        $fileName = 'adaptivepayment_transaction.csv';
        $grid = $this->getLayout()->createBlock('paypaladaptivepayment/adminhtml_adaptivepayment_transaction_grid');
        $this->_prepareDownloadResponse($fileName, $grid->getCsvFile());
    }

    public function exportOoorzaExcelAction()
    {
        $fileName = 'adaptivepayment_transaction.xml';
        $grid = $this->getLayout()->createBlock('paypaladaptivepayment/adminhtml_adaptivepayment_transaction_grid');
        $this->_prepareDownloadResponse($fileName, $grid->getExcelFile($fileName));
    }
}

Ooorza/PaypalAdaptivePayment/Block/Adminhtml/AdaptivePayment/Transaction.php

<?php

class Ooorza_PaypalAdaptivePayment_Block_Adminhtml_AdaptivePayment_Transaction extends Mage_Adminhtml_Block_Widget_Grid_Container
{
    public function __construct()
    {
        $this->_blockGroup = 'paypaladaptivepayment';
        $this->_controller = 'adminhtml_adaptivepayment_transaction';
        $this->_headerText = Mage::helper('paypaladaptivepayment')->__('paypaladaptivepayment Tranaction');
        parent::__construct();
        $this->_removeButton('add');
    }
}

Ooorza/PaypalAdaptivePayment/Block/Adminhtml/AdaptivePayment/Transaction/Grid.php

<?php

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

    protected function _prepareCollection()
    {
        $collection = Mage::getModel('paypaladaptivepayment/paytransaction')->getCollection();
      $this->setCollection($collection);
      return parent::_prepareCollection();
    }

    protected function _prepareColumns()
    {
        $this->addColumn('pay_id',
             array(
                    'header' => 'ID',
                    'align' =>'right',
                    'width' => '50px',
                    'index' => 'pay_id',
               ));
       $this->addColumn('order_id',
               array(
                    'header' => 'Order ID',
                    'align' =>'left',
                    'index' => 'order_id',
              ));
       $this->addColumn('transaction_id', array(
                    'header' => 'transaction id',
                    'align' =>'left',
                    'index' => 'transaction_id',
             ));
        $this->addColumn('paykey', array(
                     'header' => 'paykey',
                     'align' =>'left',
                     'index' => 'paykey',
          ));

        $this->addColumn('transaction_status', array(
                     'header' => 'transaction_status',
                     'align' =>'left',
                     'index' => 'transaction_status',
          ));

        $this->addColumn('currency', array(
                     'header' => 'currency',
                     'align' =>'left',
                     'index' => 'currency',
          ));

        $this->addColumn('amount', array(
                     'header' => 'amount',
                     'align' =>'left',
                     'index' => 'amount',
          ));

        $this->addColumn('vendor_mail', array(
                     'header' => 'vendor_mail',
                     'align' =>'left',
                     'index' => 'vendor_mail',
          ));

        $this->addColumn('sender_mail', array(
                     'header' => 'sender_mail',
                     'align' =>'left',
                     'index' => 'sender_mail',
          ));
         return parent::_prepareColumns();

    }

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

Thanks in advance

Best Answer

Your blocks are declared like this:

    <blocks>
        <modulename>
            <class>Namespace_Modulename_Block</class>
        </modulename>            
    </blocks>

but you call this in your controller

$this->getLayout()->createBlock('namespace_modulename/adminhtml_sales_order_grid')->toHtml()

so the block with the alias 'namespace_modulename/adminhtml_sales_order' does not exist.
it should be 'modulename/adminhtml_sales_order'.
But I bet that won't work either, because you have no block called Namespace_Module_Block_Adminhtml_Sales_Order.
I assume you want an instance of the block Namespace_Modulename_Block_Adminhtml_AdaptivePayment_Transaction.
for that use createBlock('modulename/adminhtml_adaptivePayment_transaction').

Also the grid block should not be in the file named Namespace/Modulename/Block/Adminhtml/AdaptivePayment/Transactions/Grid.php. it should be Namespace/Modulename/Block/Adminhtml/AdaptivePayment/Transaction/Grid.php. So Transaction (singular) instead of Transactions (plural)

Related Topic