Нужно сюда передать модель с данными юзера и время для кукисов (если надо)
Yii::$app->user->login($user, $this->rememberMe ? 864000 : 0);
Выход
Yii::$app->user->logout();
Yii::$app->user->login($user, $this->rememberMe ? 864000 : 0);
Yii::$app->user->logout();
# Rakovskiy (12.02.2015 / 00:47)Куча статики, завязок \Yii::$app. Слишком сильно загоняет в рамки. Не гибко. Да и вообще
А чё так?
# reaper (12.02.2015 / 00:56)Ну, не знаю. Юзал когда-то зенд первый не понравился вообще, на то время пытался юзать Yii тож первый. Сейчас даже не вспомню, что там плохого и хорошего.
Куча статики, завязок \Yii::$app. Слишком сильно загоняет в рамки. Не гибко. Да и вообще
Нет, может там и есть какие-то хорошие идеи, но в целом он мне чем-то напоминает CI, Kohana и им подобны
# reaper (12.02.2015 / 01:00)Ой, честно сказать с REST ещё не сталкивался но видел, что в Yii2 много всего для этого есть, даже в поисках некоторых ман попадал на этот REST. Знаю, что там что-то с контроллерами мутить можно, ну типа наследовать от RestController и т.д.
Rakovskiy, на твой пост (12.02.2015 / 00:56) отвечу, А если я делаю REST/RPC API, что мне делать тогда?
# Koenig (12.02.2015 / 01:07)гГ кстати про опыт в процедурке. Буквально пол года назад я писал на ФВ так
имхо, для использования фв, и выбора между ними, нужен опыт в процедурном стиле, чтоб понимать процессы на самом простом уровне
<?php
class IndexController extends Controller{
public function actionIndex(){
View::head(array(
'title' => 'Оставить запрос',
'key' => 'Оставить запрос, связаться с Интеп, обратная связь, написать нам',
'des' => 'Обратная связь, оставить нам сообщение, напишите нам'
));
$form = new MessageFilesModel();
$text = null;
$error = array();
$value = array();
$value['fio'] = isset($_POST['fio']) ? Check::string($_POST['fio']) : '';
$value['email'] = isset($_POST['email']) ? Check::string($_POST['email']) : '';
$value['ext_email'] = isset($_POST['ext_email']) ? Check::string($_POST['ext_email']) : '';
$value['phone'] = isset($_POST['phone']) ? Check::string($_POST['phone']) : '';
$value['ext_phone'] = isset($_POST['ext_phone']) ? Check::string($_POST['ext_phone']) : '';
$value['text'] = isset($_POST['text']) ? Check::string($_POST['text']) : '';
if (isset($_POST['submit'])){
if (mb_strlen($value['fio']) < 3){
$error[] = 'Неверная длина ФИО';
}
if (!Check::email($value['email'])){
$error[] = 'Неверный формат e-mail';
}
if (mb_strlen($value['text']) < 5){
$error[] = 'Неверная длина описания';
}
if (!$error){
$message = new MessageModel();
$message->fio = $value['fio'];
$message->phone = $value['phone'];
$message->ext_phone = $value['ext_phone'];
$message->email = $value['email'];
$message->ext_email = $value['ext_email'];
$message->text = $value['text'];
$message->new = 1;
$message->time = Time::real();
$message->save(0);
//Загрузка файлов
$path = ROOT . 'files/message/' . $message->id . '/';
$error = $this->uploadFiles($form,$message->id);
if ($error){
$message->delete();
}else{
$contact = ContactsModel::model()->find();
if (isset($contact->mess_email)){
foreach (explode("\r\n",$contact->mess_email) as $email){
if (Check::email($email)){
$message = new YiiMailMessage;
$message->view = 'message';
$message->setBody($value,'text/html');
$message->addTo($email);
$message->from = Yii::app()->params['admin_email'];
Yii::app()->mail->send($message);
}
}
}
$text = 'Запрос отправлен';
}
}
}
$key = 'static_message';
if (!$info = Yii::app()->cacheFile->get($key)){
$info = StaticModel::model()->findByAttributes(array('page' => 'message'));
Yii::app()->cacheFile->set($key,$info);
}
$this->render('index',array('value' => $value,'error' => $error,'text' => $text,'info' => $info,'model' => $form));
View::foot();
}
public static function uploadFiles($model,$ref){
$error = array();
$path = ROOT . 'files/message/' . $ref . '/';
$files = CUploadedFile::getInstances($model, 'file');
if (!is_dir($path)){
mkdir($path);
if (is_dir($path)){
chmod ($path,0777);
}
}
if ($model->validate()){
foreach ($files as $file){
$name = uniqid() . '.' . $file->getExtensionName();
$file->saveAs($path . $name);
//Записываем в БД
$photo = new MessageFilesModel();
$photo->name = $name;
$photo->ip = Func::ip();
$photo->ua = Func::ua();
$photo->type = $file->getType();
$photo->time = Time::real();
$photo->ref = $ref;
$photo->save(0);
}
}else{
Func::deleteDir($path);
$error = $model->getErrors();
$error = $error['file'];
}
return $error;
}
}
<div class="mainreq">
<div class="white">
<div class="hl"><h1>Оформление запроса</h1></div>
<?php if ($text){ ?>
<?php View::text($text . '</div>',true); ?>
<?php } ?>
<div class="alert alert-success" style="text-align: center;">
<?php echo $info->text; ?>
</div>
<form action="#" method="post" class="clearfix" id="message_form" enctype="multipart/form-data">
<?php if ($error){ ?>
<?php View::error($error); ?>
<?php } ?>
<div class="clearfix">
<div class="re1">
<div><span class="red">*</span> ФИО</div>
<input type="text" name="fio" value="<?php echo $value['fio']; ?>">
<div><span class="red">*</span> Почта:</div>
<input type="text" name="email" value="<?php echo $value['email']; ?>">
<div><span class="red">*</span> Телефон:</div>
<input type="text" name="phone" value="<?php echo $value['phone']; ?>" placeholder="+375 XX XXXXXXX">
<div>Дополнительный телефон:</div>
<input type="text" name="ext_phone" value="<?php echo $value['ext_phone']; ?>" placeholder="+375 XX XXXXXXX">
</div>
<div class="re2">
<div><span class="red">*</span> Краткое описание:</div>
<textarea name="text" id="message"><?php echo $value['text']; ?></textarea>
<div> Дополнительная почта:</div>
<input type="text"name="ext_email" value="<?php echo $value['ext_email']; ?>">
</div>
</div>
<?php View::formUpload($model,'Добавить файл'); ?>
<div class="submit"><input type="submit" name="submit" value="Отправить запрос"></div>
</form>
</div>
</div>
</div>