Commit c6435b1f47b7f1177f6ff271a61ed810eff61ab0
1 parent
e590d126
image size
Showing
3 changed files
with
1 additions
and
315 deletions
Show diff stats
.htaccess
| ... | ... | @@ -97,8 +97,6 @@ ExpiresByType image/x-icon "access 1 year" |
| 97 | 97 | ExpiresByType application/x-shockwave-flash "access 1 year" |
| 98 | 98 | </IfModule> |
| 99 | 99 | |
| 100 | - | |
| 101 | -# кеширование в браузере на стороне пользователя | |
| 102 | 100 | <IfModule mod_deflate.c> |
| 103 | 101 | AddOutputFilterByType DEFLATE text/plain |
| 104 | 102 | AddOutputFilterByType DEFLATE text/html | ... | ... |
common/models/Orders.php
| ... | ... | @@ -17,8 +17,7 @@ class Orders extends \yii\db\ActiveRecord |
| 17 | 17 | { |
| 18 | 18 | return [ |
| 19 | 19 | [['name', 'phone'], 'required','whenClient' => true], |
| 20 | - //['email', 'email'], | |
| 21 | - [['total','body','email','phone2','delivery','payment'], 'safe'], | |
| 20 | + [['total','body','email','phone2','delivery','payment','adress','city'], 'safe'], | |
| 22 | 21 | [['email'],'email'], |
| 23 | 22 | ]; |
| 24 | 23 | } | ... | ... |
frontend/controllers/OrdersController.php deleted
| 1 | -<?php | |
| 2 | - | |
| 3 | -namespace frontend\controllers; | |
| 4 | - | |
| 5 | -use common\models\Customer; | |
| 6 | -use common\models\OrderItems; | |
| 7 | -use common\models\Orders; | |
| 8 | -use common\modules\product\models\ProductVariant; | |
| 9 | -use common\widgets\BasketModal; | |
| 10 | -use Yii; | |
| 11 | - | |
| 12 | -use yii\web\Controller; | |
| 13 | -use yii\web\NotFoundHttpException; | |
| 14 | -use yii\data\ArrayDataProvider; | |
| 15 | -/** | |
| 16 | - * OrderController implements the CRUD actions for Order model. | |
| 17 | - */ | |
| 18 | -class OrdersController extends Controller | |
| 19 | -{ | |
| 20 | - | |
| 21 | - | |
| 22 | - /** | |
| 23 | - * @inheritdoc | |
| 24 | - */ | |
| 25 | - public function beforeAction($action) | |
| 26 | - { | |
| 27 | - if ($action->id == 'buy-items' || $action->id == 'delete') { | |
| 28 | - Yii::$app->controller->enableCsrfValidation = false; | |
| 29 | - } | |
| 30 | - | |
| 31 | - return true; | |
| 32 | - } | |
| 33 | - | |
| 34 | - public function actionFirst(){ | |
| 35 | - | |
| 36 | - $array = Yii::$app->session->get('order'); | |
| 37 | - | |
| 38 | - if(isset($array['order_id']) ) { | |
| 39 | - $model = Orders::findOne($array['order_id']); | |
| 40 | - }else { | |
| 41 | - $model = new Orders(); | |
| 42 | - } | |
| 43 | - | |
| 44 | - | |
| 45 | - if(Yii::$app->request->post() && $model->load(Yii::$app->request->post())){ | |
| 46 | - | |
| 47 | - if($model->save()){ | |
| 48 | - | |
| 49 | - $array['order_id'] = $model->order_id; | |
| 50 | - | |
| 51 | - Yii::$app->session->set('order', $array ); | |
| 52 | - | |
| 53 | - return $this->redirect(['orders/second']); | |
| 54 | - } | |
| 55 | - | |
| 56 | - } else { | |
| 57 | - if (!Yii::$app->user->isGuest) { | |
| 58 | - $customer = Yii::$app->user->identity; | |
| 59 | - $model->name = $customer->name; | |
| 60 | - $model->email = $customer->email; | |
| 61 | - $model->phone = $customer->phone; | |
| 62 | - } | |
| 63 | - } | |
| 64 | - | |
| 65 | - | |
| 66 | - return $this->render('basket-step-01',[ | |
| 67 | - 'model' => $model | |
| 68 | - ]); | |
| 69 | - } | |
| 70 | - | |
| 71 | - public function actionSecond(){ | |
| 72 | - | |
| 73 | - $sessionData = \Yii::$app->session->get('order'); | |
| 74 | - | |
| 75 | - $order_id = $sessionData['order_id']; | |
| 76 | - | |
| 77 | - if(!empty($order_id)){ | |
| 78 | - $order_model = Orders::findOne($order_id); | |
| 79 | - } else{ | |
| 80 | - $order_model = new Orders; | |
| 81 | - } | |
| 82 | - | |
| 83 | - unset($sessionData['order_id']); | |
| 84 | - | |
| 85 | - $variant = ProductVariant::find()->where(['product_variant_id'=>array_keys($sessionData)])->indexBy('product_variant_id')->all(); | |
| 86 | - | |
| 87 | - | |
| 88 | - if(Yii::$app->request->post()){ | |
| 89 | - | |
| 90 | - foreach ($sessionData as $k => $item) { | |
| 91 | - $itemModel = OrderItems::find()->where(['order_id'=>$order_id, 'item_id'=> $variant[$k]->product_variant_id])->one(); | |
| 92 | - if($itemModel instanceof OrderItems){ | |
| 93 | - $itemModel->order_id = $order_id; | |
| 94 | - $itemModel->item_id = $variant[$k]->product_variant_id; | |
| 95 | - $itemModel->item_count = $sessionData[$k]['num']; | |
| 96 | - $itemModel->price = $variant[$k]->price; | |
| 97 | - $itemModel->save(); | |
| 98 | - } else { | |
| 99 | - $itemModel = new OrderItems(); | |
| 100 | - $itemModel->order_id = $order_id; | |
| 101 | - $itemModel->item_id = $variant[$k]->product_variant_id; | |
| 102 | - $itemModel->item_count = $sessionData[$k]['num']; | |
| 103 | - $itemModel->price = $variant[$k]->price; | |
| 104 | - $itemModel->save(); | |
| 105 | - } | |
| 106 | - | |
| 107 | - } | |
| 108 | - Yii::$app->session->set('order', [] ); | |
| 109 | - return $this->redirect(['orders/third']); | |
| 110 | - | |
| 111 | - } else { | |
| 112 | - | |
| 113 | - $price = 0; | |
| 114 | - | |
| 115 | - $count = count($sessionData); | |
| 116 | - | |
| 117 | - foreach ($sessionData as $k => $item) { | |
| 118 | - $sessionData[$k]['item'] = $variant[$k]; | |
| 119 | - $price += $variant[$k]->price * $sessionData[$k]['num']; | |
| 120 | - } | |
| 121 | - | |
| 122 | - } | |
| 123 | - | |
| 124 | - return $this->render('basket-step-02',[ | |
| 125 | - 'items'=>$sessionData, | |
| 126 | - 'count' => $count, | |
| 127 | - 'price' => $price, | |
| 128 | - 'order_id' => $order_id, | |
| 129 | - 'order_model' => $order_model, | |
| 130 | - ]); | |
| 131 | - | |
| 132 | - } | |
| 133 | - | |
| 134 | - public function actionThird(){ | |
| 135 | - return $this->render('basket-step-03'); | |
| 136 | - } | |
| 137 | - | |
| 138 | - | |
| 139 | -// /** | |
| 140 | -// * Lists all Order models. | |
| 141 | -// * @return mixed | |
| 142 | -// */ | |
| 143 | -// public function actionIndex() | |
| 144 | -// { | |
| 145 | -// | |
| 146 | -// if (Yii::$app->request->post()) { | |
| 147 | -// $item = $items_id = array(); | |
| 148 | -// | |
| 149 | -// $i = 0; | |
| 150 | -// $order = Yii::$app->request->post(); | |
| 151 | -// | |
| 152 | -// $orderData['Order'] = $order['OrderForm']; | |
| 153 | -// | |
| 154 | -// foreach($order['OrderForm']['one_item'] as $k => $v ){ | |
| 155 | -// $item[$k]['num'] = $v['num']; | |
| 156 | -// $items_id[] = $k; | |
| 157 | -// $i++; | |
| 158 | -// } | |
| 159 | -// | |
| 160 | -// $items = Items::find()->where(['id'=>$items_id])->all(); | |
| 161 | -// | |
| 162 | -// | |
| 163 | -// $orderModel = new Order(); | |
| 164 | -// $orderModel->load($orderData); | |
| 165 | -// $orderModel->save(); | |
| 166 | -// | |
| 167 | -// | |
| 168 | -// foreach($items as $one_item){ | |
| 169 | -// $ItemOrderModel = new ItemOrder(); | |
| 170 | -// $ItemOrderModel->order_id = $orderModel->id; | |
| 171 | -// $ItemOrderModel->num = $item[$one_item->id]['num']; | |
| 172 | -// $ItemOrderModel->item_id = $one_item->id; | |
| 173 | -// $ItemOrderModel->price = $one_item->price * $item[$one_item->id]['num']; | |
| 174 | -// $ItemOrderModel->item_name = $one_item->name; | |
| 175 | -// $ItemOrderModel->save(); | |
| 176 | -// } | |
| 177 | -// Yii::$app->session->set('order', [] ); | |
| 178 | -// return $this->redirect(['order/complete']); | |
| 179 | -// } | |
| 180 | -// $total_price = 0; | |
| 181 | -// | |
| 182 | -// $items_id = []; | |
| 183 | -// | |
| 184 | -// $orders = Yii::$app->session->get('order'); | |
| 185 | -// | |
| 186 | -// if(!empty($orders)){ | |
| 187 | -// foreach($orders as $k => $v) { | |
| 188 | -// $items_id[] = $k; | |
| 189 | -// } | |
| 190 | -// } | |
| 191 | -// | |
| 192 | -// | |
| 193 | -// $items = Items::find()->where(['id'=>$items_id])->all(); | |
| 194 | -// | |
| 195 | -// foreach($items as $item) { | |
| 196 | -// $total_price += $orders[$item['id']]['num'] * $item['price']; | |
| 197 | -// } | |
| 198 | -// | |
| 199 | -// | |
| 200 | -// $dataProvider = new ArrayDataProvider([ | |
| 201 | -// 'allModels' => $items | |
| 202 | -// ]); | |
| 203 | -// | |
| 204 | -// return $this->render('index', [ | |
| 205 | -// 'dataProvider' => $dataProvider, | |
| 206 | -// 'total_price'=> $total_price, | |
| 207 | -// 'model' => new OrderForm() | |
| 208 | -// ]); | |
| 209 | -// } | |
| 210 | - | |
| 211 | - | |
| 212 | - public function actionComplete() | |
| 213 | - { | |
| 214 | - return $this->render('complete', [ | |
| 215 | - ]); | |
| 216 | - } | |
| 217 | - | |
| 218 | - public function actionBuyItems(){ | |
| 219 | - $data = Yii::$app->request->post(); | |
| 220 | - $sessionData = Yii::$app->session->get('order'); | |
| 221 | - if(isset($sessionData) && !array_search($data['id'],Yii::$app->session->get('order')) ){ | |
| 222 | - $array = Yii::$app->session->get('order'); | |
| 223 | - $array[$data['id']] = $data; | |
| 224 | - Yii::$app->session->set('order', $array ); | |
| 225 | - } else { | |
| 226 | - $array[$data['id']] = $data; | |
| 227 | - Yii::$app->session->set('order', $array ); | |
| 228 | - } | |
| 229 | - echo BasketModal::widget([]); | |
| 230 | - | |
| 231 | - } | |
| 232 | - /** | |
| 233 | - * Displays a single Order model. | |
| 234 | - * @param integer $id | |
| 235 | - * @return mixed | |
| 236 | - */ | |
| 237 | - public function actionView($id) | |
| 238 | - { | |
| 239 | - return $this->render('view', [ | |
| 240 | - 'model' => $this->findModel($id), | |
| 241 | - ]); | |
| 242 | - } | |
| 243 | - | |
| 244 | - /** | |
| 245 | - * Creates a new Order model. | |
| 246 | - * If creation is successful, the browser will be redirected to the 'view' page. | |
| 247 | - * @return mixed | |
| 248 | - */ | |
| 249 | - public function actionCreate() | |
| 250 | - { | |
| 251 | - $model = new Orders(); | |
| 252 | - | |
| 253 | - if ($model->load(Yii::$app->request->post()) && $model->save()) { | |
| 254 | - return $this->redirect(['view', 'id' => $model->id]); | |
| 255 | - } else { | |
| 256 | - return $this->render('create', [ | |
| 257 | - 'model' => $model, | |
| 258 | - ]); | |
| 259 | - } | |
| 260 | - } | |
| 261 | - | |
| 262 | - /** | |
| 263 | - * Updates an existing Order model. | |
| 264 | - * If update is successful, the browser will be redirected to the 'view' page. | |
| 265 | - * @param integer $id | |
| 266 | - * @return mixed | |
| 267 | - */ | |
| 268 | - public function actionUpdate($id) | |
| 269 | - { | |
| 270 | - $model = $this->findModel($id); | |
| 271 | - | |
| 272 | - if ($model->load(Yii::$app->request->post()) && $model->save()) { | |
| 273 | - return $this->redirect(['view', 'id' => $model->id]); | |
| 274 | - } else { | |
| 275 | - return $this->render('update', [ | |
| 276 | - 'model' => $model, | |
| 277 | - ]); | |
| 278 | - } | |
| 279 | - } | |
| 280 | - | |
| 281 | - /** | |
| 282 | - * Deletes an existing Order model. | |
| 283 | - * If deletion is successful, the browser will be redirected to the 'index' page. | |
| 284 | - * @param integer $id | |
| 285 | - * @return mixed | |
| 286 | - */ | |
| 287 | - public function actionDelete() | |
| 288 | - { | |
| 289 | - $data = Yii::$app->request->post(); | |
| 290 | - $sessionData = Yii::$app->session->get('order'); | |
| 291 | - unset($sessionData[$data['id']]); | |
| 292 | - Yii::$app->session->set('order', $sessionData); | |
| 293 | - return count(Yii::$app->session->get('order')); | |
| 294 | - } | |
| 295 | - | |
| 296 | - /** | |
| 297 | - * Finds the Order model based on its primary key value. | |
| 298 | - * If the model is not found, a 404 HTTP exception will be thrown. | |
| 299 | - * @param integer $id | |
| 300 | - * @return Orders the loaded model | |
| 301 | - * @throws NotFoundHttpException if the model cannot be found | |
| 302 | - */ | |
| 303 | - protected function findModel($id) | |
| 304 | - { | |
| 305 | - if (($model = Orders::findOne($id)) !== null) { | |
| 306 | - return $model; | |
| 307 | - } else { | |
| 308 | - throw new NotFoundHttpException('The requested page does not exist.'); | |
| 309 | - } | |
| 310 | - } | |
| 311 | -} |