From 447777f9651d908a22131752b5cb66bb138ddbe6 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 30 Dec 2016 15:15:31 +0200 Subject: [PATCH] popup handler --- src/app/frontend/controllers/MenuController.php | 26 ++++++++++++++++++++++++++ src/app/frontend/views/sendmail/message_10.phtml | 261 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/models.php | 19 +++++++++++++++++++ src/lib/models/subscribe.php | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/sendmail.php | 11 +++++++++++ www/index.php | 10 ++++++++++ 6 files changed, 490 insertions(+), 0 deletions(-) create mode 100644 src/app/frontend/views/sendmail/message_10.phtml create mode 100644 src/lib/models/subscribe.php diff --git a/src/app/frontend/controllers/MenuController.php b/src/app/frontend/controllers/MenuController.php index fb9d2b4..1f9ffe8 100644 --- a/src/app/frontend/controllers/MenuController.php +++ b/src/app/frontend/controllers/MenuController.php @@ -1249,4 +1249,30 @@ class MenuController extends \controllers\ControllerBase } /////////////////////////////////////////////////////////////////////////// + + public function popupAction() { + + if( $this->request->isPost() ) + { + $data['name'] = $this->request->getPost('name', 'string', NULL ); + $email = $this->request->getPost('email', 'string', NULL ); + $data['email'] = filter_var( $email, FILTER_VALIDATE_EMAIL ); + + if( !empty( $name ) && !empty( $email ) ) + { + if( $this->models->getSubscribe()->addData($data) ) + { + $this->sendmail->addCustomer( 10, $data ); + + setcookie("popup", '1', time()+3600); + + return $this->response->redirect([ 'for' => 'homepage', 'language' => $this->lang_name ]); + } + } + } + + $this->view->setVars([ + 'no_robots' => 1 + ]); + } } \ No newline at end of file diff --git a/src/app/frontend/views/sendmail/message_10.phtml b/src/app/frontend/views/sendmail/message_10.phtml new file mode 100644 index 0000000..642dad3 --- /dev/null +++ b/src/app/frontend/views/sendmail/message_10.phtml @@ -0,0 +1,261 @@ + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + + + +
Заманчивые предложенияЗагрузить картинки
+
+ + + + + + + + +
+ + + + + + + +
+ + + + + + + +
Обратная связь
Видеообзоры
+
+
+ + + + + + + +
О КОМПАНИИ + ДОСТАВКА И ОПЛАТААКЦИИСОВЕТЫ ПРОФЕССИОНАЛОВ
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+ Семена
овощей
+
+ Семена
цветов
+
+ Удобрения
и средства
защиты
+
+ Газонные
травы
+
+ Саженцы + + Товары
для сада
и огорода
+
+ Зоотовары + + Био-препараты +
+
+ + + + + + + + + +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Благодарим за подписку!

+ Спасибо, что Вы выбираете ТМ «Професійне насіння». Как и обещали, мы дарим Вам промокод на единоразовое использование скидки при покупке товаров на нашем сайте. А также Вы получите бонус из 14 статей с практическими советами о выращивании овощей и цветов.

+
+ Ваш персональный промокод со скидкой -7% на покупку товаров в мини-упаковке:
+
+ + +
9672076
+


+ Ваш персональный промокод со скидкой -3% на покупку товаров в профессиональной упаковке:
+
+ + +
1045969
+

Обратите внимание! Для того чтобы воспользоваться промокодом, необходимо зарегистрироваться на нашем сайте. После этого выберите товары, которые желаете приобрести и, при оформлении заказа, введите промокод в соответствующее поле «Промокод», нажмите кнопку «Применить». Скидка на Ваш заказ применится автоматически.

+
+ Удачных покупок и хорошего урожая!

+
+
+ + + + +
+
+
+ + + + + + +
+ + + + +
+ + + + + + +
+ + + + + + + +
semena.in.ua
Адрес центрального офиса:
+ Киев, ул. Садовая, 95
+
+ + + + + + +
+
+ + + + +
+ + + + + + +
+
+
+
+
+ +
+ + \ No newline at end of file diff --git a/src/lib/models.php b/src/lib/models.php index 441171a..37328e2 100644 --- a/src/lib/models.php +++ b/src/lib/models.php @@ -586,6 +586,25 @@ namespace return $this->_discount; } + /** + * models::getSubscribe + * + * @author Alex Savenko + * @version 0.1.20140507 + * + * @return \models\subscribe + */ + public function getSubscribe() + { + if( empty($this->_subscribe) ) + { + $this->_subscribe = new \models\subscribe(); + $this->_subscribe->setDi( $this->getDi() ); + } + + return $this->_subscribe; + } + public function getPayment() { if( empty($this->_payment) ) diff --git a/src/lib/models/subscribe.php b/src/lib/models/subscribe.php new file mode 100644 index 0000000..1883b71 --- /dev/null +++ b/src/lib/models/subscribe.php @@ -0,0 +1,163 @@ +get( + ' + SELECT subscribe.* FROM + public.subscribe + ORDER BY + date ASC + ' + , + [ + ], + -1 + ); + } + + public function getOneData($id) + { + return $this->get( + ' + SELECT * + FROM public.subscribe + WHERE + id = :id + ', + [ + 'id' => $id + ], + -1 + ); + } + + public function getOneDataByEmail($email) + { + + return $this->get( + ' + SELECT * FROM + public.subscribe + WHERE + name = :name + ', + [ + 'email' => $email + ], + -1 + ); + } + + public function deleteData($id){ + return $this->exec( + ' DELETE + FROM + public.subscribe + WHERE + id = :id + ', + [ + 'id' => $id + ] + ); + } + + public function addData($data) + { + + return $this->get( + ' + INSERT INTO + public.subscribe + ( + name, + email, + date + + ) + VALUES + ( + :name, + :email, + CURRENT_TIMESTAMP + ) + RETURNING id + ', + [ + 'name' => $data['name'], + 'email' => $data['email'] + ], + -1 + ); + } + + public function updateData($data,$id) + { + + return $this->exec( + ' + UPDATE + public.subscribe + SET + name = :name, + email = :email + greeting = :greeting + WHERE + id = :id + ', + [ + 'name' => $data['name'], + 'email' => $data['email'], + 'greeting' => $data['greeting'], + 'id' => $id + ] + ); + } + + public function updateGreetingStatus($id) + { + + return $this->exec( + ' + UPDATE + public.subscribe + SET + greeting = 1 + WHERE + id = :id + ', + [ + 'id' => $id + ] + ); + } + + public function countData( ) + { + return $this->get( + ' + SELECT + COUNT(id) AS total + FROM + public.subscribe + ', + [ + + ], + -1 + ); + } +} \ No newline at end of file diff --git a/src/lib/sendmail.php b/src/lib/sendmail.php index 6c7ff42..01d1377 100644 --- a/src/lib/sendmail.php +++ b/src/lib/sendmail.php @@ -135,6 +135,17 @@ namespace ]; break; + case 10: //popup + + $data_base = + [ + 'email_to' => $data['email'], + 'email_reply' => $data['name'].' <'.$data['email'].'>', + 'subject' => 'Благодарим за подписку на сайте: '.\config::get( 'global#title' ), + 'message_body' => $view->getContent() + ]; + + break; default: return false; diff --git a/www/index.php b/www/index.php index ad6a34b..5170d6d 100644 --- a/www/index.php +++ b/www/index.php @@ -831,6 +831,16 @@ try ->setName( 'get_offices' ); $router->add + ( + '/popup{language:([/][a-z]{2})?}', + [ + 'controller' => 'menu', + 'action' => 'popup', + ] + ) + ->setName( 'callback' ); + + $router->add ( '/ajax/get_items{language:([/][a-z]{2})?}', [ -- libgit2 0.21.4