|  |  |  | <?php
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * Created by Error202
 | 
					
						
							|  |  |  |  * Date: 22.08.2018
 | 
					
						
							|  |  |  |  */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace common\modules\banners\controllers;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | use common\modules\banners\entities\Banner;
 | 
					
						
							|  |  |  | use common\modules\banners\services\BannerManageService;
 | 
					
						
							|  |  |  | use frontend\components\FrontendController;
 | 
					
						
							|  |  |  | use yii\web\NotFoundHttpException;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class BannerController extends FrontendController
 | 
					
						
							|  |  |  | {
 | 
					
						
							|  |  |  |     private $_service;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function __construct(string $id, $module, BannerManageService $service, array $config = [])
 | 
					
						
							|  |  |  |     {
 | 
					
						
							|  |  |  |         parent::__construct($id, $module, $config);
 | 
					
						
							|  |  |  |         $this->_service = $service;
 | 
					
						
							|  |  |  |     }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function actionView()
 | 
					
						
							|  |  |  |     {
 | 
					
						
							|  |  |  |         $id = filter_input(INPUT_POST, 'id', FILTER_VALIDATE_INT);
 | 
					
						
							|  |  |  |         if (\Yii::$app->request->isAjax && $id) {
 | 
					
						
							|  |  |  |             $banner = $this->findModel($id);
 | 
					
						
							|  |  |  |             $this->_service->addView($banner);
 | 
					
						
							|  |  |  |         }
 | 
					
						
							|  |  |  |     }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function actionClick()
 | 
					
						
							|  |  |  |     {
 | 
					
						
							|  |  |  |         $id = filter_input(INPUT_POST, 'id', FILTER_VALIDATE_INT);
 | 
					
						
							|  |  |  |         if (\Yii::$app->request->isAjax && $id) {
 | 
					
						
							|  |  |  |             $banner = $this->findModel($id);
 | 
					
						
							|  |  |  |             $this->_service->addClick($banner);
 | 
					
						
							|  |  |  |         }
 | 
					
						
							|  |  |  |     }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     protected function findModel($id): Banner
 | 
					
						
							|  |  |  |     {
 | 
					
						
							|  |  |  |         if (($model = Banner::findOne($id)) !== null) {
 | 
					
						
							|  |  |  |             return $model;
 | 
					
						
							|  |  |  |         }
 | 
					
						
							|  |  |  |         throw new NotFoundHttpException('The requested banner does not exist.');
 | 
					
						
							|  |  |  |     }
 | 
					
						
							|  |  |  | }
 |