在magento中的自定义模块中的编辑表单上调用特定选项卡

时间:2013-02-19 09:21:44

标签: magento magento-1.7

我在magento中创建了一个自定义模块。当我点击网格时,它会移动到编辑表单,在那里我可以看到三个标签,如tab1,tab2,tab3.By默认tab1被选中。现在我想在网格上添加一个链接当客户点击该链接时,浏览器会将用户重定向到tab3。我该怎么做。我的标签代码如下:

protected function _beforeToHtml()
  {
      $this->addTab('form_section', array(
          'label'     => Mage::helper('mymodule')->__('Information'),
          'title'     => Mage::helper('mymodule')->__('Information'),
          'content'   => $this->getLayout()->createBlock('mymodule/adminhtml_mymodule_edit_tab_form')->toHtml(),
      ));

     $this->addTab('form_section1', array(
          'label'     => Mage::helper('mymodule')->__(' Management'),
          'title'     => Mage::helper('mymodule')->__('Management'),
          'content'   => $this->getLayout()->createBlock('mymodule/adminhtml_mymodule_edit_tab_managment')->toHtml(),
      ));
          $this->addTab('form_section2', array(
          'label'     => Mage::helper('mymodule')->__('Results'),
          'title'     => Mage::helper('mymodule')->__('Results'),
          'content'   => $this->getLayout()->createBlock('mymodule/adminhtml_mymodule_edit_tab_result')->toHtml(),
      ));


      return parent::_beforeToHtml();
  }

我的链接代码就像网格列表页面上的那个。 <a class="viewit" href="http://localhost/project/index.php/mymodule/adminhtml_mymodule/view/id/4/key/83063e416ef7f9cfb7825d01e4519293/">View</a>。我的控制器功能为:

 public function viewAction()
    {
     $this->loadLayout();
       $block = $this->getLayout()->createBlock('mymodule/adminhtml_mymodule_edit_tab_result');
      //  $this->_addContent($this->getLayout()->createBlock('mymodule/adminhtml_mymodule_edit_tab_result'))
            //->_addLeft($this->getLayout()->createBlock('mymodule/adminhtml_mymodule_edit_tabs'));
       $this->getLayout()->getBlock('content')->append($block);  
       $this->renderLayout();
}

1 个答案:

答案 0 :(得分:4)

Mage_Adminhtml_Block_Widget_Tabs::addTab处的代码表明标签包含属性active。尝试将其添加到addTab来电:

$this->addTab('form_section2', array(
          'label'     => Mage::helper('mymodule')->__('Results'),
          'title'     => Mage::helper('mymodule')->__('Results'),
          'content'   => $this->getLayout()->createBlock('mymodule/adminhtml_mymodule_edit_tab_result')->toHtml(),
          'active'    => true
      ));

或者您可以将参数activeTab设置为'form_section2'(活动标签的名称)的网格行URL扩展,并将以下代码添加到_beforeToHtml Tabs函数中block class:

        $param = Mage::app()->getRequest()->get('activeTab');
        if (array_key_exists($param, $this->_tabs)) {
            $this->_tabs[$param]->setActive();
        }