如何在 Magento 中更改 adminhtml 目录产品编辑中的选项卡顺序

Posted

技术标签:

【中文标题】如何在 Magento 中更改 adminhtml 目录产品编辑中的选项卡顺序【英文标题】:How to change order of tabs in adminhtml catalog product edit in Magento 【发布时间】:2016-04-04 14:25:28 【问题描述】:

我在 adminhtml 目录产品页面中创建选项卡意见。

我希望我的标签“意见”在标签列表中排在第一位。

app/code/local/Fishpig/Customtabs/Block/Adminhtml/Catalog/Product/Tab.php

类 Fishpig_Customtabs_Block_Adminhtml_Catalog_Product_Tab 扩展 Mage_Adminhtml_Block_Template 实现 Mage_Adminhtml_Block_Widget_Tab_Interface

public function _construct()

    parent::_construct();

    $this->setTemplate('customtabs/catalog/product/tab.phtml');


public function getTabLabel()

    return $this->__('Opinion');

 public function getTabTitle()

    return $this->__('Click here to view your custom tab content');


public function canShowTab()

    return true;


public function isHidden()

    return false;

app/design/adminhtml/default/default/layout/customtabs.xml *

<layout>
    <adminhtml_catalog_product_edit>
<reference name="product_tabs">
            <action method="addTab">
                <name>opinion</name>
                <block>customtabs/adminhtml_catalog_product_tab</block>
            </action>enter code here
        </reference>
    </adminhtml_catalog_product_edit>
</layout>

*

【问题讨论】:

!Valid XHTML. 【参考方案1】:

如果您希望您的标签位于管理目录产品添加或编辑页面的第一个位置

那么你需要做这些步骤

1:覆盖此文件

<global>
        <blocks>
            <adminhtml>
                <rewrite>
                    <catalog_product_edit_tabs>Namespace_Modulename_Block_Adminhtml_Catalog_Product_Edit_Tabs</catalog_product_edit_tabs>
                </rewrite>
            </adminhtml>
        </blocks>
    </global>           

第 2 步:在文件中

有一个函数名为:_prepareLayout

在你的模块文件中覆盖它

并在此代码后添加选项卡

$product = $this->getProduct();

        if (!($setId = $product->getAttributeSetId())) 
            $setId = $this->getRequest()->getParam('set', null);
        

添加此代码

$this->addTab('opinion', array(
                'label'     => Mage::helper('core')->__('Opinion'),
                'url'       => $this->getUrl('module/controller/opinion', array('_current' => true)),
                'class'     => 'ajax',
            ));

第 3 步:在控制器中创建一个功能意见,并将您的模板文件设置为 $this-&gt;setTemplate('customtabs/catalog/product/tab.phtml');

如果您需要更多帮助,请告诉我

【讨论】:

感谢您的回答。我补充了你的写作方式,但我还有一个问题。 添加标签后,所有标准标签(常规,价格,...)都不会像此图像上那样显示i.stack.imgur.com/xUkIX.png 你可以查看页面的源代码并检查是否存在任何致命错误并让我知道错误 谢谢,我决定了我的问题。我想在列表的第一个选项卡或设置为活动状态。我找到了选项 - 'active' => true .【参考方案2】:

尝试改用addTabAfter 方法

    <action method="addTabAfter">
        <name>opinion</name>
        <block>customtabs/adminhtml_catalog_product_tab</block>
        <after></after>
    </action>

【讨论】:

【参考方案3】:

要确定要在哪个选项卡之后添加您需要在文件中的自定义选项卡 app/code/local/Fishpig/Customtabs/Block/Adminhtml/Catalog/Product/Tab.php 添加这样的方法:

public function getAfter()

    return 'group_32'; // Name of tab after which you want add your tab

group_32 在我的例子中它是常规选项卡的名称。

【讨论】:

以上是关于如何在 Magento 中更改 adminhtml 目录产品编辑中的选项卡顺序的主要内容,如果未能解决你的问题,请参考以下文章

动态改变 Magento 的 adminhtml 菜单选项

如何在 Magento 管理面板中添加新按钮到订单视图?

关于Magento数据库的一系列查询

Magento2自定义模块新型控制器发行

将配置保存为非管理员用户时,Magento 付款方式访问被拒绝

如何在Magento(麦进斗)导入CSV文件中的产品价格的变化?