Magento:在模块中自定义左侧选项卡菜单

时间:2014-10-23 14:02:18

标签: php magento

我已经想出如何将实际的标签项添加到我的自定义模块中,但是我无法弄清楚如何添加像系统模块那样的绿色标题部分标题。使用system.xml文件将自己的内容添加到系统模块本身并不困难,但如何将一个添加到自己的模块菜单中?!

编辑:添加我用于选项卡的代码作为参考。扩展块的文档也发布在下面。 http://docs.magentocommerce.com/Mage_Adminhtml/Mage_Adminhtml_Block_Widget_Tabs.html

这是添加标签,但是他们的标题呢?

    $this->addTab('custom_assigned_tab1_id_name', array(
        'label'     => Mage::helper('coffefreakhelper1')->__('Custom tab1 here'),
        'title'     => Mage::helper('coffefreakhelper1')->__('My custom tab1 title here'),
        'content'   => 'Some content here. We could add direct string here, or we can use something like $this->getLayout()->createBlock("adminhtml/cms_page_edit_tab_main")->toHtml()',
        'active'    => true
    ));

编辑:解决了它

在查看系统块之后,我注意到他们已经制作了一个特定的模板和一些实用方法来处理widget类。所以,知道这一点,我扩展了Mage_Adminhtml_Block_System_Config_Tabs而不是Mage_Adminhtml_Block_Widget类。我在下面有一个测试示例。

class Inchoo_CoffeeFreak_Block_ShowTabsAdminBlock extends Mage_Adminhtml_Block_System_Config_Tabs {
protected $_tabs;

public function __construct() {
    parent::__construct();
    $this -> setId('test_config_tabs');
    $this -> setTitle("Test Tab Page");
    $this -> setTemplate('system/config/tabs.phtml');
}

protected function _beforeToHtml() {        
    for($tab = 1; $tab < 4; $tab++){
        $tabCode = 'tab_' . $tab;
        $tabTitle = "Tab " . $tab;
        $this -> addTab($tabCode, array("label" => $tabTitle, "class" => ""));
        for($section = 1; $section < 4; $section++){
            $sectionCode = "section_" . $tab . "_" . $section;
            $sectionTitle = "Section " . $section;
            $this -> addSection($sectionCode, $tabCode, array('class' => '', 'label' => $sectionTitle, 'url' => '', ));
        }           
    }
    $this -> setLastSections();
    return parent::_beforeToHtml();
}

public function setLastSections() {
    foreach ($this->getTabs() as $tab) {
        $sections = $tab -> getSections();
        if ($sections) {
            $sections -> getLastItem() -> setIsLast(true);
        }
    }
}

}

结果如下图所示。

https://drive.google.com/file/d/0By8e425vlQRuNFBxSjRuM3NKTnc/view?usp=sharing

我扩展的课程是指&#34;标签&#34;作为主要部分的标题。它将每组子标签分开。子标签被称为&#39;部分&#39;。我的测试脚本只是循环并创建3个标签,每个标签有3个部分。

1 个答案:

答案 0 :(得分:0)

我在主帖上添加了一个带有答案的编辑。为其他想要使用它的人提供了一个测试片段。

另外值得一提的是,我的样板模块是由Inchoo创建的,可以在下面的链接中查看。我用上面粘贴的代码替换了他们的标签代码。结果是一个很好的菜单,其中包含标题的选项卡。

http://inchoo.net/magento/coffeefreak-blank-magento-extension-for-building-main-admin-menu-with-sidebar-and-tabs/