Как добавить пользовательскую вкладку на панель вкладок страниц cms в пользовательском модуле magento

Как я могу добавить дополнительную вкладку для меню вкладок cms на странице редактирования блока cms, используя мой пользовательский модуль. Может ли кто-нибудь помочь.

Спасибо


person Mahmood Rehman    schedule 21.12.2012    source источник
comment
Где ваш пользовательский модуль? Выложи на гитхаб и дай сюда ссылку, может тогда сможем помочь.   -  person Subrata    schedule 21.12.2012
comment
Извините, я работаю на локальной машине.   -  person Mahmood Rehman    schedule 21.12.2012
comment
Я нахожу решение просто переписать: ‹rewrite› ‹cms_page_edit_tabs›MyModule_Block_Adminhtml_MyModule_Edit_Tabs‹/cms_page_edit_tabs› ‹/rewrite›   -  person Mahmood Rehman    schedule 21.12.2012


Ответы (1)


Вы можете использовать макет и добавить свой блок на вкладку:

<?xml version="1.0"?>
<layout version="0.0.1">
    <adminhtml_cms_page_edit>
        <reference name="cms_page_edit_tabs">
            <block type="module/cms_page_edit_tab_tags" name="cms_page_edit_tab_tags" after="cms_page_edit_tab_meta"/>                
            <action method="addTab"><name>tags_section</name><block>cms_page_edit_tab_tags</block></action>                                
        </reference>
    </adminhtml_cms_page_edit>
</layout>

и блокировать реализацию

class My_Module_Block_Cms_Page_Edit_Tab_Tags 
extends Mage_Adminhtml_Block_Widget_Form
implements Mage_Adminhtml_Block_Widget_Tab_Interface
{
    protected function _prepareForm()
    {
        $form = new Varien_Data_Form();
        $this->setForm($form);
        // your tab code here
        return parent::_prepareForm();
    }

    public function getTabLabel()
    {
        return Mage::helper('cms')->__('Cms Pages Products');
    }

    public function getTabTitle()
    {
        return Mage::helper('cms')->__('Cms Pages Products');
    }

    public function canShowTab()
    {
        return true;
    }

    public function isHidden()
    {
        return false;
    }
}

Посмотрите app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/* и app/design/adminhtml/default/default/layout/cms.xml для реализации.

person Pavel Novitsky    schedule 21.12.2012
comment
Спасибо, Парвел. Но я думаю, что метод, которому я следую, прост: когда я добавляю вкладку, эта вкладка вызывает мой код блока, например $this->addTab('form_section', array('label' => Mage::helper(' mymodule')-›__('Новая вкладка'), 'title' =› Mage::helper('mymodule')-›__('Новая вкладка'), 'content' =› $this-›getLayout()- ›createBlock('mymodule/adminhtml_mymodule_edit_tab_form')-›toHtml(), )); Что вы об этом говорите. - person Mahmood Rehman; 21.12.2012
comment
Только один вопрос: что, если однажды вы установите расширение, которое добавляет вкладку так же, как это сделали вы? Я предпочитаю не использовать перезаписи, если этого можно избежать. - person Pavel Novitsky; 21.12.2012
comment
Спасибо, я не думал об этом. - person Mahmood Rehman; 21.12.2012