public function init() { parent::init(); if ($this->user_id != null) { for ($i = 0; $i < 15; $i++) { $this->marks[$this->getPastDates($i)] = ($mrk = MarkIt::getAverageForDateAndUser($this->getPastDates($i), $this->user_id)) ? $mrk : 0; } } }
/** * Создаём оцениваемые действия */ public function actionMarkday() { if (Yii::$app->getRequest()->getQueryParam('acts') && Yii::$app->getRequest()->getQueryParam('user')) { //$this->layout = '@app/themes/markself/views/layouts/pagein'; $date = date("Y-m-d", time() - 60 * 60 * 24); if (MarkIt::find()->where(['date' => $date, 'user_id' => Yii::$app->getRequest()->getQueryParam('user')])->one()) { return "Вы уже оценили вчерашний день! До завтра!"; } $acts = Yii::$app->getRequest()->getQueryParam('acts'); $response = json_decode($acts, true); // преобразование строки в формате json в ассоциативный массив for ($i = 0; $i < 10; $i++) { if (isset($response[$i])) { $model = new MarkIt(); $model->ball = $response[$i]['mrk']; $model->action_id = $response[$i]['act']; $model->user_id = Yii::$app->getRequest()->getQueryParam('user'); $model->date = date('Y-m-d', time() - 60 * 60 * 24); if ($model->validate()) { try { if (!$model->save()) { return "ОШИБКА СОХРАНЕНИЯ ДАННЫХ!"; } } catch (\ErrorException $e) { return "Не получилось(((... " . $e->getMessage(); } } else { return "Ошибка при заполнении формы - оценки должны быть 1,2,3,4 или 5"; } } } $user_mod = MarkUser::findOne(Yii::$app->getRequest()->getQueryParam('user')); $average = MarkIt::getAverageForDateAndUser($date, Yii::$app->getRequest()->getQueryParam('user')); try { $deposite = (int) round(($average - 4) * 100); $user_mod->money += $deposite; $user_mod->update(false); } catch (\ErrorException $e) { return $e->getMessage() . " ошибка кошелька"; } try { $this->addRandActionToSomeUser($response, 8); } catch (\ErrorException $e) { return $e->getMessage() . "У друга 8"; } try { $this->addRandActionToSomeUser($response, 9); } catch (\ErrorException $e) { return $e->getMessage() . "У друга 9"; } return 1; //$date = Yii::$app->formatter->asDate(Yii::$app->getRequest()->getQueryParam('date'), "dd-mm-yyyy"); //return "Данные сохранены"; } else { return "Ошибка"; } }