From fed9ec18574e8b21df6deb23d6f074f837121c84 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Tue, 31 May 2016 18:17:31 +0300 Subject: [PATCH] image size --- .htaccess | 68 ++++++++++++++++++++++++++++++++++---------------------------------- backend/config/main.php | 4 ++-- common/behaviors/ArtBoxAccessBehavior.php | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ common/components/Mailer.php | 47 ----------------------------------------------- common/widgets/Mailer.php | 47 +++++++++++++++++++++++++++++++++++++++++++++++ composer.json | 1 - frontend/controllers/BasketController.php | 35 +++++++++++++++++++++-------------- frontend/views/basket/success.php | 24 ++++++++++++++++++++++++ frontend/views/layouts/main.php | 10 ++++++++++ frontend/web/css/style.dev.css | 7 +++++-- 10 files changed, 254 insertions(+), 100 deletions(-) create mode 100755 common/behaviors/ArtBoxAccessBehavior.php delete mode 100755 common/components/Mailer.php create mode 100755 common/widgets/Mailer.php diff --git a/.htaccess b/.htaccess index e0d7e7b..95e7327 100644 --- a/.htaccess +++ b/.htaccess @@ -81,21 +81,21 @@ AddDefaultCharset utf-8 # кеширование в браузере на стороне пользователя - -ExpiresActive On -ExpiresDefault "access 7 days" -ExpiresByType application/javascript "access plus 1 year" -ExpiresByType text/javascript "access plus 1 year" -ExpiresByType text/css "access plus 1 year" -ExpiresByType text/html "access plus 7 day" -ExpiresByType text/x-javascript "access 1 year" -ExpiresByType image/gif "access plus 1 year" -ExpiresByType image/jpeg "access plus 1 year" -ExpiresByType image/png "access plus 1 year" -ExpiresByType image/jpg "access plus 1 year" -ExpiresByType image/x-icon "access 1 year" -ExpiresByType application/x-shockwave-flash "access 1 year" - +# +#ExpiresActive On +#ExpiresDefault "access 7 days" +#ExpiresByType application/javascript "access plus 1 year" +#ExpiresByType text/javascript "access plus 1 year" +#ExpiresByType text/css "access plus 1 year" +#ExpiresByType text/html "access plus 7 day" +#ExpiresByType text/x-javascript "access 1 year" +#ExpiresByType image/gif "access plus 1 year" +#ExpiresByType image/jpeg "access plus 1 year" +#ExpiresByType image/png "access plus 1 year" +#ExpiresByType image/jpg "access plus 1 year" +#ExpiresByType image/x-icon "access 1 year" +#ExpiresByType application/x-shockwave-flash "access 1 year" +# AddOutputFilterByType DEFLATE text/plain @@ -117,25 +117,25 @@ RewriteCond %{HTTP:Accept-encoding} gzip RewriteCond %{REQUEST_FILENAME}.gz -f RewriteRule ^(.*)$ $1.gz [QSA,L] -# Cache-Control - -# 30 дней - -Header set Cache-Control "max-age=2592000, public" - -# 30 дней - -Header set Cache-Control "max-age=2592000, public" - -# 2 дня - -Header set Cache-Control "max-age=172800, public, must-revalidate" - -# 1 день - -Header set Cache-Control "max-age=172800, private, must-revalidate" - - +## Cache-Control +# +## 30 дней +# +#Header set Cache-Control "max-age=2592000, public" +# +## 30 дней +# +#Header set Cache-Control "max-age=2592000, public" +# +## 2 дня +# +#Header set Cache-Control "max-age=172800, public, must-revalidate" +# +## 1 день +# +#Header set Cache-Control "max-age=172800, private, must-revalidate" +# +# #Запрет отдачи HTTP-заголовков Vary браузерам семейства MSIE diff --git a/backend/config/main.php b/backend/config/main.php index 4d84835..02cad86 100755 --- a/backend/config/main.php +++ b/backend/config/main.php @@ -1,5 +1,5 @@ 'backend\controllers', 'bootstrap' => ['log'], 'as AccessBehavior' => [ - 'class' => AccessBehavior::className(), + 'class' => ArtBoxAccessBehavior::className(), 'rules' => [ 'permit/access' => diff --git a/common/behaviors/ArtBoxAccessBehavior.php b/common/behaviors/ArtBoxAccessBehavior.php new file mode 100755 index 0000000..44645f0 --- /dev/null +++ b/common/behaviors/ArtBoxAccessBehavior.php @@ -0,0 +1,111 @@ + 'interception', + ]; + } + + public function interception($event) + { + if(!isset( Yii::$app->i18n->translations['db_rbac'])){ + Yii::$app->i18n->translations['db_rbac'] = [ + 'class' => 'yii\i18n\PhpMessageSource', + 'sourceLanguage' => 'ru-Ru', + 'basePath' => '@developeruz/db_rbac/messages', + ]; + } + + $route = Yii::$app->getRequest()->resolve(); + + //Проверяем права по конфигу + $this->createRule(); + $user = Instance::ensure(Yii::$app->user, User::className()); + $request = Yii::$app->getRequest(); + $action = $event->action; + + + + + if(!$this->cheсkByRule($action, $user, $request)) + { + + //И по AuthManager + if(!$this->checkPermission($route)){ + if ($user->getIsGuest()) { + $user->loginRequired(); + } else { + throw new ForbiddenHttpException(Yii::t('db_rbac','Недостаточно прав')); + } + } + + } + } + + protected function createRule() + { + + foreach($this->rules as $controller => $rule) + { + + foreach ($rule as $singleRule) { + if (is_array($singleRule)) { + $option = [ + 'controllers' => [$controller], + 'class' => 'yii\filters\AccessRule' + ]; + $this->_rules[] = Yii::createObject(array_merge($option, $singleRule)); + + } + } + } + } + + protected function cheсkByRule($action, $user, $request) + { + + foreach ($this->_rules as $rule) { + + if ($rule->allows($action, $user, $request)) + return true; + } + return false; + } + + protected function checkPermission($route) + { + //$route[0] - is the route, $route[1] - is the associated parameters + + $routePathTmp = explode('/', $route[0]); + $routeVariant = array_shift($routePathTmp); + if(Yii::$app->user->can($routeVariant, $route[1])) + return true; + + foreach($routePathTmp as $routePart) + { + $routeVariant .= '/'.$routePart; + + if(Yii::$app->user->can($routeVariant, $route[1])) + return true; + } + + return false; + } + +} \ No newline at end of file diff --git a/common/components/Mailer.php b/common/components/Mailer.php deleted file mode 100755 index ff7a327..0000000 --- a/common/components/Mailer.php +++ /dev/null @@ -1,47 +0,0 @@ -IsSMTP(); - - $mail->CharSet = 'UTF-8'; - $mail->Username = "dockdep@gmail.com"; - $mail->Password = "k0l0b04eg"; - $mail->SetFrom('dockdep@gmail.com'); - $mail->Subject = $this->subject; - $mail->MsgHTML('test'); - $address = "dockdep@gmail.com"; - $mail->AddAddress($address); - $mail->AddAddress($this->email); - if(!$mail->send()) { - - \Yii::$app->getSession()->setFlash('error', 'Mailer Error: ' . $mail->ErrorInfo); - return 'Mailer Error: ' . $mail->ErrorInfo; - } else { - - \Yii::$app->getSession()->setFlash('success', 'Мастер-приемщик свяжется с вами в ближайшее время'); - return 'Message has been sent'; - } - } - -} - diff --git a/common/widgets/Mailer.php b/common/widgets/Mailer.php new file mode 100755 index 0000000..1c7abe5 --- /dev/null +++ b/common/widgets/Mailer.php @@ -0,0 +1,47 @@ +IsSMTP(); +// +// $mail->CharSet = 'UTF-8'; +// $mail->Username = "dockdep@gmail.com"; +// $mail->Password = "k0l0b04eg@"; +// $mail->SetFrom('dockdep@gmail.com'); +// $mail->Subject = $this->subject; +// $mail->MsgHTML('test'); +// $address = "dockdep@gmail.com"; +// $mail->AddAddress($address); +// $mail->AddAddress($this->email); +// if(!$mail->send()) { +// +// \Yii::$app->getSession()->setFlash('error', 'Mailer Error: ' . $mail->ErrorInfo); +// return 'Mailer Error: ' . $mail->ErrorInfo; +// } else { +// +// \Yii::$app->getSession()->setFlash('success', 'Мастер-приемщик свяжется с вами в ближайшее время'); +// return 'Message has been sent'; +// } + } + +} + diff --git a/composer.json b/composer.json index 18d45ec..2f74ae4 100755 --- a/composer.json +++ b/composer.json @@ -35,7 +35,6 @@ "unclead/yii2-multiple-input": "~1.0", "codeception/codeception":"*", "phpmailer/phpmailer": "^5.2", - "league/oauth2-client": "^1.3", "kartik-v/yii2-grid": "@dev", "kartik-v/yii2-mpdf": "@dev", "kartik-v/yii2-widget-fileinput": "@dev", diff --git a/frontend/controllers/BasketController.php b/frontend/controllers/BasketController.php index c55b906..e34f3cf 100755 --- a/frontend/controllers/BasketController.php +++ b/frontend/controllers/BasketController.php @@ -40,29 +40,36 @@ class BasketController extends Controller $body .= "\n\r"; if ($modelOrder->load(Yii::$app->request->post()) && $modelOrder->save()) { + $productV = $_POST['ProductVariant']; + foreach ($_POST['ProductVariant'] as $index=>$row) { - $modelOrdersProducts = new OrdersProducts(); + $modelOrdersProducts = new OrdersProducts(); $mod_id = $row['id']; unset($row['id']); - $data['OrdersProducts'] = $row; + $data['OrdersProducts'] = $row; $data['OrdersProducts']['mod_id'] = $mod_id; - $data['OrdersProducts']['order_id'] = $modelOrder->id; + $data['OrdersProducts']['order_id'] = $modelOrder->id; - $modelOrdersProducts->load($data); - $modelOrdersProducts->save(); + $modelOrdersProducts->load($data); + $modelOrdersProducts->save(); } if(!Yii::$app->user->id && !empty($modelOrder->email)){ - $modelUser = new Customer(); - $modelUser->role = 'person'; - $modelUser->username = $modelOrder->email; - $modelUser->name = $modelOrder->name; - $modelUser->phone = $modelOrder->phone; - $modelUser->password = Yii::$app->getSecurity()->generateRandomString(10); - $modelUser->group_id = 2; - $modelUser->save(); + $modelUser = new Customer(); + $modelUser->role = 'person'; + $modelUser->username = $modelOrder->email; + $modelUser->name = $modelOrder->name; + $modelUser->phone = $modelOrder->phone; + $modelUser->password = Yii::$app->getSecurity()->generateRandomString(10); + $modelUser->group_id = 2; + $modelUser->save(); } + $order = clone $modelOrder; $modelOrder->clearBasket(); - return Yii::$app->response->redirect(['basket/success']); + + return $this->render('success',[ + 'order' => $order, + 'variants' => $productV, + ]); } } diff --git a/frontend/views/basket/success.php b/frontend/views/basket/success.php index 133cba8..08cfdea 100755 --- a/frontend/views/basket/success.php +++ b/frontend/views/basket/success.php @@ -1,6 +1,7 @@ title = 'Корзина'; $this->registerMetaTag(['name' => 'description', 'content' => 'Корзина']); $this->registerMetaTag(['name' => 'keywords', 'content' => 'Корзина']); +if(isset($variants) && isset($order)){ + $orderData = " + ga('require', 'ecommerce'); + ga('ecommerce:addTransaction', { + 'id': $order->id, // где ID - транзакции, обязательно + });"; + + foreach($variants as $index=>$row){ + $orderData .= " + ga('ecommerce:addItem', { + 'id': {$row['id']}, // ID - транзакции, обязательно + 'name': {$row['name']}, // Имя товара + 'price': {$row['price']}, // Цена товара + 'quantity': {$row['count']} // Количество + }); + ga('ecommerce:send');"; + } + + $this->registerJs ($orderData, View::POS_HEAD); + +} + + ?>