2013-03-08 2 views
4

Я очень новичок в Magento, только что начал Magento до 4 дней, но мне поручено разработать Magento extension. Поэтому я читаю через Интернет и создаю его.Как добавить пользовательскую вкладку в левой боковой панели на мою пользовательскую страницу в разделе администратора в модуле magento?

Теперь проблема заключается в том, что я хочу добавить пользовательские вкладки левой боковой панели, как и под
System->Configuration.

Я пробовал много, но не успел. Пожалуйста, помогите мне.

Вот мой config.xml

<?xml version="1.0"?> 
<config> 
<!-- turn on our module, required for install support --> 
<modules> 
<Gwb_Magecrmsync> 
    <version>0.1.0</version> 
</Gwb_Magecrmsync> 
</modules> 
<frontend> 
<routers> 
    <magecrmsync> 
     <use>standard</use> 
     <args> 
      <module>Gwb_Magecrmsync</module> 
      <frontName>magecrmsync</frontName> 
     </args> 
    </magecrmsync> 
</routers> 
<layout> 
    <updates> 
     <magecrmsync> 
      <file>adminhtml.xml</file> 
     </magecrmsync> 
    </updates> 
</layout> 
</frontend> 
<admin> 
<routers> 
    <magecrmsync> 
     <use>admin</use> 
     <args> 
      <module>Gwb_Magecrmsync</module> 
      <frontName>magecrmsync</frontName> 
     </args> 
    </magecrmsync> 
</routers> 
</admin> 
<adminhtml> 
<menu> 
    <menu1 translate="title" module="magecrmsync"> 
     <title>Synchronize</title> 
     <sort_order>999</sort_order> 
     <children> 
      <menuitem1 module="magecrmsync"> 
       <title>Customers</title> 
       <action>magecrmsync/adminhtml_magecrmsync</action> 
      </menuitem1> 
      <menuitem2 module="magecrmsync"> 
       <title>Orders</title> 
       <action>magecrmsync/adminhtml_magecrmsync</action> 
      </menuitem2> 
      <menuitem3 module="magecrmsync"> 
       <title>Products</title> 
       <action>magecrmsync/adminhtml_magecrmsync</action> 
      </menuitem3> 
     </children> 
    </menu1> 
</menu> 
<acl> 
    <resources> 
     <admin> 
      <children> 
       <menu1 translate="title" module="magecrmsync"> 
        <title>Synchronize</title> 
        <sort_order>999</sort_order> 
        <children> 
         <menuitem1> 
          <title>Customers</title> 
         </menuitem1> 
         <menuitem2> 
          <title>Orders</title> 
         </menuitem2> 
         <menuitem3> 
          <title>Products</title> 
         </menuitem3> 
        </children> 
       </menu1> 
      </children> 
     </admin> 
    </resources> 
</acl> 
</adminhtml> 
<global> 
<!-- turn on models --> 
<models> 
    <magecrmsync> 
     <class>Gwb_Magecrmsync_Model</class> 
     <resourceModel>Magecrmsync_mysql4</resourceModel> 
    </magecrmsync> 
</models> 
<!-- turn on models --> 

<!-- turn on database connections --> 
<resources> 
<!-- setup is needed for automatic installation --> 
    <magecrmsync_setup> 
     <use>default_setup</use> 
    </magecrmsync_setup> 
    <magecrmsync_write> 
     <use>default_write</use> 
    </magecrmsync_write> 
    <magecrmsync_read> 
     <use>default_read</use> 
    </magecrmsync_read> 
</resources> 

<blocks> 
    <magecrmsync> 
     <class>Gwb_Magecrmsync_Block</class> 
    </magecrmsync> 
</blocks> 

<helpers> 
    <magecrmsync> 
     <class>Gwb_Magecrmsync_Helper</class> 
    </magecrmsync> 
</helpers> 

<layout> 
    <magecrmsync> 
     <file>adminhtml.xml</file> 
    </magecrmsync> 
</layout> 

</global> 
</config> 

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


Редактировать
Это мой файл System.Xml. Это позволяет мне добавить пользовательскую вкладку в разделе «Система-> Конфигурация», но я хочу ее на моей настраиваемой странице, которая отдельно, а затем «Меню конфигурации».

<?xml version="1.0"?> 
<config> 
<tabs> 
    <sidetab translate="label" module="magecrmsync"> 
     <label>My Custom Tab</label> 
     <sort_order>200</sort_order> 
    </sidetab> 
</tabs> 
<sections> 
    <sidetab translate="label" module="magecrmsync"> 
     <class>separator-top</class> 
     <label>My Tab</label> 
     <tab>sidetab</tab> 
     <sort_order>100</sort_order> 
     <show_in_default>1</show_in_default> 
     <show_in_website>1</show_in_website> 
     <show_in_store>1</show_in_store> 
     <groups> 
      <sidetab_option translate="label"> 
       <label>sysem Tab Options</label> 
       <frontend_type>text</frontend_type> 
       <sort_order>10</sort_order> 
       <show_in_default>1</show_in_default> 
       <show_in_website>1</show_in_website> 
       <show_in_store>1</show_in_store> 
       <fields> 
<registration_mode translate="label"> <label>On New User Signup</label> 
         <frontend_type>select</frontend_type> 
          <source_model>adminhtml/system_config_source_yesno</source_model> 
         <sort_order>1</sort_order> 
         <show_in_default>1</show_in_default> 
         <show_in_website>1</show_in_website> 
         <show_in_store>1</show_in_store> 
        </registration_mode> 
<forget_mode translate="label"> 
         <label>Send Email on Forget Password</label> 
         <frontend_type>select</frontend_type> 
          <source_model>adminhtml/system_config_source_yesno</source_model> 
         <sort_order>1</sort_order> 
         <show_in_default>1</show_in_default> 
         <show_in_website>1</show_in_website> 
         <show_in_store>1</show_in_store> 
        </forget_mode> 
<purchase_mode translate="label"> 
         <label>Send Email On Product Purchase</label> 
         <frontend_type>select</frontend_type> 
          <source_model>adminhtml/system_config_source_yesno</source_model> 
         <sort_order>1</sort_order> 
         <show_in_default>1</show_in_default> 
         <show_in_website>1</show_in_website> 
         <show_in_store>1</show_in_store> 
        </purchase_mode> 
       </fields> 
</sidetab_option> 
     </groups> 
    </sidetab> 
</sections> 
</config> 


My Controller Код:

<?php 
class Gwb_Magecrmsync_Adminhtml_MagecrmsyncController extends  Mage_Adminhtml_Controller_Action 
{ 
public function indexAction() 
{ 
    $this->loadLayout() 
     ->_setActiveMenu('menu1') 
     ->_addBreadcrumb(Mage::helper('adminhtml')->__('Synchronize Data'), Mage::helper('adminhtml')->__('Synchronize Data')) 
     ->_title($this->__('Synchronize Data')); 

    $block = $this->getLayout()->createBlock(
     'Mage_Core_Block_Template', 
     'my_block_name_here', 
     array('template' => 'magecrmsync/mainblock.phtml') 
    ); 
    $this->getLayout()->getBlock('content')->append($block); 

    $this->renderLayout(); 
} 

} 

Я хочу, чтобы добавить закладки на моей странице так же, как это:

Tabs like this image has on the left side on my page not on system->configuration page.

Любая помощь будет очень оценена и будет полезна для меня.

Благодаря Ravinder

+0

Вы можете оставить System.Xml для модуля? – Menno

+0

Я обновил свой код, пожалуйста, проверьте его –

+0

Здравствуйте, @Menno, не могли бы вы проверить мой код и помочь мне? –

ответ

0

Я прочитал ваш вопрос поститься в моем предыдущем ответе, поэтому я добавлю этот новый с правильной информацией. Вам нужно будет создать структуру папок, в которой вкладки будут разделены в разных файлах.

Следующая ссылка объясняет, как добавить вкладку в существующем модуль, вы можете искать лучшую статью самостоятельно, так как есть достаточно информации по этому вопросу можно найти: http://terrani.wordpress.com/2011/01/03/magento-add-a-new-tab-on-customer-edit-page/

Другой статья о нем : http://www.atwix.com/magento/new-tab-product-edit-page/

+0

Здравствуйте, @Menno, я прочитал так много статей, и везде я получаю трюк, чтобы либо добавить вкладку в конфигурацию system-> либо на странице редактирования продукта, либо на странице редактирования клиента, но это не помогает мне, потому что мой контроллер отличается и Я также помещаю код моего контроллера. Пожалуйста, проверь это. –

+0

Я нашел эту статью, иначе, боюсь, я не могу сейчас помочь вам: http://rixit-magentosolution.blogspot.nl/2012/09/to-add-tabs-in-custom-module-in -magento.html – Menno

+0

Спасибо @Menno за вашу помощь. Я пробую это сейчас и дам вам знать, смогу ли я это сделать или сейчас. –

1

Кажется, что вы связываете, чтобы создать блок «слева» и «главный» в вашем контроллере администратора.

$this->loadLayout(); 
$this->_addContent($this->getLayout()->createBlock('form/adminhtml_form_edit')) 
      ->_addLeft($this->getLayout()->createBlock('form/adminhtml_form_edit_tabs')); 
$this->renderLayout(); 


class Excellence_Form_Block_Adminhtml_Form_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs 
{ 

    public function __construct() 
    { 
     parent::__construct(); 
     $this->setId('form_tabs'); 
     $this->setDestElementId('edit_form'); // this should be same as the form id define above 
     $this->setTitle(Mage::helper('form')->__('Product Information')); 
    } 

    protected function _beforeToHtml() 
    { 
     $this->addTab('form_section', array(
      'label'  => Mage::helper('form')->__('Item Information'), 
      'title'  => Mage::helper('form')->__('Item Information'), 
      'content' => $this->getLayout()->createBlock('form/adminhtml_form_edit_tab_form')->toHtml(), 
    )); 

     return parent::_beforeToHtml(); 
    } 
} 

См http://www.excellencemagentoblog.com/module-development-series-magento-admin-module-part3

enter image description here

$this->_addLeft($this->getLayout() 
    ->createBlock('core/text') 
    ->setText('<h1>Left Block</h1>')); 

$block = $this->getLayout() 
    ->createBlock('core/text') 
    ->setText('<h1>Main Block</h1>');   
    $this->_addContent($block); 

Подробнее @http://alanstorm.com/magento_admin_controllers

+0

Да, но в левом блоке я хочу добавить вкладки так же, как в системе -> конфигурации. Можете ли вы направить меня на это? –

+0

Добавьте изображение к тому, что вы пытаетесь выполнить. Вы пытаетесь создать вкладки, например, у администратора продукта? –

+0

Я просто добавил изображение, которое показывает вкладки слева, но я хочу, чтобы вкладки на моей пользовательской странице не были в разделе «Конфигурация системы». Имеет ли это смысл? –

Смежные вопросы