%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.248 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/egp/controllers/ |
Upload File : |
<?php namespace app\controllers; use Yii; use yii\helpers\Url; use app\models\TblEgp; use yii\data\ActiveDataProvider; use Zend\Feed\Writer\Feed; use app\models\TblEgpSearch; use app\models\TblCategory; class EgpController extends \yii\web\Controller { public function actionRss() { // $dataProvider = new ActiveDataProvider([ // 'query' => TblEgp::find(), // 'pagination' => [ // 'pageSize' => 20 // ], // ]); $searchModel = new TblEgpSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); $dataProvider->pagination = ['pageSize' => 20]; $dataProvider->sort = [ 'defaultOrder' => [ 'date' => SORT_DESC, ] ]; // $response = Yii::$app->getResponse(); // $headers = $response->getHeaders(); // $headers->set('Content-Type', 'application/rss+xml; charset=utf-8'); // \Yii::$app->response->getHeaders()->set('Content-Type', 'application/rss+xml'); // \Yii::$app->response->format = \yii\web\Response::FORMAT_XML; // \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; \Yii::$app->response->format = \yii\web\Response::FORMAT_RAW; // $headers = \Yii::$app->response->headers; // $headers->add('Content-Type', 'text/xml'); // $headers = \Yii::$app->response->headers; // $response = Yii::$app->getResponse(); // $headers = $response->getHeaders(); // $headers->add('Content-Type', 'application/rss+xml; charset=utf-8'); // \Yii::$app->response->getHeaders()->set('Content-Type', 'application/rss+xml; charset=utf-8'); $xml = \Zelenin\yii\extensions\Rss\RssView::widget([ 'dataProvider' => $dataProvider, 'channel' => [ 'title' => function ($widget, \Zelenin\Feed $feed) { return 'ระบบจัดซื้อจัดจ้างภาครัฐ'; }, 'description' => ' ', 'link' => Url::toRoute('/', true), ], 'items' => [ 'title' => function ($model, $widget, \Zelenin\Feed $feed) { return $model->egp_title; }, 'description' => function ($model, $widget, \Zelenin\Feed $feed) { $rows = TblCategory::find()->where(['cat_id' => $model->cat_id])->one(); return $rows->cat_name; }, 'link' => function ($model, $widget, \Zelenin\Feed $feed) { return $model->egp_detail; }, 'cat' => function ($model, $widget, \Zelenin\Feed $feed) { return $model->cat_id; }, 'pubDate' => function ($model, $widget, \Zelenin\Feed $feed) { return $model->date; }, ] ]); return $xml; } public function actionRssnew() { // $dataProvider = new ActiveDataProvider([ // 'query' => TblEgp::find(), // 'pagination' => [ // 'pageSize' => 20 // ], // ]); $searchModel = new TblEgpSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); $dataProvider->pagination = ['pageSize' => 100]; $dataProvider->sort = [ 'defaultOrder' => [ 'date' => SORT_DESC, ] ]; // $response = Yii::$app->getResponse(); // $headers = $response->getHeaders(); // $headers->set('Content-Type', 'application/rss+xml; charset=utf-8'); // \Yii::$app->response->getHeaders()->set('Content-Type', 'application/rss+xml'); // \Yii::$app->response->format = \yii\web\Response::FORMAT_XML; // \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; \Yii::$app->response->format = \yii\web\Response::FORMAT_RAW; // $headers = \Yii::$app->response->headers; // $headers->add('Content-Type', 'text/xml'); // $headers = \Yii::$app->response->headers; // $response = Yii::$app->getResponse(); // $headers = $response->getHeaders(); // $headers->add('Content-Type', 'application/rss+xml; charset=utf-8'); // \Yii::$app->response->getHeaders()->set('Content-Type', 'application/rss+xml; charset=utf-8'); $xml = \Zelenin\yii\extensions\Rss\RssView::widget([ 'dataProvider' => $dataProvider, 'channel' => [ 'title' => function ($widget, \Zelenin\Feed $feed) { return 'ระบบจัดซื้อจัดจ้างภาครัฐ'; }, 'description' => ' ', 'link' => Url::toRoute('/', true), ], 'items' => [ 'title' => function ($model, $widget, \Zelenin\Feed $feed) { return $model->egp_title; }, 'description' => function ($model, $widget, \Zelenin\Feed $feed) { $rows = TblCategory::find()->where(['cat_id' => $model->cat_id])->one(); return $rows->cat_name; }, 'link' => function ($model, $widget, \Zelenin\Feed $feed) { return $model->egp_detail; }, 'cat' => function ($model, $widget, \Zelenin\Feed $feed) { return $model->cat_id; }, 'pubDate' => function ($model, $widget, \Zelenin\Feed $feed) { //return $model->date; //return Yii::$app->formatter->asDateTime($model->date, 'php:D, j M Y G:i:s T'); return Yii::$app->formatter->asDateTime($model->date, 'php:D, d M Y H:i:s T'); }, ] ]); return $xml; } public function actionRsss() { $searchModel = new TblEgpSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); $dataProvider->pagination = ['pageSize' => 20]; $dataProvider->sort = [ 'defaultOrder' => [ 'date' => SORT_DESC, ] ]; // \Yii::$app->response->format = \yii\web\Response::FORMAT_RAW; // $headers = \Yii::$app->response->headers; // $headers->add('Content-Type', 'text/xml'); $feed = \Yii::$app->feed->writer(); $feed->setTitle(\Yii::$app->params['title']); $feed->setLink('http://example.com'); $feed->setFeedLink('http://example.com/rss', 'rss'); $feed->setDescription(Yii::t('app','Recent headlines')); $feed->setGenerator('http://example.com/rss'); $feed->setDateModified(time()); /** * Add one or more entries. Note that entries must * be manually added once created. */ $posts=Post::find()->orderBy('id DESC')->limit(20)->all(); foreach($posts as $post){ $entry = $feed->createEntry(); $entry->setTitle($post->title); $entry->setLink(Yii::$app->urlManager->createAbsoluteUrl('/post/view',['id'=>$post->id])); $entry->setDateModified(intval($post->created)); $entry->setDateCreated(intval($post->created)); $entry->setContent( $post->content ); $entry->setEnclosure( [ 'uri'=>$post->image, 'type'=>'image/jpeg', 'length'=>filesize(Yii::getAlias('@webroot').$post->image) ] ); $feed->addEntry($entry); } /** * Render the resulting feed to Atom 1.0 and assign to $out. * You can substitute "atom" with "rss" to generate an RSS 2.0 feed. */ $out = $feed->export('rss'); header('Content-type: text/xml'); echo $out; die(); } public function actionIndex($cat_id) { return $this->render('index', [ 'cat_id' => $cat_id, ]); } public function actionRss2() { return $this->render('rss2'); } public function actionRefresh() { $depid = "2650101"; $aType = array('P0', '15', 'B0', 'D0', 'W0', 'D1', 'W1', 'D2', 'W2'); $aCat = array(1, 2, 3, 4, 5, 6, 7, 8, 9); //รหัสหมวดหมู่ สำหรับแยกประเภทประกาศ anounceType date_default_timezone_set('Asia/Bangkok'); $begintime1 = strtotime("12:01:01"); $endtime1 = strtotime("12:59:00"); $begintime2 = strtotime("17:01:01"); $endtime2 = strtotime("24:00:00"); $begintime3 = strtotime("00:00:01"); $endtime3 = strtotime("08:59:59"); $now = time(); if (($now >= $begintime1 && $now <= $endtime1) || ($now >= $begintime2 && $now <= $endtime2) || ($now >= $begintime3 && $now <= $endtime3)) { $i = 0; foreach ($aType as $newsType) { $url = "http://process3.gprocurement.go.th/EPROCRssFeedWeb/egpannouncerss.xml?deptId=" . $depid . "&anounceType=" . $newsType; libxml_use_internal_errors(true); $doc = simplexml_load_string(file_get_contents($url)); if ($doc === false) { libxml_clear_errors(); libxml_use_internal_errors($doc); } else { $items = $doc->xpath("/rss/channel/item"); foreach ($items as $item) { //ตรวจสอบข่าวที่มีอยู่แล้ว $rows = TblEgp::find()->where(['egp_detail' => $item->link])->andWhere(['cat_id' => $aCat[$i]])->count(); if ($rows == 0) { $model = new TblEgp(); $model->egp_title = $item->title; $model->egp_detail = $item->link; $model->cat_id = $aCat[$i]; $model->date = $item->pubDate; $model->save(false); } } $i++; } } } return $this->render('/site/index'); } }