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; }
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)); } }
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; }
/** * @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); } }
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()]; }
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); } } }