简体   繁体   English

Magento Admin网格问题

[英]Magento Admin Grid Issues

Getting extremely confused with an adminhtml module i'm trying to write! 与我试图编写的adminhtml模块非常困惑!

Effectively I have the indexcontroller written and working, and i'm trying to call a grid block: 实际上,我已经编写并运行了索引控制器,并且正在尝试调用网格块:

$<?php

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

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

protected function _prepareColumns()
{
  $this->addColumn('category_name', array(
      'header'    => Mage::helper('OutOfStock')->__('Category'),
      'align'     =>'right',
      'width'     => '50px',
      'index'     => 'web_id',
  ));

  $this->addColumn('sku', array(
      'header'    => Mage::helper('OutOfStock')->__('SKU'),
      'align'     =>'left',
      'index'     => 'title',
  ));

/*
  $this->addColumn('quantity', array(
 'header'    => Mage::helper('OutOfStock')->__('Quantity Available'),
'width'     => '150px',
'index'     => 'content',
  ));
*/

  $this->addColumn('Backorder allowed', array(
      'header'    => Mage::helper('OutOfStock')->__('Status'),
      'align'     => 'left',
      'width'     => '80px',
      'index'     => 'status',
      'type'      => 'options',
      'options'   => array(
          1 => 'Enabled',
          2 => 'Disabled',
      ),
  ));

    $this->addColumn('action',
        array(
            'header'    =>  Mage::helper('OutOfStock')->__('Action'),
            'width'     => '100',
            'type'      => 'action',
            'getter'    => 'getId',
            'actions'   => array(
                array(
                    'caption'   => Mage::helper('OutOfStock')->__('Edit'),
                    'url'       => array('base'=> '*/*/edit'),
                    'field'     => 'id'
                )
            ),
            'filter'    => false,
            'sortable'  => false,
            'index'     => 'stores',
            'is_system' => true,
    ));

$this->addExportType('*/*/exportCsv', Mage::helper('OutOfStock')->__('CSV'));
$this->addExportType('*/*/exportXml', Mage::helper('OutOfStock')->__('XML'));

  return parent::_prepareColumns();
}


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

I am using a controller to call the method through: 我正在使用控制器通过以下方式调用方法:

<?php
class MyTuxedo_OutOfStock_IndexController extends Mage_Adminhtml_Controller_Action
{
public function indexAction()
{
    $this->loadLayout();
    $this->_addContent($this->getLayout()->createBlock('OutOfStock/adminhtml_OutOfStock'));
    $this->renderLayout();
    }
}

Layout file consists of the following: 布局文件包含以下内容:

<?xml version=“1.0??>
<layout version=“0.1.0?>
  <OutOfStock_index_index>
    <reference name=“content”>
  <block type=“OutOfStock/adminhtml_OutOfStock“ name=“OutOfStock“ />
</reference>
</OutOfStock_index_index>
</layout>

And finally the block base file: 最后是块基础文件:

 <?php
class MyTuxedo_OutOfStock_Block_Adminhtml_OutOfStock extends Mage_Adminhtml_Block_Widget_Grid_Container
{
public function __construct()
{
 $this->_controller = ‘adminhtml_OutOfStock’;
 $this->_blockGroup = ‘OutOfStock’;
 $this->_headerText = Mage::helper(‘OutOfStock’)->__(‘Item Manager’);
     $this->_addButtonLabel = Mage::helper(‘OutOfStock’)->__(‘Add Item’);
 parent::__construct();
  }
}

I have tried everything and anything to get the grid to show on the backend, it just absolutely refuses to work. 我已经尝试了所有方法使网格显示在后端,但它绝对无法正常工作。 Running echo's in the indexcontroller works fine, I have even called a CMS static block fine from within the controller, just calling the block itself refuses to work. 在indexcontroller中运行echo可以正常工作,我什至从控制器内部调用CMS静态块都很好,只是调用该块本身拒绝工作。

Has anyone got any suggestions? 有没有人有任何建议? Can post the config.xml as well if needed just didn't want to bloat the question too much! 如果需要,也可以发布config.xml,只是不想让问题太多!

Thanks!! 谢谢!!

Config.xml Config.xml

<?xml version="1.0"?>
<config>  
<modules> 
   <MyTuxedo_OutOfStock>    
    <version>0.1.0</version>
    </MyTuxedo_OutOfStock>   
 </modules>  
 <adminhtml>   
  <layout>    
    <updates>      
      <outofstock>        
        <file>OutOfStock.xml</file>      
      </outofstock>      
  </updates>   
 </layout>        
 <acl>        
 <resources>    
        <admin>     
         <children>      
              <outofstock>    
                    <title>Out of Stock Items</title>      
                  <children>                        
             <OutOfStock>     
                     <title>Out of Stock Items</title>                      
          </OutOfStock>                   
       </children>          
          </outofstock>             
     </children>      
      </admin> 
       </resources>  
  </acl>   
  </adminhtml>  
  <global>
  <models>
<outofstock>
    <class>MyTuxedo_OutOfStock_Model</class>
</outofstock> 
  </models>      
  <helpers>     
   <outofstock>   
         <class>MyTuxedo_OutOfStock_Helper</class>    
    </outofstock>   
  </helpers> 
<blocks>
<outofstock>
<class>MyTuxedo_OutOfStock_Block</class>
</outofstock>
</blocks> 
</global>
  <admin>
    <routers>
        <MyTuxedo_OutOfStock>
            <use>admin</use>
            <args>
                <module>MyTuxedo_OutOfStock</module>
                <frontName>OutOfStock</frontName>
            </args>
        </MyTuxedo_OutOfStock>
    </routers>
 </admin>
 </config>

I've actually changed the configuration scope, however i'm still getting: 我实际上已经更改了配置范围,但是我仍然得到:

 2012-06-12T09:43:35+00:00 ERR (3): 
 exception 'Mage_Core_Exception' with message 'Invalid block type:       MyTuxedo_OutOfStock_Block_Adminhtml_Nostock' in /chroot/home/mytuxedo   /developer.mytuxedo.co.uk/html/app/Mage.php:550
 Stack trace:
 #0 /chroot/home/mytuxedo/developer.mytuxedo.co.uk/html/includes/src/__default.php(24835): Mage::throwException('Invalid block t...')
 #1 /chroot/home/mytuxedo/developer.mytuxedo.co.uk/html/includes/src/__default.php(24777): Mage_Core_Model_Layout->_getBlockInstance('OutOfStock/Admi...', Array)
 #2 /chroot/home/mytuxedo/developer.mytuxedo.co.uk/html/app/code/local/MyTuxedo/OutOfStock/controllers/Adminhtml/OutOfStockController.php(7): Mage_Core_Model_Layout->createBlock('OutOfStock/Admi...')
 #3 /chroot/home/mytuxedo/developer.mytuxedo.co.uk/html/includes/src/__default.php(12068): MyTuxedo_OutOfStock_Adminhtml_OutOfStockController->indexAction()
 #4 /chroot/home/mytuxedo/developer.mytuxedo.co.uk/html/includes/src/__default.php(16116): Mage_Core_Controller_Varien_Action->dispatch('index')
 #5 /chroot/home/mytuxedo/developer.mytuxedo.co.uk/html/includes/src/__default.php(15713): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
 #6 /chroot/home/mytuxedo/developer.mytuxedo.co.uk/html/includes/src/__default.php(17973): Mage_Core_Controller_Varien_Front->dispatch()
 #7 /chroot/home/mytuxedo/developer.mytuxedo.co.uk/html/app/Mage.php(596): Mage_Core_Model_App->run(Array)
 #8 /chroot/home/mytuxedo/developer.mytuxedo.co.uk/html/index.php(97): Mage::run('', 'store')
 #9 {main}

Figured it out, hadn't noticed the compilation process was switched on (Have no idea why I had switched it on?!). 想通了,没有注意到编译过程已经打开(不知道为什么我打开了它?!)。 - Hours wasted, for those with class not found make sure you check the compiler before debugging!!! -浪费时间,对于那些找不到类的人,请确保在调试之前检查编译器!!!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM