It's all coming from parent::__construct();
Fatal error: Call to a member function setData() on a non-object in /home/desbest/public_html/clients/magentofull/app/code/core/Mage/Adminhtml/Block/Widget/Form/Container.php on line 129
<?php
class Desbest_Brands_Block_Adminhtml_Brand_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
{
public function __construct()
{
parent::__construct();
$this->_objectId = 'id';
$this->_blockGroup = 'brands';
$this->_controller = 'adminhtml_example';
$this->_mode = 'edit';
$this->_addButton('save_and_continue', array(
'label' => Mage::helper('adminhtml')->__('Save And Continue Edit'),
'onclick' => 'saveAndContinueEdit()',
'class' => 'save',
), -100);
$this->_updateButton('save', 'label', Mage::helper('brands')->__('Save Example'));
$this->_formScripts[] = "
function toggleEditor() {
if (tinyMCE.getInstanceById('form_content') == null) {
tinyMCE.execCommand('mceAddControl', false, 'edit_form');
} else {
tinyMCE.execCommand('mceRemoveControl', false, 'edit_form');
}
}
function saveAndContinueEdit(){
editForm.submit($('edit_form').action+'back/edit/');
}
";
}
public function getHeaderText()
{
if (Mage::registry('example_data') && Mage::registry('example_data')->getId())
{
return Mage::helper('brands')->__('Edit Example "%s"', $this->htmlEscape(Mage::registry('example_data')->getName()));
} else {
return Mage::helper('brands')->__('New Example');
}
}
}
Assuming you're dealing with an unadulterated version of Magento, take a look at line 129
127: public function getFormHtml()
128: {
129: $this->getChild('form')->setData('action', $this->getSaveUrl());
130: return $this->getChildHtml('form');
131: }
You can see the attempt to fetch the child block named form fails to return an object. Most likely, that's because up in the prepare layout method, Magento failed to instantiate the form
protected function _prepareLayout()
{
if ($this->_blockGroup && $this->_controller && $this->_mode) {
$this->setChild('form', $this->getLayout()->createBlock($this->_blockGroup . '/' . $this->_controller . '_' . $this->_mode . '_form'));
}
return parent::_prepareLayout();
}
either because one of the following variables wasn't set on your class
$this->_blockGroup
$this->_controller
$this->_mode
or the class alias generated by the string
$this->_blockGroup . '/' . $this->_controller . '_' . $this->_mode . '_form'
was not a valid block class. Without knowing what you're trying to do, I'd suggest
public function __construct()
{
$this->_objectId = 'id';
$this->_blockGroup = 'brands';
$this->_controller = 'adminhtml_example';
$this->_mode = 'edit';
parent::__construct();
and ensuring you have a block class for the alias
brands/adminhtml_example_edit_form
//from
//$this->_blockGroup . '/' . $this->_controller . '_' . $this->_mode . '_form'
which will, most likely be a class named
class Desbest_Brands_Block_Adminhtml_Example_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
{
//...
}
It's also possible, that your Desbest_Brands_Block_Adminhtml_Brand_Edit.php
is not present in the according folder Desbest/Brands/Block/Adminhtml/Brand/Edit
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With