【问题标题】:Magento create new field type for admin moduleMagento 为管理模块创建新的字段类型
【发布时间】:2010-09-09 13:48:50
【问题描述】:

在带有管理页面的自定义模块中,在文件中
app\code\local\Namespace\Mymodulw\Block\Myblock\Edit\Tab\Form.php 你可以添加这样的东西

$fieldset->addField('title', 'text', array(
        'label'     => Mage::helper('mymodule')->__('Title'),
        'class'     => 'required-entry',
        'required'  => true,
        'name'      => 'title',
    ));

这会在编辑页面中创建一个文本类型的输入,我要做的是创建一个新类型,然后我可以制作这样的东西

$fieldset->addField('title', 'mytype', array(
        'label'     => Mage::helper('mymodule')->__('Title'),
        'class'     => 'required-entry',
        'required'  => true,
        'name'      => 'title',
    ));

你能看出区别吗? 谢谢

【问题讨论】:

  • Mage::helper('mymodule') to Mage::helper('Mymodule') ????
  • 是吗?代码不同。您还有其他问题要问吗?
  • 抱歉那个错误,但不是我在说什么,是这个
  • 抱歉那个错误,addField('title', 'text' to $fieldset->addField('title', 'mytype',
  • 是的,代码不同,哈哈,但我的问题是如何创建自定义字段类型

标签: php magento


【解决方案1】:

adminhtml 字段类型扩展Varien_Data_Form_Element_Abstract 并位于\lib\Varien\Data\Form\Element。因此,您需要创建一个名为 Mytype.php 并声明为 class Varien_Data_Form_Element_Mytype extends Varien_Data_Form_Element_Abstract 的新文件,然后重写抽象方法以根据需要运行。

查看该目录中的文件以获取示例。

干杯, 京东

【讨论】:

  • 谢谢,真的帮了我,虽然我被困在创建我的第一个
  • 对于其他需要此功能的人,您可能需要 addElement 而不是 addField。例如` $element = Mage::getModel('mymodule/mytype'); if ($renderer = Varien_Data_Form::getFieldsetElementRenderer()) $element->setRenderer($renderer); $element->setName('my_field') ->setLabel('My Field') ; `
  • Jonathon,我很晚才回答这个问题,但这适用于 Magento2 吗?我找不到 lib\Varien\Data\Form\Element 所以我猜 Magento 已经继续前进了,现在有没有新的方法可以做到这一点?
猜你喜欢
  • 2013-12-13
  • 1970-01-01
  • 2015-02-25
  • 1970-01-01
  • 2017-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多