I need your help to figure out why my form isn't loading in the Admin Panel.
I currently just get the error:
Fatal error: Call to a member function setData() on a non-object in /home/makeyou/public_html/app/code/core/Mage/Adminhtml/Block/Widget/Form/Container.php on line 129.
Here is my current code: in app/code/local/Sean/MasterCreate/etc/adminhtml.xml
<?xml version="1.0"?>
<!DOCTYPE config>
<config>
<menu>
<example translate="title" module="mastercreate">
<title>MasterCreate</title>
<sort_order>89</sort_order>
<action>adminhtml/Creation</action>
</example>
</menu>
</config>
For those of you unfamiliar with this code, it creates a new navigation panel in the admin panel that looks for the controller I named Create and runs the index function inside. Here is an image:
app/code/local/Sean/MasterCreate/etc/config.xml
<?xml version="1.0"?>
<!DOCTYPE config>
<config>
<modules>
<Sean_MasterCreate>
<version>0.0.0</version>
</Sean_MasterCreate>
</modules>
<global>
<models>
<mastercreate>
<class>Sean_MasterCreate_Model</class>
</mastercreate>
</models>
<blocks>
<mastercreate>
<class>Sean_MasterCreate_Block</class>
</mastercreate>
</blocks>
<helpers>
<mastercreate>
<class>Sean_MasterCreate_Helper</class>
</mastercreate>
</helpers>
</global>
<admin>
<routers>
<adminhtml>
<args>
<modules>
<mastercreate before="Mage_Adminhtml">Sean_MasterCreate_Adminhtml</mastercreate>
</modules>
</args>
</adminhtml>
</routers>
</admin>
<frontend>
<routers>
<mastercreate>
<use>standard</use>
<args>
<frontName>mastercreate</frontName>
<module>Sean_MasterCreate</module>
</args>
</mastercreate>
</routers>
<layout>
<updates>
<mastercreate>
<file>mastercreate.xml</file>
</mastercreate>
</updates>
</layout>
</frontend>
</config>
app/code/local/Sean/MasterCreate/controllers/Adminhtml/CreationController.php
<?php
class Sean_MasterCreate_Adminhtml_CreationController extends Mage_Adminhtml_Controller_Action {
public function indexAction(){
$this->loadLayout();
$this->_addContent(
$this->getLayout()->createBlock('mastercreate/adminhtml_event_edit')
);
$this->renderLayout();
}
}
app/code/local/Sean/MasterCreate/Block/Adminhtml/Event/Edit.php
<?php
class Sean_MasterCreate_Block_Adminhtml_Event_Edit extends Mage_Adminhtml_Block_Widget_form_Container {
public function __construct(){
$this->_objectId = 'event_id';
$this->_blockGroup = 'mastercreate';
$this->_controller = 'adminhtml_creation';
parent::__construct();
}
public function getHeaderText(){
return Mage::helper('mastercreate')->__('New Event');
}
}
app/code/local/Sean/MasterCreate/Block/Adminhtml/Event/Edit/Form.php
<?php
class Sean_MasterCreate_Block_Adminhtml_Event_Edit_Form extends Mage_Adminhtml_Block_Widget_Form {
protected function _prepareForm(){
$form = new Varien_Data_Form(
array('id' => 'edit_form', 'action' => $this->getUrl('*/*/save'), 'method' => 'post'
)
);
$fieldset = $form->addFieldset('base_fieldset', array('legend' => Mage::helper('mastercreate')->__('General Information'), 'class' => 'fieldset-wide'));
$fieldset->addField('name', 'text', array(
'name' => 'name',
'label' => Mage::helper('mastercreate')->__('Event Name'),
'title' => Mage::helper('mastercreate')->__('Event Name'),
'required' => true
));
$form->setUseContainer(true);
$this->setForm($form);
return parent::_prepareForm();
}
}