Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
66.67% |
2 / 3 |
CRAP | |
91.67% |
11 / 12 |
| ContactForm | |
0.00% |
0 / 1 |
|
66.67% |
2 / 3 |
4.01 | |
91.67% |
11 / 12 |
| rules | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| attributeLabels | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 1 |
|||
| sendEmail | |
100.00% |
1 / 1 |
2 | |
100.00% |
10 / 10 |
|||
| <?php | |
| namespace frontend\models; | |
| use Yii; | |
| use yii\base\Model; | |
| /** | |
| * ContactForm is the model behind the contact form. | |
| */ | |
| class ContactForm extends Model | |
| { | |
| public $name; | |
| public $email; | |
| public $subject; | |
| public $body; | |
| public $verifyCode; | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function rules() | |
| { | |
| return [ | |
| // name, email, subject and body are required | |
| [['name', 'email', 'subject', 'body'], 'required'], | |
| // email has to be a valid email address | |
| ['email', 'email'], | |
| // verifyCode needs to be entered correctly | |
| ['verifyCode', 'captcha'], | |
| ]; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function attributeLabels() | |
| { | |
| return [ | |
| 'verifyCode' => 'Verification Code', | |
| ]; | |
| } | |
| /** | |
| * Sends an email to the specified email address using the information collected by this model. | |
| * | |
| * @param string $email the target email address | |
| * @return bool whether the email was sent | |
| */ | |
| public function sendEmail($email) | |
| { | |
| $message = Yii::$app->mailer->compose(); | |
| $fromEmail = \Yii::$app->params['supportEmail']; | |
| $sourceEmail = $message->getFrom(); | |
| if (!empty($sourceEmail)) $fromEmail = key($sourceEmail); | |
| return $message->setFrom([$fromEmail => $this->name]) | |
| ->setReplyTo([$this->email => $this->name]) | |
| ->setTo($email) | |
| ->setSubject($this->subject) | |
| ->setTextBody($this->body) | |
| ->send(); | |
| } | |
| } |