[ 'class' => AccessControl::className(), 'only' => ['logout', 'signup'], 'rules' => [ [ 'actions' => ['signup'], 'allow' => true, 'roles' => ['?'], ], [ 'actions' => ['logout'], 'allow' => true, 'roles' => ['@'], ], ], ], 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'logout' => ['post'], ], ], ]; } public function beforeAction($action) { if (parent::beforeAction($action)) { if ($action->id == 'error') $this->layout = 'blank'; return true; } else { return false; } } /** * {@inheritdoc} */ public function actions() { return [ 'error' => [ 'class' => 'yii\web\ErrorAction', ], 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null, ], ]; } /*public function actionGreeting() { $this->layout = 'blank'; $response = $this->getGreeting(); //var_dump($response->id); //die(); if (is_object($response) && isset($response->img)) { $session = Yii::$app->session; if ((!isset($session['greeting']['img']) || !isset($session['greeting']['background']) || !isset($session['greeting']['description']) || !isset($session['greeting']['name']) || !isset($session['greeting']['color']) || !isset($session['greeting']['font_link']) || !isset($session['greeting']['font_css']) || !isset($session['greeting']['description2']) || !isset($session['greeting']['btn_status1']) ) || $session['greeting']['img'] != $response->img || $session['greeting']['background'] != $response->background || $session['greeting']['description'] != $response->description || $session['greeting']['name'] != $response->name || $session['greeting']['color'] != $response->color || $session['greeting']['font_link'] != $response->font_link || $session['greeting']['font_css'] != $response->font_css || $session['greeting']['description2'] != $response->description2 || $session['greeting']['btn_status1'] != $response->btn_status1 ) { $session['greeting'] = [ 'img' => $response->img, 'background' => $response->background, 'name' => $response->name, 'description' => $response->description, 'color' => $response->color, 'font_link' => $response->font_link, 'font_css' => $response->font_css, 'description2' => $response->description2, 'btn_status1' => $response->btn_status1, ]; } return $this->render('greeting'); } return $this->redirect(Yii::$app->homeUrl); } public function getGreeting() { $url = 'https://eofficeth.com/frontend/web/index.php?r=greeting/index'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); return json_decode($response); }*/ /** * Displays homepage. * * @return mixed */ public function actionIndex() { //$response = $this->getGreeting(); //var_dump($response->id); //die(); /* if (is_object($response) && isset($response->img)) { $session = Yii::$app->session; if (!isset($session['greeting'])) { $session['greeting'] = [ 'img' => $response->img, 'background' => $response->background, 'name' => $response->name, 'description' => $response->description, 'color' => $response->color, 'font_link' => $response->font_link, 'font_css' => $response->font_css, 'description2' => $response->description2, 'btn_status1' => $response->btn_status1, ]; return $this->redirect(['greeting']); } }*/ $model = new SearchForm(); if ($model->load(Yii::$app->request->get())) { } $dataProviderNews = new ActiveDataProvider([ 'query' => CmsPost::find()->where(['cms_category_id' => 1, 'status' => 1])->limit(6), 'sort' => [ 'defaultOrder' => [ 'publish_at' => SORT_DESC ] ], /* 'pagination' => [ 'pageSize' => 6, 'pageParam' => 'news' ]*/ 'pagination' => false, ]); $dataProviderActivity = new ActiveDataProvider([ 'query' => CmsPost::find()->where(['cms_category_id' => 2, 'status' => 1])->limit(6), 'sort' => [ 'defaultOrder' => [ 'publish_at' => SORT_DESC ] ], /* 'pagination' => [ 'pageSize' => 6, 'pageParam' => 'activity' ]*/ 'pagination' => false, ]); $dataProviderProcurement = new ActiveDataProvider([ 'query' => CmsPost::find()->where(['in', 'cms_category_id', [3, 4, 5]])->andWhere(['status' => 1])->limit(50), 'sort' => [ 'defaultOrder' => [ 'publish_at' => SORT_DESC ] ], /* 'pagination' => [ 'pageSize' => 50, 'pageParam' => 'procurement' ]*/ 'pagination' => false, ]); $dataProviderJob = new ActiveDataProvider([ 'query' => CmsPost::find()->where(['cms_category_id' => 6, 'status' => 1])->limit(50), 'sort' => [ 'defaultOrder' => [ 'publish_at' => SORT_DESC ] ], /* 'pagination' => [ 'pageSize' => 50, 'pageParam' => 'jobs' ]*/ 'pagination' => false, ]); $dataProviderPlace = null; $dataProviderProduct = null; ///dla /* $dataProviderDla = false; $context = stream_context_create(array('http' => array('header' => 'Accept: application/xml'))); $url = 'http://www.dla.go.th/servlet/RssServlet'; $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_ENCODING => 'UTF-8' ]); $data = curl_exec($curl); curl_close($curl); if ($data) { $xml = @simplexml_load_string($data); //echo '
'; //print_r($xml); //die(); $dla = json_encode($xml, JSON_UNESCAPED_UNICODE); $dla = json_decode($dla, true); //var_dump($dla['DOCUMENT']); //die(); $dataProviderDla = new ArrayDataProvider([ 'allModels' => $dla['DOCUMENT'], 'sort' => [ 'attributes' => [ 'DOCUMENT_TOPIC' => [ 'asc' => ['DOCUMENT_TOPIC' => SORT_ASC, 'DOCUMENT_TOPIC' => SORT_ASC], 'desc' => ['DOCUMENT_TOPIC' => SORT_DESC, 'DOCUMENT_TOPIC' => SORT_DESC], 'default' => SORT_ASC, ], 'ORG' => [ 'asc' => ['ORG' => SORT_ASC, 'ORG' => SORT_ASC], 'desc' => ['ORG' => SORT_DESC, 'ORG' => SORT_DESC], 'default' => SORT_ASC, ], 'DOCUMENT_NO' => [ 'asc' => ['DOCUMENT_NO' => SORT_ASC, 'DOCUMENT_NO' => SORT_ASC], 'desc' => ['DOCUMENT_NO' => SORT_DESC, 'DOCUMENT_NO' => SORT_DESC], 'default' => SORT_ASC, ], 'DOCUMENT_DATE' => [ 'asc' => ['DOCUMENT_DATE' => SORT_ASC, 'DOCUMENT_DATE' => SORT_ASC], 'desc' => ['DOCUMENT_DATE' => SORT_DESC, 'DOCUMENT_DATE' => SORT_DESC], 'default' => SORT_ASC, ], 'RECORD_DATE' => [ 'asc' => ['RECORD_DATE' => SORT_ASC, 'RECORD_DATE' => SORT_ASC], 'desc' => ['RECORD_DATE' => SORT_DESC, 'RECORD_DATE' => SORT_DESC], 'default' => SORT_DESC, ], ], 'defaultOrder' => [ 'RECORD_DATE' => SORT_DESC ] ], 'pagination' => [ 'pageSize' => 5, 'pageParam' => 'dla' ] ]); }//xml*/ return $this->render('index', [ 'model' => $model, 'dataProviderNews' => $dataProviderNews, 'dataProviderActivity' => $dataProviderActivity, 'dataProviderProcurement' => $dataProviderProcurement, 'dataProviderJob' => $dataProviderJob, 'dataProviderPlace' => $dataProviderPlace, 'dataProviderProduct' => $dataProviderProduct, ]); } public function actionSearch() { $search = new SearchForm(); $pageDataProvider = false; $postDataProvider = false; if ($search->load(Yii::$app->request->get())) { $pageDataProvider = new ActiveDataProvider([ 'query' => CmsPage::find()->filterWhere(['like', 'name', $search->q])->orFilterWhere(['like', 'description', $search->q]), 'sort' => [ 'defaultOrder' => [ 'id' => SORT_DESC ] ] ]); $postDataProvider = new ActiveDataProvider([ 'query' => CmsPost::find()->filterWhere(['like', 'name', $search->q])->orFilterWhere(['like', 'description', $search->q]), 'sort' => [ 'defaultOrder' => [ 'publish_at' => SORT_DESC ] ] ]); } return $this->render('search', [ 'search' => $search, 'pageDataProvider' => $pageDataProvider, 'postDataProvider' => $postDataProvider, ]); } /** * Logs in a user. * * @return mixed */ public function actionLogin() { if (!Yii::$app->user->isGuest) { return $this->goHome(); } $model = new LoginForm(); if ($model->load(Yii::$app->request->post()) && $model->login()) { return $this->goBack(); } else { $model->password = ''; return $this->render('login', [ 'model' => $model, ]); } } /** * Logs out the current user. * * @return mixed */ public function actionLogout() { Yii::$app->user->logout(); return $this->goHome(); } /** * Displays contact page. * * @return mixed */ public function actionContact() { $model = new ContactForm(); if ($model->load(Yii::$app->request->post()) && $model->validate()) { if ($model->sendEmail(Yii::$app->params['adminEmail'])) { Yii::$app->session->setFlash('success', 'Thank you for contacting us. We will respond to you as soon as possible.'); } else { Yii::$app->session->setFlash('error', 'There was an error sending your message.'); } return $this->refresh(); } else { return $this->render('contact', [ 'model' => $model, ]); } } /** * Displays about page. * * @return mixed */ public function actionAbout() { return $this->render('about'); } /** * Signs user up. * * @return mixed */ /* public function actionSignup() { $model = new SignupForm(); if ($model->load(Yii::$app->request->post()) && $model->signup()) { Yii::$app->session->setFlash('success', 'Thank you for registration. Please check your inbox for verification email.'); return $this->goHome(); } return $this->render('signup', [ 'model' => $model, ]); } */ /** * Requests password reset. * * @return mixed */ public function actionRequestPasswordReset() { $model = new PasswordResetRequestForm(); if ($model->load(Yii::$app->request->post()) && $model->validate()) { if ($model->sendEmail()) { Yii::$app->session->setFlash('success', 'Check your email for further instructions.'); return $this->goHome(); } else { Yii::$app->session->setFlash('error', 'Sorry, we are unable to reset password for the provided email address.'); } } return $this->render('requestPasswordResetToken', [ 'model' => $model, ]); } /** * Resets password. * * @param string $token * @return mixed * @throws BadRequestHttpException */ public function actionResetPassword($token) { try { $model = new ResetPasswordForm($token); } catch (InvalidArgumentException $e) { throw new BadRequestHttpException($e->getMessage()); } if ($model->load(Yii::$app->request->post()) && $model->validate() && $model->resetPassword()) { Yii::$app->session->setFlash('success', 'New password saved.'); return $this->goHome(); } return $this->render('resetPassword', [ 'model' => $model, ]); } /** * Verify email address * * @param string $token * @return Response * @throws BadRequestHttpException */ public function actionVerifyEmail($token) { try { $model = new VerifyEmailForm($token); } catch (InvalidArgumentException $e) { throw new BadRequestHttpException($e->getMessage()); } if ($user = $model->verifyEmail()) { if (Yii::$app->user->login($user)) { Yii::$app->session->setFlash('success', 'Your email has been confirmed!'); return $this->goHome(); } } Yii::$app->session->setFlash('error', 'Sorry, we are unable to verify your account with provided token.'); return $this->goHome(); } /** * Resend verification email * * @return mixed */ public function actionResendVerificationEmail() { $model = new ResendVerificationEmailForm(); if ($model->load(Yii::$app->request->post()) && $model->validate()) { if ($model->sendEmail()) { Yii::$app->session->setFlash('success', 'Check your email for further instructions.'); return $this->goHome(); } Yii::$app->session->setFlash('error', 'Sorry, we are unable to resend verification email for the provided email address.'); } return $this->render('resendVerificationEmail', [ 'model' => $model ]); } /** * @param null $start * @param null $end * @param null $_ * @return array */ public function actionJsoncalendar($start = NULL, $end = NULL, $_ = NULL) { Yii::$app->response->format = Response::FORMAT_JSON; $times = CmsPost::find()->all(); $events = []; foreach ($times as $time) { //Testing $Event = new Event(); $Event->id = $time->id; $Event->title = $time->name; $Event->start = date('Y-m-d\TH:i:s\Z', strtotime($time->publish_at)); //$Event->end = date('Y-m-d\TH:i:s\Z', strtotime($time->date_end . ' ' . $time->time_end)); $Event->allDay = true; $Event->url = Url::to(['post/view', 'id' => $time->id, true]); $events[] = $Event; } foreach (CmsEgp::find()->orderBy(['id' => SORT_DESC])->all() as $egp) { $Event = new Event(); $Event->id = $egp->id; $Event->title = $egp->name; $Event->start = date('Y-m-d\TH:i:s\Z', strtotime($egp->pub_date)); //$Event->end = date('Y-m-d\TH:i:s\Z', strtotime($time->date_end . ' ' . $time->time_end)); $Event->allDay = true; $Event->url = $egp->link; $events[] = $Event; } return $events; } public function actionEgp() { return $this->render('egp'); } /** * @return string */ public function actionFormService() { return $this->render('form-service'); } public function actionFormWebsite() { return $this->render('form-website'); } public function actionDesign() { return $this->render('design'); } }