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);
+
+}
+
+
?>