1

我如何在管理字段中包含 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 功能添加新文件?

4

2 回答 2

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

于 2013-12-21T13:21:15.480 回答
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: 是 URL 的一部分,因此应该在 href 属性中分配:

于 2013-12-23T05:36:55.037 回答