Magento标签更改/重定向 [英] Magento tab change/redirect

查看:84
本文介绍了Magento标签更改/重定向的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a page with two tabs, a search-tab and a tab with a grid of the database. After the user edits one of the items in the grid, I'd like to keep them on the grid tab, rather than the form tab which is first in order.

是否可以通过代码更改页面上的活动标签?

Is there a way to change the active tab on a page via code?

这是标签的代码:

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:

And this is the saveAction in my controller that handles the redirect:

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('*/*/');
}

推荐答案

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

Yes you can do so by changing the 'active' => true / false attribute in your _beforeToHtml() ... simply pass a parameter or set a session value in your saveAction()... so when the page gets redirected you check in your beforeToHtml() if the parameter is set you change the order of 'active' => $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();
}

这篇关于Magento标签更改/重定向的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆