我是magento的新手,我正在尝试为电子邮件表单创建一个模块。
在经典MVC中,我会将请求发送给Controller,但在Magento中,控制器只负责一个URL。因此,当我想将我的电子邮件表单放在产品页面上时,我无法使用控制器,是吗?
我通过产品页面中的布局xml包含我的块元素。所以我必须验证我的表单并在我的块元素的类中发送电子邮件?或者我是否必须为此写一个或多个助手?
什么是magento方式?
非常感谢。很抱歉,如果我的问题很蹩脚,但我是初学者,我想学习正确的方法,而且我看过很多错误的教程。
答案 0 :(得分:1)
在提交表单时,向控制器提供操作,例如:
<?php echo Mage::getUrl()?>bpartner/index/mailbpartner
bpartner您的模块名称
索引控制器名称
mailbpartner您在INDEX NAMED CONTROLLER FILE中的功能。
通过POST获取所有详细信息并发送如下邮件+成功重定向
$to = "abc@abc.com";
$dt = date('d-m-Y');
$subject = "Become A Partner Details on date $dt";
$mail = new Zend_Mail('utf-8');
$mail->setBodyHtml($message)
->setFrom($data['email'], $data['firstname'])
->addTo($to, 'Site Admin')
->setSubject($subject);
try {
$mail->send();
Mage::getSingleton('core/session')->addSuccess('Mail sent successfully. We will contact you shortly');
}
catch(Exception $e) {
Mage::getSingleton('core/session')->addError('Unable to send email.');
}
$this->_redirect('bpartner');
上面的一些数据是POST DATA,这是自我理解的