如何在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功能的新文件?
答案 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属性中进行分配: