Код: Выделить всё
public function actionView($id)
{
$girls = Girls::findOne($id);
if(empty($girls)){
throw new \yii\web\HttpException(404, 'Такой девушки нет.');
}
$date1 = date("M j, Y");
/* Создаем экземпляр класса */
$model = new ContactForm();
if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['emailto'])) {
Yii::$app->session->setFlash('contactFormSubmitted');
return $this->refresh();
}
$this->setMeta( $girls->title, $girls->keywords, $girls->description);
return $this->render('view', compact('girls', 'date1', 'model'));
}
Код: Выделить всё
<?php
/* Объявляем пространство имен */
namespace app\models;
use Yii;
use yii\base\Model;
/* Объявляем класс формы */
class ContactForm extends Model
{
/* Объявление переменных */
public $name, $email, $subject, $body;
/* Правила для полей формы обратной связи (валидация) */
public function rules()
{
return [
/* Поля обязательные для заполнения */
[ ['name', 'email', 'subject', 'body'], 'required'],
/* Поле электронной почты */
['email', 'email'],
];
}
/* Определяем названия полей */
public function attributeLabels()
{
return [
'name' => 'Имя',
'email' => 'Электронный адрес',
'subject' => 'Тема',
'body' => 'Сообщение',
];
}
/* функция отправки письма на почту */
public function contact($emailto)
{
/* Проверяем форму на валидацию */
if ($this->validate()) {
Yii::$app->mailer->compose()
->setFrom([$this->email => $this->name]) /* от кого */
->setTo($emailto) /* куда */
->setSubject($this->subject) /* имя отправителя */
->setTextBody($this->body) /* текст сообщения */
->send(); /* функция отправки письма */
return true;
} else {
return false;
}
}
}
Код: Выделить всё
<?php if (Yii::$app->session->hasFlash('contactFormSubmitted')): ?>
<div class="alert alert-success">
Спасибо за обращение к нам. Мы постараемся ответить вам как можно скорее.
</div>
<?php else: ?>
<?php $form = ActiveForm::begin([
'id' => 'contact-form', /* Идентификатор формы */
'options' => ['class' => 'form-horizontal'], /* класс формы */
'fieldConfig' => [ /* классы полей формы */
'template' => "<div class=\"col-lg-3\">{label}</div>\n<div class=\"col-lg-9\">{input}</div>\n<div class=\"col-lg-12 col-lg-offset-3 \">{error}</div>"
],
]); ?>
<?= $form->field($model, 'name') ?>
<?= $form->field($model, 'email') ?>
<?= $form->field($model, 'subject') ?>
<?= $form->field($model, 'body')->textArea(['rows' => 6]) ?>
<div class="form-group">
<?= Html::submitButton('Отправить сообщение', ['class' => 'btn btn-default waves-effect btn-color-orange btn-color-orange-long', 'name' => 'contact-button']) ?>
</div>
<?php ActiveForm::end(); ?>
<?php endif; ?>