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 | -} |