Добавьте функцию mailto в поле администратора
Как я могу заполнить новое поле в админке, содержащее функцию 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 ответа
я достигаю простым способом
$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:
Вы должны создать свой собственный рендерер поля формы. Для этого вам понадобится пользовательский модуль. Если вы не знаете, как это сделать, вот хорошая отправная точка: 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:
$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