В общем всё построено так:
В layouts/main.php
Код: Выделить всё
<?php $this->renderPartial('//layouts/header'); ?>
Код: Выделить всё
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'contact-form',
'action'=>Yii::app()->createUrl('//site/mail'),
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
)); ?>
<div class="an-order">
<?php $model=new MailForm;?>
<?php echo $form->errorSummary($model); ?>
<div class="an">
<?php echo $form->textField($model,'name',array('size'=>60,'maxlength'=>255,'encode'=>false,'value'=>'','placeholder'=>'Имя','class'=>'name')); ?>
<?php echo $form->error($model,'name'); ?>
</div>
<div class="an">
<?php echo $form->textField($model,'number',array('size'=>60,'maxlength'=>255,'encode'=>false,'value'=>'','placeholder'=>'Телефон','class'=>'number')); ?>
<?php echo $form->error($model,'number'); ?>
</div>
<div class="items"></div>
<div class="an buttons">
<?php echo CHtml::submitButton('Закажи звонок', array('class'=>'submit_order')); ?>
</div>
<?php $this->endWidget(); ?>
</div>
</div><!-- form -->
<?php if(Yii::app()->user->hasFlash('mail')):?>
<div class="info">
<?php echo Yii::app()->user->getFlash('mail'); ?>
</div>
<?php endif; ?>
Код: Выделить всё
public function actionMail()
{
$model=new MailForm;
$mail=Setting::model()->findByPk(3);
// var_dump($_POST); exit();
if(isset($_POST['MailForm']))
{
$model->attributes=$_POST['MailForm'];
if($model->validate())
{
$subject='=?UTF-8?B?'.base64_encode($model->name.' хочет знать цену').'?=';
$headers="From: <Трым-бым-бым>\r\n".
"MIME-Version: 1.0\r\n".
"Content-Type: text/html; charset=UTF-8";
$body = "";
$name=$model->name;
$body .= $name."<br>";
$number=$model->number;
$body .=$number ."<br>";
mail($mail->mail,$subject,$body,$headers);
}
}
$this->redirect('index');
Yii::app()->user->setFlash('mail',"Письмо успешно отправлено! Ожидайте звонка!");
Yii::app()->clientScript->registerScript(
'myHideEffect',
'$(".info").animate({opacity: 1.0}, 3000).fadeOut("slow");',
CClientScript::POS_READY
);
}