protected function loadEvent($id)
 {
     if (($model = Event::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
 /**
  * Finds the ReviewCategory model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param string $slug
  * @return ReviewCategory the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($slug)
 {
     if (($model = Event::findOne(['slug' => $slug])) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
 public function actionShifts($id = null)
 {
     if (!isset($id)) {
         $id = Yii::$app->params['currentEvent'];
     }
     $data = Participant::findUserEventDataByDay($id, Yii::$app->user->id);
     $events = Event::find()->where(['not', ['id' => $id]])->all();
     return $this->render('shifts', ['data' => $data, 'event' => Event::findOne($id), 'events' => $events]);
 }
 public function getModel()
 {
     $event = \Yii::$app->db->cache(function () {
         return Event::findOne($this->eventId);
     }, 20);
     $user = \Yii::$app->db->cache(function () {
         return User::findOne($this->userId);
     }, 20);
     return ['event' => $event, 'user' => $user];
 }
 public function getEvent()
 {
     if ($this->_event === false) {
         $this->_event = Event::findOne($this->event_id);
     }
     if ($this->_event === null) {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
     return $this->_event;
 }
Example #6
0
 protected function prepareSubscribeEvent()
 {
     /**
      * @var  $data \common\models\Wall\SubscribeEvent
      */
     $data = $this->model->getData();
     $event = \Yii::$app->db->cache(function () use($data) {
         return Event::findOne($data->eventId);
     }, 60);
     $user = \Yii::$app->db->cache(function () use($data) {
         return User::findOne($data->userId);
     }, 60);
     return array_merge($data->toArray(), ['event' => $event, 'user' => $user]);
 }
 public function actionSave($event_id, $user_id, $type)
 {
     if (!\Yii::$app->request->isAjax) {
         $this->redirect(['']);
     }
     if ($type == 'edit-description') {
         $Event = Event::findOne(['id' => $event_id, 'user_id' => $user_id]);
         if (!$Event) {
             throw new HttpException(403);
         }
         $Event->description = nl2br(trim(htmlspecialchars($_POST['description'])));
         $Event->save();
         return $this->renderJson(html_entity_decode($Event->description));
     }
 }
Example #8
0
 public function actionAlarm()
 {
     $id = Yii::$app->request->post('id');
     $msg = Yii::$app->request->post('msg');
     $event = Event::findOne($id);
     if ($event && !empty($msg)) {
         if (Alarm::addAlarm(Alarm::ENTITY_EVENT, $event->id, $msg)) {
             $resultMsg = Lang::t('main/dialogs', 'modalAlarm_msgAlarmResultTrue');
             Yii::$app->session->setFlash('success', Lang::t('main/dialogs', 'modalAlarm_msgAlarmResultTrue'));
         } else {
             $resultMsg = Lang::t('main/dialogs', 'modalAlarm_msgAlarmResultFalse');
             Yii::$app->session->setFlash('success', Lang::t('main/dialogs', 'modalAlarm_msgAlarmResultFalse'));
         }
         return json_encode(['msg' => $resultMsg]);
     }
     return "";
 }
 public function copyToEvent($event_id)
 {
     $old_event = $this->event;
     $new_event = Event::findOne($event_id);
     $time_diff = $new_event->start - $old_event->start - floor(($new_event->start - $old_event->start) / (60 * 60 * 24));
     $new_team = new Team();
     $new_team->attributes = $this->attributes;
     $new_team->name = "Copy of " . $this->name;
     $new_team->event_id = $event_id;
     $new_team->save();
     //Copy shifts
     $old_shifts = $this->shifts;
     foreach ($old_shifts as $old_shift) {
         $new_shift = new Shift();
         $new_shift->attributes = $old_shift->attributes;
         $new_shift->team_id = $new_team->id;
         $new_shift->start_time += $time_diff;
         $new_shift->save();
     }
     return $new_team->id;
 }
Example #10
0
 /**
  * @param $event_id
  *       Уведомлеие всех подписчиков мероприятия по емайл при отмеченной галке "Оповестить всех подписчиков" при
  *       отправке коммента
  * @todo это наверное лучше перенести именно в метод добавления коммента? В модель создания комментария, в
  *       afterInsert
  */
 public static function commenatAllNotification($event_id, $message)
 {
     $Subscribers = EventSubscriber::find()->with('user')->where(['event_id' => $event_id])->all();
     $Event = Event::findOne(['id' => $event_id]);
     foreach ($Subscribers as $User) {
         $messages[] = \Yii::$app->mailer->compose('message-all-notify', ['msg' => htmlspecialchars($message), 'notifier' => \Yii::$app->user->identity])->setFrom('*****@*****.**')->setTo($User->user->email)->setSubject('Оповещение от владельца мероприятия "' . $Event->name . '"');
     }
     if (isset($messages) && !empty($messages)) {
         \Yii::$app->mailer->sendMultiple($messages);
     }
 }
Example #11
0
 public static function addVote($entity, $id, $voteAdd)
 {
     $user = User::thisUser();
     $vote = Vote::findOne(['entity' => $entity, 'entity_id' => $id, 'user_id' => $user->id]);
     if (empty($vote)) {
         $vote = new Vote();
         $vote->entity = $entity;
         $vote->entity_id = $id;
         $vote->user_id = $user->id;
     }
     /** @var VoteModel $model */
     $model = null;
     if ($entity == self::ENTITY_ITEM) {
         $model = Item::findOne($id);
         if ($user->reputation < Item::MIN_REPUTATION_ITEM_VOTE) {
             // Если только пользователь не отменяет свои дизлайки
             if (!($vote->vote == self::VOTE_DOWN && $voteAdd == self::VOTE_DOWN)) {
                 return ['vote' => 0, 'count' => $model->getVoteCount(), 'error' => Lang::t('ajax', 'noReputationVote')];
             }
         }
     } else {
         if ($entity == self::ENTITY_EVENT) {
             $model = Event::findOne($id);
             if ($user->reputation < Event::MIN_REPUTATION_EVENT_VOTE) {
                 // Если только пользователь не отменяет свои дизлайки
                 if (!($vote->vote == self::VOTE_DOWN && $voteAdd == self::VOTE_DOWN)) {
                     return ['vote' => 0, 'count' => $model->getVoteCount(), 'error' => Lang::t('ajax', 'noReputationVote')];
                 }
             }
         } else {
             if ($entity == self::ENTITY_SCHOOL) {
                 $model = School::findOne($id);
                 if ($user->reputation < School::MIN_REPUTATION_SCHOOL_VOTE) {
                     // Если только пользователь не отменяет свои дизлайки
                     if (!($vote->vote == self::VOTE_DOWN && $voteAdd == self::VOTE_DOWN)) {
                         return ['vote' => 0, 'count' => $model->getVoteCount(), 'error' => Lang::t('ajax', 'noReputationVote')];
                     }
                 }
             } else {
                 if ($entity == self::ENTITY_COMMENT) {
                     $model = Comment::findOne($id);
                     if ($user->reputation < Comment::MIN_REPUTATION_COMMENT_VOTE) {
                         // Если только пользователь не отменяет свои дизлайки
                         if (!($vote->vote == self::VOTE_DOWN && $voteAdd == self::VOTE_DOWN)) {
                             return ['vote' => 0, 'count' => $model->getVoteCount(), 'error' => Lang::t('ajax', 'noReputationVote')];
                         }
                     }
                 }
             }
         }
     }
     if (!empty($model)) {
         if ($vote->vote == self::VOTE_UP) {
             if ($voteAdd == self::VOTE_UP) {
                 // убираем up
                 $vote->vote = self::VOTE_NONE;
                 $model->addVote(-1);
                 $model->addReputation(VoteModel::ADD_REPUTATION_CANCEL_UP);
             } else {
                 // ставим down
                 $vote->vote = self::VOTE_DOWN;
                 $model->addVote(-2);
                 $model->addReputation(VoteModel::ADD_REPUTATION_CANCEL_UP);
                 $model->addReputation(VoteModel::ADD_REPUTATION_DOWN);
             }
         } elseif ($vote->vote == self::VOTE_DOWN) {
             if ($voteAdd == self::VOTE_UP) {
                 // ставим up
                 $vote->vote = self::VOTE_UP;
                 $model->addVote(2);
                 $model->addReputation(VoteModel::ADD_REPUTATION_CANCEL_DOWN);
                 $model->addReputation(VoteModel::ADD_REPUTATION_UP);
             } else {
                 // убираем down
                 $vote->vote = self::VOTE_NONE;
                 $model->addVote(1);
                 $model->addReputation(VoteModel::ADD_REPUTATION_CANCEL_DOWN);
             }
         } else {
             if ($voteAdd == self::VOTE_UP) {
                 // ставим up
                 $vote->vote = self::VOTE_UP;
                 $model->addVote(1);
                 $model->addReputation(VoteModel::ADD_REPUTATION_UP);
             } else {
                 // ставим down
                 $vote->vote = self::VOTE_DOWN;
                 $model->addVote(-1);
                 $model->addReputation(VoteModel::ADD_REPUTATION_DOWN);
             }
         }
     }
     if ($vote->save()) {
         if (!empty($model)) {
             $model->save();
         }
     }
     return ['vote' => $vote->vote, 'count' => $model->getVoteCount()];
 }
Example #12
0
 public function actionView($id)
 {
     $model = Event::findOne(['id' => $id]);
     return $this->render('view', ['model' => $model]);
 }
 public static function EventActionPublish($event)
 {
     //echo get_class($event->sender) . ' is inserted';
     \yii::trace('event handler publish function :' . __METHOD__, 'event');
     $data = array();
     $modelClass = get_class($event->sender);
     $event->sender->refresh();
     $data_attribute = $event->sender->getAttributes();
     $data_toarray = $event->sender->toArray();
     $data = self::ToArrayAttributeDataMerger($data_toarray, $data_attribute);
     $id = $data['Id'];
     //echo "<pre>";
     //print_r($event);
     //var_dump($data);
     //die;
     // \yii::trace('in event Publish:'.__METHOD__,'event');
     // \Yii::trace(print_r($data_attribute,true),__METHOD__);
     // \Yii::trace(print_r($data_toarray,true),__METHOD__);
     //\Yii::trace(print_r($data,true),__METHOD__);
     // \yii::trace('before event publish try: event .................'.$modelClass);
     //\Yii::trace(print_r($event->sender->media,true),__METHOD__);
     if (self::checkPublishStatus($modelClass)) {
         try {
             \yii::trace('in event publish try: event ' . $modelClass);
             switch ($modelClass) {
                 case "common\\models\\Restaurant":
                     $id = $data['Id'];
                     $establishmentWrite = new EstablishmentWrite();
                     // \Yii::trace(count($venueWrite->getVenue($id)),__METHOD__);
                     if (count($establishmentWrite->getWriteEstablishment($data['Id'])) == 0) {
                         //\yii::trace('in event publish switch: insert ');
                         $result = $establishmentWrite->saveEstablishment($data, 'INSERT');
                     } else {
                         //\yii::trace('in event publish switch: update ');
                         $result = $establishmentWrite->saveEstablishment($data, 'UPDATE', "est_id={$id}");
                     }
                     if (count($data['media']['images'][0]) > 0) {
                         $establishmentWrite->assetSave($data['media']['images'][0], $data['Id'], 'est');
                     } else {
                         // deleting images
                         $establishmentWrite->changeOldStatus($id, 'est');
                     }
                     if (count($data['media']['menus'][0]) > 0) {
                         $establishmentWrite->assetSave($data['media']['menus'][0], $data['Id'], 'menu');
                     } else {
                         // deleting images
                         $establishmentWrite->changeOldStatus($id, 'menu');
                     }
                     if (count($data['media']['video'][0]) > 0) {
                         $establishmentWrite->assetVideoSave($data['media']['video'][0], $data['Id'], 0);
                     } else {
                         // deleting videos
                         $establishmentWrite->changeOldStatusVideo($data['Id'], 0);
                     }
                     if (count($data['media']['logo'][0]) > 0) {
                         $establishmentWrite->assetSave($data['media']['menus'][0], $data['Id'], 'estlogo');
                     } else {
                         // deleting images
                         $establishmentWrite->changeOldStatus($data['Id'], 'estlogo');
                     }
                     break;
                 case 'common\\models\\Venue':
                     // \yii::trace('in event publish switch: event ');
                     $venueWrite = new VenueWrite();
                     // \Yii::trace(count($venueWrite->getVenue($id)),__METHOD__);
                     if (count($venueWrite->getVenue($id)) == 0) {
                         //\yii::trace('in event publish switch: insert ');
                         $result = $venueWrite->saveVenue($data, 'INSERT');
                     } else {
                         //\yii::trace('in event publish switch: update ');
                         $result = $venueWrite->saveVenue($data, 'UPDATE', "id={$id}");
                     }
                     if (count($data['media']['images'][0]) > 0) {
                         $venueWrite->assetSave($data['media']['images'][0], $id, 'venue');
                     } else {
                         // deleting images
                         $venueWrite->changeOldStatus($id, 'venue');
                     }
                     break;
                 case "common\\models\\EventSave":
                     $data_toarray = EventBase::findOne($id)->toArray();
                     $data = self::ToArrayAttributeDataMerger($data_toarray, $data_attribute);
                     // \yii::trace('in event image final');
                     // \Yii::trace(print_r($data,true),__METHOD__);
                     $eventWrite = new EventWrite();
                     if (count($eventWrite->getEvent($id)) == 0) {
                         //\yii::trace('in event pub : insert ');
                         $result = $eventWrite->saveEvent($data, 'INSERT');
                     } else {
                         //\yii::trace('in event pub : update ');
                         $result = $eventWrite->saveEvent($data, 'UPDATE', "dde_id={$id}");
                     }
                     if (count($data['media']['images'][0]) > 0) {
                         //\yii::trace('in event images : update ');
                         $eventWrite->assetSave($data['media']['images'][0], $data['Id'], 'eventl');
                     } else {
                         // deleting images
                         $eventWrite->changeOldStatus($data['Id'], 'eventl');
                     }
                     if (count($data['venues']) > 0) {
                         for ($i = 0; $i < count($data['venues']); $i++) {
                             $eventVenueMap = new EventWrite();
                             $result = $eventVenueMap->saveEventMapping($data['venues'][$i], $data['Id'], $i);
                         }
                     }
                     //var_dump($result);
                     break;
                 case "common\\models\\Event":
                     $eventWrite = new EventWrite();
                     if (count($eventWrite->getEvent($id)) == 0) {
                         //\yii::trace('in event pub : insert ');
                         $result = $eventWrite->saveEvent($data, 'INSERT');
                     } else {
                         //\yii::trace('in event pub : update ');
                         $result = $eventWrite->saveEvent($data, 'UPDATE', "dde_id={$id}");
                     }
                     if (count($data['media']['images'][0]) > 0) {
                         //\yii::trace('in event images : update ');
                         $eventWrite->assetSave($data['media']['images'][0], $data['Id'], 'eventl');
                     } else {
                         // deleting images
                         $eventWrite->changeOldStatus($data['Id'], 'eventl');
                     }
                     if (count($data['venues']) > 0) {
                         for ($i = 0; $i < count($data['venues']); $i++) {
                             $eventVenueMap = new EventWrite();
                             $result = $eventVenueMap->saveEventMapping($data['venues'][$i], $data['Id'], $i);
                         }
                     }
                     //var_dump($result);
                     break;
                 case "common\\models\\Movie":
                     $movieWrite = new MovieWrite();
                     if (count($movieWrite->getMovie($id)) == 0) {
                         //\yii::trace('in movie pub : insert ');
                         $result = $movieWrite->saveMovie($data, 'INSERT');
                     } else {
                         //\yii::trace('in movie pub : update ');
                         $result = $movieWrite->saveMovie($data, 'UPDATE', "iMovieId={$id}");
                     }
                     if (count($data['media']['images'][0]) > 0) {
                         $movieWrite->assetSave($data['media']['images'][0], $id, 'movie');
                     } else {
                         // deleting images
                         $movieWrite->changeOldStatus($data['Id'], 'movie');
                     }
                     if (count($data['media']['video'][0]) > 0) {
                         $movieWrite->assetVideoSave($data['media']['video'][0], $id, 4);
                     } else {
                         // deleting videos
                         $movieWrite->changeOldStatusVideo($data['Id'], 4);
                     }
                     break;
                 case "common\\models\\Theatre":
                     $theatreWrite = new TheatreWrite();
                     if (count($theatreWrite->getTheatre($id)) == 0) {
                         \yii::trace('in theater pub : insert ');
                         $result = $theatreWrite->saveTheatre($data, 'INSERT');
                     } else {
                         \yii::trace('in theater pub : insert ');
                         $result = $theatreWrite->saveTheatre($data, 'UPDATE', "iTheaterId={$id}");
                     }
                     break;
                 case "common\\models\\MovieTheaterMap":
                     $movieTheaterMap = new MovieWrite();
                     if (count($movieTheaterMap->getMovieTheaterSchedule($data['movieId'], $data['theaterId'])) == 0) {
                         $result = $movieTheaterMap->saveMovieShowTimings($data, 'INSERT');
                     } else {
                         $dataMap = $movieTheaterMap->getMovieTheaterSchedule($data['movieId'], $data['theaterId']);
                         $theaterMapId = $dataMap[0]['iMtmId'];
                         $result = $movieTheaterMap->saveMovieShowTimings($data, 'UPDATE', "iMtmId={$theaterMapId}");
                     }
                     break;
                 default:
             }
         } catch (\Exception $e) {
             $message = 'Error in publish Flow ' . $modelClass . ' ' . $data['Id'] . ' ' . $e->getMessage() . ' ' . $e->getFile() . ' ' . $e->getLine();
             $lockText = date('Y-m-d H:i:s') . ' - ' . $message . "\n";
             Yii::error($lockText, 'writemodel');
             //self::WriteModelErrorLogging($message);
         }
     }
 }