I'm learning Magento Admin - the final frontier. I want to add tabs on the left which display their content on the right. So far I have 2 tabs - the first renders the content in the tabs and the second doesn't work. I suppose I have to add some empty form container on the right and somehow link the tab contents to that container. But I don't know how exactly to do that. Below is a screenshot: [![enter image description here][1]][1] And here's the file structure: [![enter image description here][2]][2] *CODE:* **config.xml:** <?xml version="1.0" encoding="UTF-8" ?> <config> <modules> <Swiner_Hog> <version>0.1.0</version> </Swiner_Hog> </modules> <global> <models> <swiner_hog> <class>Swiner_Hog_Model</class> <resourceModel>swiner_hog_resource</resourceModel> </swiner_hog> <swiner_hog_resource> <class>Swiner_Hog_Model_Resource</class> <entities> <garbage> <table>swine_table</table> </garbage> </entities> </swiner_hog_resource> </models> <blocks> <swiner_hog> <class>Swiner_Hog_Block</class> </swiner_hog> </blocks> <helpers> <swiner_hog> <class>Swiner_Hog_Helper</class> </swiner_hog> </helpers> <resources> <swiner_hog_setup> <setup> <module>Swiner_Hog</module> </setup> </swiner_hog_setup> </resources> </global> <admin> <routers> <adminhtml> <args> <modules> <swiner_hog after="Mage_Adminhtml">Swiner_Hog_Adminhtml</swiner_hog> </modules> </args> </adminhtml> </routers> </admin> <adminhtml> <layout> <updates> <swiner_hog> <file>swiner/hog.xml</file> </swiner_hog> </updates> </layout> </adminhtml> </config> **SwineController.php:** <?php class Swiner_Hog_Adminhtml_SwineController extends Mage_Adminhtml_Controller_Action { public function tabsIndexAction() { $tabs = $this->getLayout()->createBlock('swiner_hog/adminhtml_tabs'); $this->loadLayout()->_addLeft($tabs); // Not sure what type of block to create here ??? // $block = $this->getLayout()->createBlock('swiner_hog/adminhtml_???'); // $this->_addContent($block); $this->renderLayout(); } public function saveAction() { .... code .... } } **Tabs.php:** <?php class Swiner_Hog_Block_Adminhtml_Tabs extends Mage_Adminhtml_Block_Widget_Tabs { public function __construct() { parent::__construct(); $this->setId('tabs_block'); $this->setDestElementId('content_form'); $this->setTitle($this->__('Tabs Information')); } protected function _beforeToHtml() { //This will get all existing tabs which is Default in Magento $this->parent = parent::_prepareLayout(); $this->addTab('first', array( 'label' => $this->__('Change details'), 'content' => $this->getLayout()->createBlock('swiner_hog/adminhtml_tabs_first')->toHtml(), 'active' => true, )); $this->parent = parent::_prepareLayout(); $this->addTab('second', array( 'label' => $this->__('Change something'), 'content' => $this->getLayout()->createBlock('swiner_hog/adminhtml_tabs_second')->toHtml(), 'active' => false, )); return parent::_beforeToHtml(); } } **First.php:** <?php class Swiner_Hog_Block_Adminhtml_Tabs_First extends Mage_Adminhtml_Block_Widget_Form { protected function _prepareForm() { if (Mage::registry('current_swine')) { $data = Mage::registry('current_swine')->getData(); } else { $data = array(); } // SET POST $form = new Varien_Data_Form(array( 'id' => 'content_form', 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))), 'method' => 'post', 'enctype' => 'multipart/form-data' ) ); $this->setForm($form); $fieldset = $form->addFieldset('general_form', array( 'legend' => $this->__('First Form') )); $fieldset->addField('name', 'text', array( 'label' => $this->__('Name'), 'class' => 'required entry', 'required' => true, 'name' => 'name', )); $fieldset->addField('description', 'text', array( 'label' => $this->__('Description'), 'class' => 'required entry', 'required' => true, 'name' => 'description', )); $form->setUseContainer(true); $form->setValues($data); return parent::_prepareForm(); } } **Second.php:** <?php class Swiner_Hog_Block_Adminhtml_Tabs_Second extends Mage_Adminhtml_Block_Widget_Form { protected function _prepareForm() { $form = new Varien_Data_Form(array( 'id' => 'content_form', 'enctype' => 'multipart/form-data' ) ); $fieldset = $form->addFieldset('general_form', array( 'legend' => $this->__('Second Form') )); return parent::_prepareForm(); } } I don't have anything in the layout file(hog.xml). I'm sure that using xml for adding tabs is easier but I want to do this the other way. [1]: https://i.sstatic.net/E5aFD.png [2]: https://i.sstatic.net/zWucx.png