From ef279be1f45e60003c7fa3f7e2f6e3082506a8b5 Mon Sep 17 00:00:00 2001 From: atnartur Date: Fri, 28 Aug 2015 23:09:14 +0300 Subject: [PATCH 01/13] =?UTF-8?q?+=20API=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D1=81=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B1=D0=B0=D0=BD=D0=B5=D1=80=D0=B0?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=BC=D0=BE=D0=B1=D0=B8=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D0=BE=D0=B9=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/RotatorController.php | 60 +++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/app/controllers/RotatorController.php b/app/controllers/RotatorController.php index 1dee3a7..b963d0e 100644 --- a/app/controllers/RotatorController.php +++ b/app/controllers/RotatorController.php @@ -83,6 +83,66 @@ public function get_jsAction() { $this->response->setContentType('text/javascript'); $this->view->pick('rotator/js'); } + + + public function get_mobileAction(){ + $zone_id = $this->request->getQuery('zone_id', 'int'); + $key = $this->request->getQuery(sha1($_SERVER['HTTP_HOST']), 'string'); + + if(!$zone_id OR $key !== base64_encode(sha1(sha1($_SERVER['HTTP_HOST'])))){ + $this->response->setStatusCode(400, 'Bad request'); + return $this->response->send(); + } + + $banners = $this->modelsManager->createBuilder() + ->from(array('b'=>'App\Models\Banners')) + ->leftJoin('App\Models\Views', 'b.id = v.banner_id AND IF(b.start_date IS NULL, 1, IF(v.date >= b.start_date, 1, 0)) = 1 AND IF(b.end_date IS NULL, 1, IF(v.date < b.end_date, 1, 0)) = 1', 'v') + ->innerJoin('App\Models\BannersZones', 'b.id = bz.banner_id AND bz.zone_id = ' . $this->request->getQuery('zone_id', 'int'), 'bz') + ->andWhere('(end_date IS NULL OR end_date > ' . time() . ") AND (start_date IS NULL OR start_date <= " . time() . ") AND active = 1 AND archived = 0 AND type <> \"flash\" ") + ->groupBy('b.id') + ->having('max_impressions IS NULL OR COUNT(v.id) < max_impressions') + ->getQuery() + ->execute(); + + if(count($banners)) { + $existsNonzeroPriority = false; + + if($banner->priority != 0) + $existsNonzeroPriority = true; + + $segments = array(); + $end = 0; + foreach ($banners as $banner) { + $priority = $existsNonzeroPriority ? $banner->priority : 1; + $segments[] = ['banner'=>$banner, 'start'=>$end, 'end'=>$end + $priority]; + $end += $priority; + } + + + $rand = rand(0, $end * 100) / 100; + foreach($segments as $segment) { + if($segment['start'] <= $rand && $segment['end'] > $rand) { + $banner_selected = $segment['banner']; + break; + } + } + + if((isset($banner_selected) && empty($banner_selected->id)) || !isset($banner_selected)) return; + + $view = new Views(); + $view->save(array('date'=>time(), 'banner_id'=>$banner_selected->id, 'zone_id'=>$this->request->getQuery('zone_id', 'int'))); + $this->view->view = $view->id; + + if($banner_selected->type == "image") + $this->view->pick('rotator/image'); + else if($banner_selected->type == "html") { + $this->view->setRenderLevel(View::LEVEL_NO_RENDER); + echo $banner_selected->content; + return; + } + $this->view->banner = $banner_selected; + } else return; + } public function clickAction() { $id = $this->dispatcher->getParam('id'); From 6fd532857bd93a93f43ed4b8e5e05a67225509ff Mon Sep 17 00:00:00 2001 From: atnartur Date: Fri, 28 Aug 2015 23:15:30 +0300 Subject: [PATCH 02/13] =?UTF-8?q?+=20=D0=A4=D1=83=D0=BD=D0=BA=D1=86=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D1=81=D1=8B=D0=BB=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=B1=D0=B0=D0=BD=D0=BD=D0=B5=D1=80=D0=B0=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BC=D0=BE=D0=B1=D0=B8=D0=BB=D1=8C=D0=BD=D1=8B=D1=85?= =?UTF-8?q?=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/Zones.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/models/Zones.php b/app/models/Zones.php index 3b78532..eb7ea27 100644 --- a/app/models/Zones.php +++ b/app/models/Zones.php @@ -22,4 +22,8 @@ public function initialize() array('alias' => 'banners') ); } + + function get_mobile_link(){ + return 'http://' . $_SERVER['HTTP_HOST'] . '/rotator/get_mobile?zone_id=' . $this->id . '&' . sha1($_SERVER['HTTP_HOST']) . '=' . base64_encode(sha1(sha1($_SERVER['HTTP_HOST']))); + } } From 360c6fe644252cc6c014fbf36d78dbf4cb7377c3 Mon Sep 17 00:00:00 2001 From: atnartur Date: Fri, 28 Aug 2015 23:19:42 +0300 Subject: [PATCH 03/13] =?UTF-8?q?+=20=D0=92=D1=8B=D0=B2=D0=BE=D0=B4=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=B4=D0=B0=20=D0=B2=D1=81=D1=82=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=B1=D0=B0=D0=BD=D0=BD=D0=B5=D1=80=D0=B0=20=D0=B2=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B1=D0=B8=D0=BB=D1=8C=D0=BD=D1=8B=D0=B5=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D0=B5=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D1=81=D0=BC=D0=BE=D1=82=D1=80=D0=B0=20=D0=B7?= =?UTF-8?q?=D0=BE=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/admin/zones/index.phtml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/views/admin/zones/index.phtml b/app/views/admin/zones/index.phtml index 49db605..7f2ce7d 100644 --- a/app/views/admin/zones/index.phtml +++ b/app/views/admin/zones/index.phtml @@ -21,7 +21,8 @@ ID Имя - Код инициализации зоны + Код для сайта + Ссылка для запроса с мобильных приложений Действия @@ -31,7 +32,10 @@ id?> name?> - id}\">");?> + id}\">");?>"> + + + From 85e810c8b6fc5bcd53efba11df38d2bcecf1c6c2 Mon Sep 17 00:00:00 2001 From: atnartur Date: Fri, 28 Aug 2015 23:21:32 +0300 Subject: [PATCH 04/13] =?UTF-8?q?+=20=D0=A1=D0=BA=D1=80=D0=B8=D0=BF=D1=82?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=B0=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=BE=D0=B3=D0=BE=20=D0=B2?= =?UTF-8?q?=D1=8B=D0=B4=D0=B5=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D1=85=20=D0=B2=20=D0=BF=D0=BE=D0=BB=D1=8F?= =?UTF-8?q?=D1=85=20=D0=B2=D0=B2=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/Admin/ZonesController.php | 2 ++ public/js/zones.js | 5 +++++ 2 files changed, 7 insertions(+) create mode 100644 public/js/zones.js diff --git a/app/controllers/Admin/ZonesController.php b/app/controllers/Admin/ZonesController.php index 3a0825c..e3f0019 100644 --- a/app/controllers/Admin/ZonesController.php +++ b/app/controllers/Admin/ZonesController.php @@ -11,6 +11,8 @@ public function indexAction() { Tag::prependTitle('Зоны'); $this->view->title = "Зоны"; $this->view->zones = Zones::find(); + + $this->assets->collection('bottom-js')->addJs('js/zones.js'); } public function addAction() { diff --git a/public/js/zones.js b/public/js/zones.js new file mode 100644 index 0000000..9937bd7 --- /dev/null +++ b/public/js/zones.js @@ -0,0 +1,5 @@ +$(document).ready(function(){ + $(".self_selected").click(function(){ + $(this).select(); + }); +}); \ No newline at end of file From 1ae5b00e2b124dffc7c05f18a15e3cfcd31d21d7 Mon Sep 17 00:00:00 2001 From: atnartur Date: Fri, 28 Aug 2015 23:24:22 +0300 Subject: [PATCH 05/13] =?UTF-8?q?!=20=D0=A3=D0=B2=D0=B5=D0=BB=D0=B8=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=20=D1=80=D0=B0=D0=B7=D0=BC=D0=B5=D1=80=20=D0=B1?= =?UTF-8?q?=D0=BB=D0=BE=D0=BA=D0=B0=20=D1=81=D0=BE=20=D1=81=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=BA=D0=BE=D0=BC=20=D0=B7=D0=BE=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/admin/zones/index.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/zones/index.phtml b/app/views/admin/zones/index.phtml index 7f2ce7d..44b382d 100644 --- a/app/views/admin/zones/index.phtml +++ b/app/views/admin/zones/index.phtml @@ -5,7 +5,7 @@
-
+
Список
From 4d818f0e42a9cfbb05c9f5ed960fad21dd48a55f Mon Sep 17 00:00:00 2001 From: atnartur Date: Sat, 29 Aug 2015 00:14:45 +0300 Subject: [PATCH 06/13] =?UTF-8?q?-=20=D0=BF=D0=BE=D0=BA=D0=B0=D0=B7=20flas?= =?UTF-8?q?h=20=D0=B1=D0=B0=D0=BD=D0=BD=D0=B5=D1=80=D0=BE=D0=B2=20=D0=B2?= =?UTF-8?q?=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8=20=D1=80=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=D1=82=D0=BE=D1=80=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D0=BC?= =?UTF-8?q?=D0=BE=D0=B1=D0=B8=D0=BB=D1=8C=D0=BD=D1=8B=D1=85=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/RotatorController.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/controllers/RotatorController.php b/app/controllers/RotatorController.php index b963d0e..7bc995a 100644 --- a/app/controllers/RotatorController.php +++ b/app/controllers/RotatorController.php @@ -17,7 +17,7 @@ public function getAction() { $banners = $this->modelsManager->createBuilder() ->from(array('b'=>'App\Models\Banners')) ->innerJoin('App\Models\BannersZones', 'b.id = bz.banner_id AND bz.zone_id = ' . $this->request->getQuery('zone_id', 'int'), 'bz') - ->andWhere('(end_date IS NULL OR end_date > ' . time() . ") AND (start_date IS NULL OR start_date <= " . time() . ") AND active = 1 AND archived = 0") + ->andWhere('(end_date IS NULL OR end_date > ' . time() . ") AND (start_date IS NULL OR start_date <= " . time() . ") AND active = 1 AND archived = 0 AND type <> \"flash\"") ->groupBy('b.id') ->getQuery() ->execute(); @@ -68,8 +68,6 @@ public function getAction() { if($banner_selected->type == "image") $this->view->pick('rotator/image'); - elseif($banner_selected->type == "flash") - $this->view->pick('rotator/flash'); elseif($banner_selected->type == "html") { $this->view->setRenderLevel(View::LEVEL_NO_RENDER); echo $banner_selected->content; From a1656f145d050ff169474d5aa980e63e5cdf16c4 Mon Sep 17 00:00:00 2001 From: atnartur Date: Sun, 30 Aug 2015 15:20:49 +0300 Subject: [PATCH 07/13] =?UTF-8?q?!=20Flash=20=D0=B2=20rotator/get?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/RotatorController.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/controllers/RotatorController.php b/app/controllers/RotatorController.php index 7bc995a..d9e8b31 100644 --- a/app/controllers/RotatorController.php +++ b/app/controllers/RotatorController.php @@ -17,12 +17,12 @@ public function getAction() { $banners = $this->modelsManager->createBuilder() ->from(array('b'=>'App\Models\Banners')) ->innerJoin('App\Models\BannersZones', 'b.id = bz.banner_id AND bz.zone_id = ' . $this->request->getQuery('zone_id', 'int'), 'bz') - ->andWhere('(end_date IS NULL OR end_date > ' . time() . ") AND (start_date IS NULL OR start_date <= " . time() . ") AND active = 1 AND archived = 0 AND type <> \"flash\"") + ->andWhere('(end_date IS NULL OR end_date > ' . time() . ") AND (start_date IS NULL OR start_date <= " . time() . ") AND active = 1 AND archived = 0") ->groupBy('b.id') ->getQuery() ->execute(); + if(count($banners)) { - $existsNonzeroPriority = false; $banners = $banners->filter(function($banner) use (&$existsNonzeroPriority, $url) { @@ -68,6 +68,8 @@ public function getAction() { if($banner_selected->type == "image") $this->view->pick('rotator/image'); + elseif($banner_selected->type == "flash") + $this->view->pick('rotator/flash'); elseif($banner_selected->type == "html") { $this->view->setRenderLevel(View::LEVEL_NO_RENDER); echo $banner_selected->content; From baf5d185a2b632901cf00e9df7cc84640ede696a Mon Sep 17 00:00:00 2001 From: atnartur Date: Sun, 30 Aug 2015 15:37:37 +0300 Subject: [PATCH 08/13] =?UTF-8?q?+=20=D0=A1=D0=BE=D0=B2=D0=BC=D0=B5=D1=89?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20rotator/get=20=D0=B8=20rotator/get=5Fmobil?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/RotatorController.php | 72 +++++---------------------- app/models/Zones.php | 2 +- 2 files changed, 13 insertions(+), 61 deletions(-) diff --git a/app/controllers/RotatorController.php b/app/controllers/RotatorController.php index d9e8b31..ed879f7 100644 --- a/app/controllers/RotatorController.php +++ b/app/controllers/RotatorController.php @@ -14,11 +14,21 @@ protected function initialize() public function getAction() { $url = $this->request->getQuery('url'); + + if($this->request->has('type')) + $type = $this->requst->get('type'); + else + $type = 'standart'; + $banners = $this->modelsManager->createBuilder() ->from(array('b'=>'App\Models\Banners')) ->innerJoin('App\Models\BannersZones', 'b.id = bz.banner_id AND bz.zone_id = ' . $this->request->getQuery('zone_id', 'int'), 'bz') - ->andWhere('(end_date IS NULL OR end_date > ' . time() . ") AND (start_date IS NULL OR start_date <= " . time() . ") AND active = 1 AND archived = 0") - ->groupBy('b.id') + ->andWhere('(end_date IS NULL OR end_date > ' . time() . ") AND (start_date IS NULL OR start_date <= " . time() . ") AND active = 1 AND archived = 0"); + + if($type === 'mobile') + $banners->andWhere('type <> "flash"'); + + $banners->groupBy('b.id') ->getQuery() ->execute(); @@ -85,64 +95,6 @@ public function get_jsAction() { } - public function get_mobileAction(){ - $zone_id = $this->request->getQuery('zone_id', 'int'); - $key = $this->request->getQuery(sha1($_SERVER['HTTP_HOST']), 'string'); - - if(!$zone_id OR $key !== base64_encode(sha1(sha1($_SERVER['HTTP_HOST'])))){ - $this->response->setStatusCode(400, 'Bad request'); - return $this->response->send(); - } - - $banners = $this->modelsManager->createBuilder() - ->from(array('b'=>'App\Models\Banners')) - ->leftJoin('App\Models\Views', 'b.id = v.banner_id AND IF(b.start_date IS NULL, 1, IF(v.date >= b.start_date, 1, 0)) = 1 AND IF(b.end_date IS NULL, 1, IF(v.date < b.end_date, 1, 0)) = 1', 'v') - ->innerJoin('App\Models\BannersZones', 'b.id = bz.banner_id AND bz.zone_id = ' . $this->request->getQuery('zone_id', 'int'), 'bz') - ->andWhere('(end_date IS NULL OR end_date > ' . time() . ") AND (start_date IS NULL OR start_date <= " . time() . ") AND active = 1 AND archived = 0 AND type <> \"flash\" ") - ->groupBy('b.id') - ->having('max_impressions IS NULL OR COUNT(v.id) < max_impressions') - ->getQuery() - ->execute(); - - if(count($banners)) { - $existsNonzeroPriority = false; - - if($banner->priority != 0) - $existsNonzeroPriority = true; - - $segments = array(); - $end = 0; - foreach ($banners as $banner) { - $priority = $existsNonzeroPriority ? $banner->priority : 1; - $segments[] = ['banner'=>$banner, 'start'=>$end, 'end'=>$end + $priority]; - $end += $priority; - } - - - $rand = rand(0, $end * 100) / 100; - foreach($segments as $segment) { - if($segment['start'] <= $rand && $segment['end'] > $rand) { - $banner_selected = $segment['banner']; - break; - } - } - - if((isset($banner_selected) && empty($banner_selected->id)) || !isset($banner_selected)) return; - - $view = new Views(); - $view->save(array('date'=>time(), 'banner_id'=>$banner_selected->id, 'zone_id'=>$this->request->getQuery('zone_id', 'int'))); - $this->view->view = $view->id; - - if($banner_selected->type == "image") - $this->view->pick('rotator/image'); - else if($banner_selected->type == "html") { - $this->view->setRenderLevel(View::LEVEL_NO_RENDER); - echo $banner_selected->content; - return; - } - $this->view->banner = $banner_selected; - } else return; - } public function clickAction() { $id = $this->dispatcher->getParam('id'); diff --git a/app/models/Zones.php b/app/models/Zones.php index eb7ea27..6b72c57 100644 --- a/app/models/Zones.php +++ b/app/models/Zones.php @@ -24,6 +24,6 @@ public function initialize() } function get_mobile_link(){ - return 'http://' . $_SERVER['HTTP_HOST'] . '/rotator/get_mobile?zone_id=' . $this->id . '&' . sha1($_SERVER['HTTP_HOST']) . '=' . base64_encode(sha1(sha1($_SERVER['HTTP_HOST']))); + return 'http://' . $_SERVER['HTTP_HOST'] . '/rotator/get?type=mobile&zone_id=' . $this->id . '&' . sha1($_SERVER['HTTP_HOST']) . '=' . base64_encode(sha1(sha1($_SERVER['HTTP_HOST']))); } } From 2ec31ebaf23b401a2887aad8ddea7740efb30fb2 Mon Sep 17 00:00:00 2001 From: atnartur Date: Sun, 30 Aug 2015 15:40:18 +0300 Subject: [PATCH 09/13] =?UTF-8?q?=3D=20=D0=98=D0=B7=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=20=D1=88=D0=B8=D1=84=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BB=D1=8E=D1=87=D0=B0=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=BC=D0=BE=D0=B1=D0=B8=D0=BB=D1=8C=D0=BD=D1=8B?= =?UTF-8?q?=D1=85=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/Zones.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/Zones.php b/app/models/Zones.php index 6b72c57..d3f60b1 100644 --- a/app/models/Zones.php +++ b/app/models/Zones.php @@ -24,6 +24,6 @@ public function initialize() } function get_mobile_link(){ - return 'http://' . $_SERVER['HTTP_HOST'] . '/rotator/get?type=mobile&zone_id=' . $this->id . '&' . sha1($_SERVER['HTTP_HOST']) . '=' . base64_encode(sha1(sha1($_SERVER['HTTP_HOST']))); + return 'http://' . $_SERVER['HTTP_HOST'] . '/rotator/get?type=mobile&zone_id=' . $this->id . '&' . sha1($_SERVER['HTTP_HOST']) . '=' . base64_encode(sha1($this->getDI()->get('config')->crypt->key)); } } From a931bc7d64a47c8e48045cf5ebbbc23d37ba8b5e Mon Sep 17 00:00:00 2001 From: atnartur Date: Sun, 30 Aug 2015 15:54:33 +0300 Subject: [PATCH 10/13] =?UTF-8?q?!=20rotator/get=20=D0=BE=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D1=89=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=20=D0=BE=D0=B1?= =?UTF-8?q?=D1=8A=D0=B5=D0=BA=D1=82=D1=83=20SQL-=D0=B7=D0=B0=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/RotatorController.php | 10 ++++------ public/content/images/1_1424630652.png | Bin 0 -> 23802 bytes public/content/images/2.png | Bin 0 -> 11623 bytes 3 files changed, 4 insertions(+), 6 deletions(-) create mode 100644 public/content/images/1_1424630652.png create mode 100644 public/content/images/2.png diff --git a/app/controllers/RotatorController.php b/app/controllers/RotatorController.php index ed879f7..3efc725 100644 --- a/app/controllers/RotatorController.php +++ b/app/controllers/RotatorController.php @@ -16,19 +16,19 @@ public function getAction() { $url = $this->request->getQuery('url'); if($this->request->has('type')) - $type = $this->requst->get('type'); + $type = $this->request->get('type'); else $type = 'standart'; - $banners = $this->modelsManager->createBuilder() + $banners_sql = $this->modelsManager->createBuilder() ->from(array('b'=>'App\Models\Banners')) ->innerJoin('App\Models\BannersZones', 'b.id = bz.banner_id AND bz.zone_id = ' . $this->request->getQuery('zone_id', 'int'), 'bz') ->andWhere('(end_date IS NULL OR end_date > ' . time() . ") AND (start_date IS NULL OR start_date <= " . time() . ") AND active = 1 AND archived = 0"); if($type === 'mobile') - $banners->andWhere('type <> "flash"'); + $banners_sql->andWhere('type <> "flash"'); - $banners->groupBy('b.id') + $banners = $banners_sql->groupBy('b.id') ->getQuery() ->execute(); @@ -94,8 +94,6 @@ public function get_jsAction() { $this->view->pick('rotator/js'); } - - public function clickAction() { $id = $this->dispatcher->getParam('id'); $banner = Banners::findFirst(array('id = :id:', 'bind'=>array('id'=>$id))); diff --git a/public/content/images/1_1424630652.png b/public/content/images/1_1424630652.png new file mode 100644 index 0000000000000000000000000000000000000000..9d070fcc80fb9c04a8f3a978ee5e088d03ed2044 GIT binary patch literal 23802 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 XUWB8KJUUH=fj=XC6TMeDSMU4}B$7*m literal 0 HcmV?d00001 diff --git a/public/content/images/2.png b/public/content/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..60e7ecaaf0e4066f03817f97975fe0ace072fc49 GIT binary patch literal 11623 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 literal 0 HcmV?d00001 From 7c365d618df01f855674d10b14d7723c05d65a46 Mon Sep 17 00:00:00 2001 From: atnartur Date: Sun, 30 Aug 2015 15:57:51 +0300 Subject: [PATCH 11/13] + .gitignore public/content --- .gitignore | 3 ++- public/content/images/1_1424630652.png | Bin 23802 -> 0 bytes public/content/images/2.png | Bin 11623 -> 0 bytes 3 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 public/content/images/1_1424630652.png delete mode 100644 public/content/images/2.png diff --git a/.gitignore b/.gitignore index 6d16498..827c319 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /.idea/ -/app/config/config.ini \ No newline at end of file +/app/config/config.ini +public/content \ No newline at end of file diff --git a/public/content/images/1_1424630652.png b/public/content/images/1_1424630652.png deleted file mode 100644 index 9d070fcc80fb9c04a8f3a978ee5e088d03ed2044..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23802 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 XUWB8KJUUH=fj=XC6TMeDSMU4}B$7*m diff --git a/public/content/images/2.png b/public/content/images/2.png deleted file mode 100644 index 60e7ecaaf0e4066f03817f97975fe0ace072fc49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11623 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 From 857f748d356476e29a1512922475db61a7bc78ad Mon Sep 17 00:00:00 2001 From: atnartur Date: Sun, 30 Aug 2015 16:15:58 +0300 Subject: [PATCH 12/13] =?UTF-8?q?+=20=D0=97=D0=B0=D1=89=D0=B8=D1=82=D0=B0?= =?UTF-8?q?=20=D0=BC=D0=BE=D0=B1=D0=B8=D0=BB=D1=8C=D0=BD=D1=8B=D1=85=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D0=BE=D0=B2=20=D1=87=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=B7=20secret=20key?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/RotatorController.php | 8 ++++++++ app/models/Zones.php | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/controllers/RotatorController.php b/app/controllers/RotatorController.php index 3efc725..234da58 100644 --- a/app/controllers/RotatorController.php +++ b/app/controllers/RotatorController.php @@ -4,6 +4,7 @@ use App\Models\Banners; use App\Models\Views; +use App\Models\Zones; use Phalcon\Mvc\View; class RotatorController extends ControllerBase { @@ -19,6 +20,13 @@ public function getAction() { $type = $this->request->get('type'); else $type = 'standart'; + + if($type === 'mobile'){ + if(!$this->request->has(sha1($_SERVER['HTTP_HOST'])) OR $this->request->get(sha1($_SERVER['HTTP_HOST'])) !== Zones::mobile_secret_key()) { + $this->response->setStatusCode(400, 'Bad request'); + return $this->response->send(); + } + } $banners_sql = $this->modelsManager->createBuilder() ->from(array('b'=>'App\Models\Banners')) diff --git a/app/models/Zones.php b/app/models/Zones.php index d3f60b1..b636311 100644 --- a/app/models/Zones.php +++ b/app/models/Zones.php @@ -23,7 +23,11 @@ public function initialize() ); } + public static function mobile_secret_key(){ + return base64_encode(sha1(\Phalcon\DI::getDefault()->get('config')->crypt->key)); + } + function get_mobile_link(){ - return 'http://' . $_SERVER['HTTP_HOST'] . '/rotator/get?type=mobile&zone_id=' . $this->id . '&' . sha1($_SERVER['HTTP_HOST']) . '=' . base64_encode(sha1($this->getDI()->get('config')->crypt->key)); + return 'http://' . $_SERVER['HTTP_HOST'] . '/rotator/get?type=mobile&zone_id=' . $this->id . '&' . sha1($_SERVER['HTTP_HOST']) . '=' . $this->mobile_secret_key(); } } From 29d557388b7cb92aa7efee659bd5b6faf64dfc93 Mon Sep 17 00:00:00 2001 From: atnartur Date: Wed, 16 Sep 2015 21:22:05 +0300 Subject: [PATCH 13/13] =?UTF-8?q?-=20=D1=81=D0=B5=D0=BA=D1=80=D0=B5=D1=82?= =?UTF-8?q?=D0=BD=D1=8B=D0=B9=20=D0=BA=D0=BB=D1=8E=D1=87=20=D0=B2=20=D0=BC?= =?UTF-8?q?=D0=BE=D0=B1=D0=B8=D0=BB=D1=8C=D0=BD=D1=8B=D1=85=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D1=81=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/RotatorController.php | 7 ------- app/models/Zones.php | 6 +----- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/app/controllers/RotatorController.php b/app/controllers/RotatorController.php index 234da58..0ff0a08 100644 --- a/app/controllers/RotatorController.php +++ b/app/controllers/RotatorController.php @@ -20,13 +20,6 @@ public function getAction() { $type = $this->request->get('type'); else $type = 'standart'; - - if($type === 'mobile'){ - if(!$this->request->has(sha1($_SERVER['HTTP_HOST'])) OR $this->request->get(sha1($_SERVER['HTTP_HOST'])) !== Zones::mobile_secret_key()) { - $this->response->setStatusCode(400, 'Bad request'); - return $this->response->send(); - } - } $banners_sql = $this->modelsManager->createBuilder() ->from(array('b'=>'App\Models\Banners')) diff --git a/app/models/Zones.php b/app/models/Zones.php index b636311..e4cb90a 100644 --- a/app/models/Zones.php +++ b/app/models/Zones.php @@ -23,11 +23,7 @@ public function initialize() ); } - public static function mobile_secret_key(){ - return base64_encode(sha1(\Phalcon\DI::getDefault()->get('config')->crypt->key)); - } - function get_mobile_link(){ - return 'http://' . $_SERVER['HTTP_HOST'] . '/rotator/get?type=mobile&zone_id=' . $this->id . '&' . sha1($_SERVER['HTTP_HOST']) . '=' . $this->mobile_secret_key(); + return 'http://' . $_SERVER['HTTP_HOST'] . '/rotator/get?type=mobile&zone_id=' . $this->id; } }