Magento自定义模块-如何添加带有父类别的自定义选择框

Magento自定义模块-如何添加带有父类别的自定义选择框,magento,Magento,我编写了一个模块来拥有自己的菜单栏,而不仅仅是使用类别作为菜单栏 因此,这里我想在自定义菜单模块的Tab/Form.php中添加新菜单的同时显示已经添加的菜单。如何在表单上以下拉/选项列表的形式显示所有现有菜单名。这是我以前使用的菜单表单代码 $form = new Varien_Data_Form(); $this->setForm($form); $fieldset = $form->addFieldset('menu_form', array('leg

我编写了一个模块来拥有自己的菜单栏,而不仅仅是使用类别作为菜单栏

因此,这里我想在自定义菜单模块的Tab/Form.php中添加新菜单的同时显示已经添加的菜单。如何在表单上以下拉/选项列表的形式显示所有现有菜单名。这是我以前使用的菜单表单代码

 $form = new Varien_Data_Form();
      $this->setForm($form);
      $fieldset = $form->addFieldset('menu_form', array('legend'=>Mage::helper('menu')->__('Menu information')));

  $note = "Name of this Menu";
  $fieldset->addField('title', 'text', array(
      'label'     => Mage::helper('menu')->__('Menu Name'),
      'class'     => 'required-entry',
      'required'  => true,
      'note'      => $note,
      'name'      => 'title',
  ));


  $note = "Menu level";
  $fieldset->addField('level', 'select', array(
      'label'     => Mage::helper('menu')->__('Menu level'),
      'name'      => 'level',
      'note'      => $note,
      'values'    => array(
          array(
              'value'     => 1,
              'label'     => Mage::helper('menu')->__('Level 1'),
          ),

          array(
              'value'     => 2,
              'label'     => Mage::helper('menu')->__('Level 2'),
          ),
      ),
  ));

  $model = Mage::registry('menu');
  $fieldset->addField('parent', 'text', array(
        'name' => 'conditions',
        'label' => Mage::helper('menu')->__('Parent Menu'),
        'title' => Mage::helper('menu')->__('Parent Menu'),
        'required' => false,
        'note'      => $note,
  ))->setRule($model)->setRenderer(Mage::getBlockSingleton('rule/conditions'));

 $fieldset->addField('target', 'select', array(
        'label'     => Mage::helper('menu')->__('Open in new window'),
        'name'      => 'target',
        'values'    => array(
            array(
                'value'     => "_blank",
                'label'     => Mage::helper('menu')->__('Yes'),
            ),

            array(
                'value'     => "_self",
                'label'     => Mage::helper('menu')->__('No'),
            ),
        ),
    ));

    $fieldset->addField('status', 'select', array(
        'label'     => Mage::helper('menu')->__('Status'),
        'name'      => 'status',
        'values'    => array(
          array(
              'value'     => 1,
              'label'     => Mage::helper('menu')->__('Enabled'),
          ),

          array(
              'value'     => 2,
              'label'     => Mage::helper('menu')->__('Disabled'),
          ),
        ),
    ));


  $note = "Menu Links to Which page. BaseURL(<b>".str_ireplace("index.php/","",Mage::getBaseUrl())."</b>) Will be Added Dynamically, Please add Your new page Refrence alone";
  $fieldset->addField('menulink', 'text', array(
      'label'     => Mage::helper('menu')->__('URL'),
      'required'  => true,
      'class'     => 'required-entry',
      'note'      => $note,
      'name'      => 'menulink',
  ));


  $fieldset->addField('position', 'select', array(
        'label'     => Mage::helper('menu')->__('Position'),
        'name'      => 'position',
        'values'    => array(
          array(
              'value'     => 1,
              'label'     => Mage::helper('menu')->__('Top 1'),
          ),

          array(
              'value'     => 2,
              'label'     => Mage::helper('menu')->__('Top 2'),
          ),
        ),
  ));



  if ( Mage::getSingleton('adminhtml/session')->getMenuData() )
  {
      $form->setValues(Mage::getSingleton('adminhtml/session')->getMenuData());
      Mage::getSingleton('adminhtml/session')->setMenuData(null);
  } elseif ( Mage::registry('menu_data') ) {
      $form->setValues(Mage::registry('menu_data')->getData());
  }
  return parent::_prepareForm();
$form=新变量数据形式();
$this->setForm($form);
$fieldset=$form->addFieldset('menu_form',array('legend'=>Mage::helper('menu')->(menu information'));
$note=“此菜单的名称”;
$fieldset->addField('title','text',数组(
'label'=>Mage::helper('menu')->,
“类”=>“必需条目”,
“必需”=>true,
'note'=>$note,
“名称”=>“标题”,
));
$note=“菜单级别”;
$fieldset->addField('level','select',数组(
'label'=>Mage::helper('menu')->,
“名称”=>“级别”,
'note'=>$note,
'值'=>数组(
排列(
“值”=>1,
'label'=>Mage::helper('menu')->(级别1'),
),
排列(
“值”=>2,
'label'=>Mage::helper('menu')->\uuuu('level2'),
),
),
));
$model=Mage::注册表(“菜单”);
$fieldset->addField('parent','text',数组(
“名称”=>“条件”,
'label'=>Mage::helper('menu')->,
'title'=>Mage::helper('menu')->,
“必需”=>false,
'note'=>$note,
))->setRule($model)->setRenderer(Mage::getBlockSingleton('rule/conditions');
$fieldset->addField('target','select',数组(
'label'=>Mage::helper('menu')->\uuuu('openinnewwindow'),
'名称'=>'目标',
'值'=>数组(
排列(
'值'=>“_blank”,
'label'=>Mage::helper('menu')->\uuuu('Yes'),
),
排列(
“值”=>“\u self”,
'label'=>Mage::helper('menu')->,
),
),
));
$fieldset->addField('status','select',array(
'label'=>Mage::helper('menu')->,
“名称”=>“状态”,
'值'=>数组(
排列(
“值”=>1,
'label'=>Mage::helper('menu')->\uuuu('Enabled'),
),
排列(
“值”=>2,
'label'=>Mage::helper('menu')->\uuuu('Disabled'),
),
),
));
$note=“将动态添加指向哪个页面的菜单链接.BaseURL(“.str_-ireplace(“index.php/”,“”,Mage::getBaseUrl())”),请单独添加新页面引用”;
$fieldset->addField('menulink','text',数组(
'label'=>Mage::helper('menu')->,
“必需”=>true,
“类”=>“必需条目”,
'note'=>$note,
'name'=>'menulink',
));
$fieldset->addField('position','select',array(
'label'=>Mage::helper('menu')->\uuuu('Position'),
“名称”=>“位置”,
'值'=>数组(
排列(
“值”=>1,
'label'=>Mage::helper('menu')->,
),
排列(
“值”=>2,
'label'=>Mage::helper('menu')->,
),
),
));
if(Mage::getSingleton('adminhtml/session')->getMenuData()
{
$form->setValues(Mage::getSingleton('adminhtml/session')->getMenuData());
Mage::getSingleton('adminhtml/session')->setMenuData(null);
}elseif(Mage::registry('menu_data')){
$form->setValues(Mage::registry('menu_data')->getData();
}
返回父项::_prepareForm();
在这里,我想在父菜单选项下显示所有添加的菜单。我应该在我的模型类中写些什么,这样我就可以有一个下拉列表来显示它们,并且在添加之后应该将其添加到数据库中


请帮帮我,我在这里挣扎。

你可以通过添加这些行来实现这一点

它将以下拉列表的形式显示已添加的菜单,以便您可以选择其中任何一个作为当前项的父菜单

      $_menus = Mage::getSingleton('menus/menus')->getCollection(); 
      foreach($_menus as $item)
  { 
        if($item->getParent == NULL){
            $_menuItems[] = array(
                        'value'     => $item->getId(),
                        'label'     => $item->getTitle(),
                    );
        }
  }

  $note = "Choose the parent menus for this item";
  $fieldset->addField('parent', 'select', array(
        'name'      => 'parent',
        'label'     => Mage::helper('menus')->__('Parent Menu'),
        'title'     => Mage::helper('menus')->__('Parent Menu'),
        'required'  => false,
        'note'      => $note,
        'class'     => 'HideIt',
        'values'    => $_menuItems,
  ));