【问题标题】:Magento tab change/redirectMagento 选项卡更改/重定向
【发布时间】:2011-10-06 07:31:36
【问题描述】:

我有一个带有两个选项卡的页面,一个搜索选项卡和一个带有数据库网格的选项卡。在用户编辑网格中的一个项目后,我想将它们保留在网格选项卡上,而不是按顺序排列的表单选项卡上。

有没有办法通过代码更改页面上的活动标签?

这是标签的代码:

protected function _beforeToHtml()
{
    $this->addTab('search_string', array(
        'label'     => Mage::helper('advancedtranslate')->__('Find a string'),
        'title'     => Mage::helper('advancedtranslate')->__('Find a string'),
        'content'   => $this->getLayout()->createBlock("advancedtranslate/adminhtml_advancedtranslate")->toHtml(),
        'active'    => true
    ));

    $this->addTab('list_untranslated', array(
        'label'     => Mage::helper('advancedtranslate')->__('Untranslated strings'),
        'title'     => Mage::helper('advancedtranslate')->__('Untranslated strings'),
        'content'   => $this->getLayout()->createBlock("advancedtranslate/adminhtml_grid")->toHtml(),
        'active'    => false
    ));

    return parent::_beforeToHtml();
}  

这是我控制器中处理重定向的 saveAction:

public function saveAction(){
    //write data away to core_translate table
    $resource   = Mage::getResourceModel('core/translate_string');

    $request              = $this->getRequest();
    $translate_id         = $request->getParam('id');
    $original             = $request->getParam('original_translation');
    $custom               = $request->getParam('string');
    $locale               = $request->getParam('locale');
    $storeId              = $request->getParam('storeid');
    $storeViewSpecific    = $request->getParam('storeview_specific');

    if($storeId != 0 && $storeViewSpecific != 1){
        $storeId = 0;
    }

    $resource->saveTranslate($original, $custom, $locale, $storeId);

    //delete record from phpro table
    $advancedTranslateRecord = Mage::getModel('advancedtranslate/advancedtranslate');

    $advancedTranslateRecord->setId($translate_id)
                            ->delete();

    //clear the cache
    Mage::app()->getCache()->clean();

    Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')
                                           ->__('Translation was saved.'));
    $this->_redirect('*/*/');
}

【问题讨论】:

  • 当然有办法做到这一点。不幸的是,您没有发布给您带来麻烦的代码,因此没有人可以在这里真正帮助或建议您任何东西,并且有关 Stack Overflow 的问题通常会以某种方式与编程或软件开发相关,在 @987654321 定义的范围内@.

标签: magento redirect tabs


【解决方案1】:

为什么不直接

$this->_redirect('*/*/', array('active_tab' => 'list_untranslated'));

【讨论】:

    【解决方案2】:

    是的,您可以通过更改 _beforeToHtml() 中的 'active' => true / false 属性来实现 ...只需在您的 saveAction() 中传递一个参数或设置一个会话值...因此,当页面被重定向时,如果设置了参数,则检查 beforeToHtml() 更改“活动”的顺序 => $somevariable .

    基本上是这样,

    protected function _beforeToHtml()
    {
            $active = true;
            if(Mage::getSingleton('admin/session')->getData('ActiveTab')) {
                $active = false;
            }
        $this->addTab('search_string', array(
        'label'     => Mage::helper('advancedtranslate')->__('Find a string'),
        'title'     => Mage::helper('advancedtranslate')->__('Find a string'),
        'content'   => $this->getLayout()->createBlock("advancedtranslate/adminhtml_advancedtranslate")->toHtml(),
        'active'    => $active
        ));
    
        $this->addTab('list_untranslated', array(
        'label'     => Mage::helper('advancedtranslate')->__('Untranslated strings'),
        'title'     => Mage::helper('advancedtranslate')->__('Untranslated strings'),
        'content'   => $this->getLayout()->createBlock("advancedtranslate/adminhtml_grid")->toHtml(),
        'active'    => !$active
        ));
    
        return parent::_beforeToHtml();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-08
      • 2014-12-12
      • 1970-01-01
      相关资源
      最近更新 更多