在管理字段中添加mailto功能

时间:2013-12-21 09:57:40

标签: magento adminhtml

如何在admin文件夹中包含mailto功能的新字段

$fieldset->addField('email', 'link', array(
    'label'     => Mage::helper('mumodule')->__('Email'),
    "target"=>"_blank",
    'mailto' => Mage::registry('mumodule')->getData('email'),
    'class'     => 'required-entry',
    'required'  => true,
    'name'      => 'title',
    ));

使用这种方式我无法添加功能。

是否可以添加带有mailto功能的新文件?

2 个答案:

答案 0 :(得分:3)

您必须创建自己的表单字段渲染器。为此,您需要一个自定义模块。如果您不知道如何做到这一点,那么这是一个很好的起点:http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/how_to_create_an_admin_form_module

使用以下内容在app / code / [local / community] /MyCompany/MyModule/Varien/Data/Form/Element/Mailto.php中创建一个新文件:

class MyCompany_MyModule_Varien_Data_Form_Element_Mailto extends Varien_Data_Form_Element_Abstract {
public function __construct($data) {
    parent::__construct($data);
    $this->setType('link');
}

public function getElementHtml() {
    $html = $this->getBeforeElementHtml();
    if ($this->getValue()) {
        $html .= '<a href="mailto:'.$this->getValue().'"></a> ';
    }
    $html .= $this->getAfterElementHtml();
    return $html;
}

之后转到表单文件并将其添加到字段集:

$fieldset->addType('mailto','MyCompany_MyModule_Varien_Data_Form_Element_Mailto');

$fieldset->addField('email', 'mailto', array(
    'label'     => Mage::helper('mymodule')->__('Email'),
    'name'      => 'email',
));

当然,您应该将MyCompany命名空间替换为您已在模块中使用的命名空间,将MyModule替换为您的模块名称。另外,不要忘记将文件放在模块已存在的代码池中:local / community

答案 1 :(得分:2)

我以简单的方式实现

$fieldset->addField('email', 'link', array(
        'label'     => Mage::helper('mumodule')->__('Email'),
        'target'    => '_blank',
        'href'      => 'mailto:' . urlencode(Mage::registry('mumodule')->getData('email')),
        'class'     => 'required-entry',
    ));

mailto:是网址的一部分,因此应在href属性中进行分配: