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,8 +97,6 @@ ExpiresByType image/x-icon "access 1 year" | ||
97 | ExpiresByType application/x-shockwave-flash "access 1 year" | 97 | ExpiresByType application/x-shockwave-flash "access 1 year" |
98 | </IfModule> | 98 | </IfModule> |
99 | 99 | ||
100 | - | ||
101 | -# кеширование в браузере на стороне пользователя | ||
102 | <IfModule mod_deflate.c> | 100 | <IfModule mod_deflate.c> |
103 | AddOutputFilterByType DEFLATE text/plain | 101 | AddOutputFilterByType DEFLATE text/plain |
104 | AddOutputFilterByType DEFLATE text/html | 102 | AddOutputFilterByType DEFLATE text/html |
common/models/Orders.php
@@ -17,8 +17,7 @@ class Orders extends \yii\db\ActiveRecord | @@ -17,8 +17,7 @@ class Orders extends \yii\db\ActiveRecord | ||
17 | { | 17 | { |
18 | return [ | 18 | return [ |
19 | [['name', 'phone'], 'required','whenClient' => true], | 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 | [['email'],'email'], | 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 | -} |