cache->getOrSet(CommentsConf::$keysCache, function () { return CommentsConf::find()->one(); }); } public function getPost() { $sql = $this->hasOne(\app\models\News::class,['id'=>'news_id'])->createCommand()->getRawSql(); return $this->hasOne(\app\models\News::class,['id'=>'news_id']); } public function getPublishedAt($simle = false){ if( $simle ) return date( "H:i:s d-m-Y", strtotime( $this->created_at ) ); if($this->created_atcreated_at))." ".mb_strtolower(Transliterator::month(date("n",strtotime($this->created_at)))); } else { $diff = ceil((time() - strtotime($this->created_at))/60); //В минутах if($diff<=60){ return Transliterator::plural($diff,['минуту','минуты', 'минут'],true,'только что','минуту')." назад"; } else { $diff = (int)floor($diff/60); return Transliterator::plural($diff,['час','часа', 'часов'],true,'только что','час')." назад"; } } } public function beforeSave($insert) { if( $insert ){ $this->merr = \app\models\CommentsFilter::test($this); if( $this->merr ) $this->visible = 'N'; } return true; } public function afterSave($insert, $changedAttributes) { parent::afterSave($insert, $changedAttributes); if( $insert ){ $news = \Yii::$app->db->createCommand('SELECT title FROM news WHERE id='.$this->news_id)->queryOne(); $ntitle = ''; if( $news && isset( $news['title'] ) ) $ntitle = $news['title']; $stat = ($this->visible == 'Y')?'green':'red'; $tstat = ($this->visible == 'Y')?'Показывается':'Спрятано'; $msg = "Fakename: ".$this->fakename."

Сообщение:
".$this->message."

IP: ".$this->ip_address."
HTTP_USER_AGENT: ".$this->user_agent ."
[".$this->created_at."]

" ."Статус:

".$tstat."(".$this->visible.")


" ."".$this->merr."
" .'
Новость: '.$ntitle.'/


' .'Cкрыть
' .'Показать
'; \Yii::$app->mailer->compose() ->setFrom(\Yii::$app->params['senderEmail']) ->setTo(\Yii::$app->params['moderatorEmail']) ->setSubject('Сообщение с сайта amic.ru') // ->setTextBody('Текст сообщения') ->setHtmlBody($msg) ->send(); } } public function getHash() { return md5($this->user_agent.'_'.$this->ip_address); } public function getAvatar() { $hash = $this->getHash(); $name = "avatar_{$hash}.png"; if( !file_exists( Yii::getAlias('@webroot').'/'.static::$story_dir."/$name" ) ){ file_put_contents( Yii::getAlias('@webroot').'/'.static::$story_dir."/$name", Avatar::get($hash, 48) ); } return "/".static::$story_dir."/$name"; } // Возможно будет лучше в кэше или БД public function isUserLike($cid) { $session = \Yii::$app->session; if ($session->has('likeed_'.$cid)){ return true; } return false; } public function setUserLike($nid, $cid) { $session = \Yii::$app->session; $session->set('likeed_'.$cid, $nid); $r = $session->get('likeedn_'.$nid); if( $r && is_array($r) ){ array_push($r, $cid); }else{ $r = [$cid]; } $session->set('likeedn_'.$nid, $r); } public function getUserLike($nid) { $session = \Yii::$app->session; return $session->get('likeedn_'.$nid); } public function getAuthor() { // здесь ещё если есть профиль добавить проверку if( trim( $this->fakename ) ){ return $this->fakename; } return "Гость"; } }