在哪里将业务逻辑放在magento模块中用于电子邮件表单?

时间:2013-01-25 11:21:27

标签: forms magento module block business-logic

我是magento的新手,我正在尝试为电子邮件表单创建一个模块。

在经典MVC中,我会将请求发送给Controller,但在Magento中,控制器只负责一个URL。因此,当我想将我的电子邮件表单放在产品页面上时,我无法使用控制器,是吗?

我通过产品页面中的布局xml包含我的块元素。所以我必须验证我的表单并在我的块元素的类中发送电子邮件?或者我是否必须为此写一个或多个助手?

什么是magento方式?

非常感谢。很抱歉,如果我的问题很蹩脚,但我是初学者,我想学习正确的方法,而且我看过很多错误的教程。

1 个答案:

答案 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,这是自我理解的