Estoy intentando crear un módulo personalizado en magento admin. Llegué al punto donde se agregó un nuevo enlace al menú y al hacer clic en él, puedo navegar a la acción de índice del controlador del módulo. Pero aquí no puedo ver la cuadrícula, solo aparecen el texto del encabezado y el botón que se ha agregado en la construcción del bloque.La cuadrícula no aparece en el módulo de administración personalizada en Magento
Veo que, dado que este bloque amplía la clase Mage_Adminhtml_Block_Widget_Grid_Container
, agregará por sí solo el bloque de cuadrícula dentro de este módulo como elemento secundario.
Y se incluye el Grid.php que he verificado al imprimir algo en el método _prepareColumns
modificado.
¿Qué me falta aquí?
Estos son los contenidos del archivo Grid.php
class Book_Brands_Block_Adminhtml_Brands_Grid extends Mage_Adminhtml_Block_Widget_Grid {
public function __construct() {
parent::__construct();
$this->setId('brandsGrid');
$this->setDefaultSort('brands_id');
$this->setDefaultDir('ASC');
$this->setSaveParametersInSession(true);
}
protected function _prepareCollection() {
$collection = Mage::getModel('brands/brands')->getCollection();
$this->setCollection($collection);
return parent::_prepareCollection();
}
protected function _prepareColumns() {
$this->addColumn('brands_id', array(
'header' => Mage::helper('brands')->__('ID'),
'align' =>'right',
'width' => '50px',
'index' => 'brands_id',
));
$this->addColumn('title', array(
'header'=> Mage::helper('brands')->__('Title'),
'align' =>'left',
'index' => 'title',
));
$this->addColumn('status', array(
'header'=> Mage::helper('brands')->__('Status'),
'align' => 'left',
'width' => '80px',
'index' => 'status',
'type' => 'options',
'options' => array(
1 => 'Enabled',
2 => 'Disabled',
),
));
$this->addColumn('action', array(
'header' => Mage::helper('brands')->__('Action'),
'width' => '100',
'type' => 'action',
'getter' => 'getId',
'actions' => array(
array(
'caption' => Mage::helper('brands')->__('Edit'),
'url' => array('base'=> '*/*/edit'),
'field' => 'id'
)
),
'filter' => false,
'sortable' => false,
'index' => 'stores',
'is_system' => true,
));
return parent::_prepareColumns();
}
public function getRowUrl($row) {
return $this->getUrl('*/*/edit', array('id' => $row->getId()));
}
}
Gracias
PS. He intentado limpiar el caché pero no tuve suerte
sí había un problema en _prepareCollection como usted ha dicho. Establecer la bandera display_errors en realmente ayudó. ¡Gracias una tonelada! – naiquevin
@naiquevin ¿Qué problema tenías en _prepareCollection? Tengo un problema similar. En mi clase Grid, la función __construct funciona bien. Pero mi código no va a la función _prepareCollection. –