public function beforeValidate() { if (parent::beforeValidate()) { if ($this->scenario === 'update') { $this->alias = YText::translit($this->title); } else { if (!$this->alias) { $this->alias = YText::translit($this->title); } } if (!$this->description) { $this->description = $this->short_text; } return true; } return false; }
echo $product->id; ?> /thumb/<?php echo isset($product->onePicture->picture) ? $product->onePicture->picture : ''; ?> )"></div> </div> <div class="jumbotron-contents"> <h4><?php echo $product->name; ?> </h4> <p class="product_description"> <?php echo YText::characterLimiter(strip_tags($product->description), 50); ?> </p> <div class="text-center"> <a class="btn btn-primary" href="<?php echo $product->getUrl(); ?> "> <?php echo Yii::t('site', 'Detail view'); ?> </a> </div> </div> </div>
<div class="col-md-24 col-xs-24 single_item " > <div class="col-md-4 col-sm-6 text-center"> <a class="story-img" href="#"><img src="<?php echo "/images/news/{$data->picture}"; ?> " class="img-responsive"></a> </div> <div class="col-md-20 col-sm-18"> <h3><?php echo $data->title; ?> </h3> <div class="row"> <div class="col-xs-24"> <p><?php echo YText::characterLimiter(strip_tags($data->text), 400); ?> </p> <p class="lead"> <a href="<?php echo $data->getUrl(); ?> " class="btn btn-primary"><?php echo Yii::t('site', 'Detail view'); ?> </a></p> <ul class="list-inline"><li><?php echo date('d/m/Y', $data->created_at); ?> </li></ul> </div> <div class="col-xs-6"></div>
echo $data->id; ?> /thumb/<?php echo isset($data->onePicture->picture) ? $data->onePicture->picture : ''; ?> )"></div> </div> <div class="col-md-16 col-sm-14"> <h3><?php echo $data->name; ?> </h3> <div class="row"> <div class="col-xs-24"> <p><?php echo YText::characterLimiter(strip_tags($data->description), 360); ?> </p> <p class="lead pull-right"> <a href="<?php echo $data->getUrl(); ?> " class="btn btn-primary"><?php echo Yii::t('site', 'Detail view'); ?> </a></p> </div> </div> </div> <div class="clearfix"></div> </div>
public function actionLogin() { $service = Yii::app()->request->getQuery('service'); if ($service !== null) { $authIdentity = Yii::app()->eauth->getIdentity($service); $authIdentity->redirectUrl = Yii::app()->user->returnUrl; $authIdentity->cancelUrl = $this->createAbsoluteUrl('/social/social/login'); // если авторизовались через сервис if ($authIdentity->authenticate()) { $identity = new ServiceUserIdentity($authIdentity); // successful authentication if ($identity->authenticate()) { //проверить нет ли уже этого пользователя $socialLogin = new SocialLoginIdentity(Yii::app()->user->getState('service'), Yii::app()->user->getState('sid')); if ($socialLogin->authenticate()) { $this->cleanState(); Yii::app()->user->login($socialLogin); Yii::app()->user->setFlash(YFlashMessages::NOTICE_MESSAGE, Yii::t('social', 'Вы успешно авторизовались!')); //редирект с закрытием окна $authIdentity->redirect(array(Yii::app()->getModule('user')->loginSuccess)); } else { // попробуем создать учетную запись, если такой ник уже есть - редирект на форму регистрации $nick_name = preg_replace('/[^A-Za-z0-9]/', '', YText::translit($authIdentity->getAttribute('nick'))); $user = User::model()->find('LOWER(nick_name) = :nick_name', array(':nick_name' => strtolower($nick_name))); if ($user) { Yii::app()->user->setFlash(YFlashMessages::NOTICE_MESSAGE, Yii::t('social', 'Пожалуйста, завершите регистрацию, имя пользователя "{nick_name}" к сожалению, уже занято...', array('{nick_name}' => $nick_name))); $this->redirect(array('/social/social/registration')); } //если пользователь уже авторизован - привязка к текущему аккаунту if (Yii::app()->user->isAuthenticated()) { //создадим запись в Login $login = new Login(); $login->setAttributes(array('user_id' => Yii::app()->user->getId(), 'identity_id' => Yii::app()->user->getState('sid'), 'type' => Yii::app()->user->getState('service'))); //@TODO как-то иначе обработать неудачу if (!$login->save()) { throw new CDbException(Yii::t('social', 'При создании учетной записи произошла ошибка!')); } Yii::app()->user->setFlash(YFlashMessages::NOTICE_MESSAGE, Yii::t('social', 'Аккаунт привязан!')); $authIdentity->redirect(array(Yii::app()->getModule('user')->loginSuccess)); } $transaction = Yii::app()->db->beginTransaction(); try { $email = $authIdentity->getAttribute('email'); $account = new User(); $account->createAccount($nick_name, $email, null, null, User::STATUS_ACTIVE, empty($email) ? User::EMAIL_CONFIRM_NO : User::EMAIL_CONFIRM_YES, $authIdentity->getAttribute('first_name'), $authIdentity->getAttribute('last_name')); if ($account && !$account->hasErrors()) { //создадим запись в Login $login = new Login(); $login->setAttributes(array('user_id' => $account->id, 'identity_id' => Yii::app()->user->getState('sid'), 'type' => Yii::app()->user->getState('service'))); if (!$login->save()) { throw new CDbException(Yii::t('social', 'При создании учетной записи произошла ошибка!')); } } $transaction->commit(); // авторизуем нового пользователя $socialLogin = new SocialLoginIdentity(Yii::app()->user->getState('service'), Yii::app()->user->getState('sid')); if ($socialLogin->authenticate()) { $this->cleanState(); Yii::app()->user->login($socialLogin); Yii::app()->user->setFlash(YFlashMessages::NOTICE_MESSAGE, Yii::t('social', 'Вы успешно авторизовались!')); $this->redirect(array(Yii::app()->getModule('user')->loginSuccess)); } else { Yii::app()->user->setFlash(YFlashMessages::ERROR_MESSAGE, Yii::t('social', 'Учетная запись создана, но не удалось авторизоваться!')); $this->cleanState(); $this->redirect(array('/user/account/login')); } } catch (Exception $e) { $transaction->rollback(); Yii::log(Yii::t('social', "При авторизации через {servive} произошла ошибка!", array('{servive}' => Yii::app()->user->getState('service'))), CLogger::LEVEL_ERROR); Yii::app()->user->setFlash(YFlashMessages::ERROR_MESSAGE, Yii::t('social', 'При создании учетной записи произошла ошибка {error}!', array('{error}' => $e->getMessage()))); $this->cleanState(); $this->redirect(array('/social/social/registration')); } } // special redirect with closing popup window $authIdentity->redirect(); } else { $authIdentity->cancel(); } // close popup window and redirect to cancelUrl } // Something went wrong, redirect to login page $this->redirect(array('/social/social/login')); } }
public function beforeValidate() { if (parent::beforeValidate()) { if ($this->scenario === 'update') { $this->slug = YText::translit($this->title); } else { if (!$this->slug) { $this->slug = YText::translit($this->title); } } return true; } return false; }