Commit 94a1dbd29313d96289d45e4b6fdaff085376674f

Authored by Yarik
1 parent 9c88815c

Checkout top

frontend/controllers/CheckoutController.php
1 <?php 1 <?php
2 2
3 namespace frontend\controllers; 3 namespace frontend\controllers;
4 - 4 +
  5 + use artbox\catalog\models\Product;
5 use artbox\order\models\Delivery; 6 use artbox\order\models\Delivery;
6 use artbox\order\models\OrderProduct; 7 use artbox\order\models\OrderProduct;
7 use artbox\order\models\Payment; 8 use artbox\order\models\Payment;
8 use frontend\models\Order; 9 use frontend\models\Order;
9 use yii\web\Controller; 10 use yii\web\Controller;
10 - 11 +
11 /** 12 /**
12 * Class CheckoutController 13 * Class CheckoutController
13 * 14 *
@@ -26,15 +27,21 @@ @@ -26,15 +27,21 @@
26 if (!empty($data)) { 27 if (!empty($data)) {
27 $variants = $basket->findModels(array_keys($data)); 28 $variants = $basket->findModels(array_keys($data));
28 } 29 }
  30 + $topItems = Product::find()
  31 + ->with('lang', 'image', 'variants')
  32 + ->is('mask', 1)
  33 + ->limit(20)
  34 + ->all();
29 return $this->render( 35 return $this->render(
30 'index', 36 'index',
31 [ 37 [
32 'basket' => $basket, 38 'basket' => $basket,
33 'variants' => $variants, 39 'variants' => $variants,
  40 + 'topItems' => $topItems,
34 ] 41 ]
35 ); 42 );
36 } 43 }
37 - 44 +
38 public function actionInfo() 45 public function actionInfo()
39 { 46 {
40 $model = new Order( 47 $model = new Order(
@@ -65,7 +72,7 @@ @@ -65,7 +72,7 @@
65 ] 72 ]
66 ); 73 );
67 } 74 }
68 - 75 +
69 public function actionDelivery() 76 public function actionDelivery()
70 { 77 {
71 $model = new Order( 78 $model = new Order(
@@ -84,10 +91,10 @@ @@ -84,10 +91,10 @@
84 return $this->redirect([ 'info' ]); 91 return $this->redirect([ 'info' ]);
85 } 92 }
86 $deliveries = Delivery::find() 93 $deliveries = Delivery::find()
87 - ->with('lang')  
88 - ->where([ 'status' => true ])  
89 - ->orderBy([ 'sort' => SORT_ASC ])  
90 - ->all(); 94 + ->with('lang')
  95 + ->where([ 'status' => true ])
  96 + ->orderBy([ 'sort' => SORT_ASC ])
  97 + ->all();
91 return $this->render( 98 return $this->render(
92 'delivery', 99 'delivery',
93 [ 100 [
@@ -96,7 +103,7 @@ @@ -96,7 +103,7 @@
96 ] 103 ]
97 ); 104 );
98 } 105 }
99 - 106 +
100 public function actionPayment() 107 public function actionPayment()
101 { 108 {
102 $model = new Order( 109 $model = new Order(
@@ -116,10 +123,10 @@ @@ -116,10 +123,10 @@
116 return $this->redirect('confirm'); 123 return $this->redirect('confirm');
117 } else { 124 } else {
118 $payments = Payment::find() 125 $payments = Payment::find()
119 - ->with('lang')  
120 - ->where([ 'status' => true ])  
121 - ->orderBy([ 'sort' => SORT_ASC ])  
122 - ->all(); 126 + ->with('lang')
  127 + ->where([ 'status' => true ])
  128 + ->orderBy([ 'sort' => SORT_ASC ])
  129 + ->all();
123 return $this->render( 130 return $this->render(
124 'payment', 131 'payment',
125 [ 132 [
@@ -135,7 +142,7 @@ @@ -135,7 +142,7 @@
135 'delivery' 142 'delivery'
136 ); 143 );
137 } 144 }
138 - 145 +
139 public function actionConfirm() 146 public function actionConfirm()
140 { 147 {
141 $model = new Order(); 148 $model = new Order();
@@ -208,7 +215,7 @@ @@ -208,7 +215,7 @@
208 } 215 }
209 return $model->getErrors(); 216 return $model->getErrors();
210 } 217 }
211 - 218 +
212 public function beforeAction($action) 219 public function beforeAction($action)
213 { 220 {
214 /** 221 /**
frontend/views/checkout/index.php
@@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
3 * @var \yii\web\View $this 3 * @var \yii\web\View $this
4 * @var \artbox\order\models\Basket $basket 4 * @var \artbox\order\models\Basket $basket
5 * @var \artbox\catalog\models\Variant[] $variants 5 * @var \artbox\catalog\models\Variant[] $variants
  6 + * @var \artbox\catalog\models\Product[] $topItems
6 */ 7 */
7 use artbox\core\helpers\ImageHelper; 8 use artbox\core\helpers\ImageHelper;
8 use yii\bootstrap\Html; 9 use yii\bootstrap\Html;
@@ -208,249 +209,38 @@ @@ -208,249 +209,38 @@
208 } 209 }
209 ?> 210 ?>
210 </div> 211 </div>
211 - <div class="col-md-12">  
212 - <div class="heading text-center">  
213 - <h2>Смотрите также</h2>  
214 - </div>  
215 -  
216 - <div class="product-carousel">  
217 - <div class="homepage owl-carousel">  
218 - <div class="products">  
219 - <div class="col-md-3 col-sm-6">  
220 - <div class="product">  
221 - <div class="image">  
222 - <a href="shop-detail.html">  
223 - <img src="/img/product1.jpg" alt="" class="img-responsive image1">  
224 - </a>  
225 - </div>  
226 - <!-- /.image -->  
227 - <div class="text">  
228 - <h3><a href="shop-detail.html">Fur coat with very but very very long name</a></h3>  
229 - <p class="price">143.00</p>  
230 - <p class="buttons">  
231 - <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a>  
232 - </p>  
233 - </div>  
234 - <!-- /.text -->  
235 -  
236 - <div class="ribbon new">  
237 - <div class="theribbon">Новое</div>  
238 - <div class="ribbon-background"></div>  
239 - </div>  
240 - <!-- /.ribbon -->  
241 - </div>  
242 - <!-- /.product -->  
243 - </div>  
244 -  
245 - <div class="col-md-3 col-sm-6">  
246 - <div class="product">  
247 - <div class="image">  
248 - <a href="shop-detail.html">  
249 - <img src="/img/product2.jpg" alt="" class="img-responsive image1">  
250 - </a>  
251 - </div>  
252 - <!-- /.image -->  
253 - <div class="text">  
254 - <h3><a href="shop-detail.html">White Blouse Armani</a></h3>  
255 - <p class="price">  
256 - <del>280</del>  
257 - 143.00  
258 - </p>  
259 - <p class="buttons">  
260 - <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a>  
261 - </p>  
262 - </div>  
263 - <!-- /.text -->  
264 -  
265 - <div class="ribbon sale">  
266 - <div class="theribbon">Акция</div>  
267 - <div class="ribbon-background"></div>  
268 - </div>  
269 - <!-- /.ribbon -->  
270 -  
271 - <div class="ribbon new">  
272 - <div class="theribbon">Новое</div>  
273 - <div class="ribbon-background"></div>  
274 - </div>  
275 - <!-- /.ribbon -->  
276 - </div>  
277 - <!-- /.product -->  
278 - </div>  
279 -  
280 - <div class="col-md-3 col-sm-6">  
281 - <div class="product">  
282 - <div class="image">  
283 - <a href="shop-detail.html">  
284 - <img src="/img/product3.jpg" alt="" class="img-responsive image1">  
285 - </a>  
286 - </div>  
287 - <!-- /.image -->  
288 - <div class="text">  
289 - <h3><a href="shop-detail.html">Black Blouse Versace</a></h3>  
290 - <p class="price">143.00</p>  
291 - <p class="buttons">  
292 - <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a>  
293 - </p>  
294 -  
295 - </div>  
296 - <!-- /.text -->  
297 -  
298 - <div class="ribbon new">  
299 - <div class="theribbon">Новое</div>  
300 - <div class="ribbon-background"></div>  
301 - </div>  
302 - <!-- /.ribbon -->  
303 - </div>  
304 - <!-- /.product -->  
305 - </div>  
306 -  
307 - <div class="col-md-3 col-sm-6">  
308 - <div class="product">  
309 - <div class="image">  
310 - <a href="shop-detail.html">  
311 - <img src="/img/product3.jpg" alt="" class="img-responsive image1">  
312 - </a>  
313 - </div>  
314 - <!-- /.image -->  
315 - <div class="text">  
316 - <h3><a href="shop-detail.html">Black Blouse Versace</a></h3>  
317 - <p class="price">143.00</p>  
318 - <p class="buttons">  
319 - <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a>  
320 - </p>  
321 -  
322 - </div>  
323 - <!-- /.text -->  
324 -  
325 - <div class="ribbon new">  
326 - <div class="theribbon">Новое</div>  
327 - <div class="ribbon-background"></div>  
328 - </div>  
329 - <!-- /.ribbon -->  
330 - </div>  
331 - <!-- /.product -->  
332 - </div>  
333 - </div>  
334 -  
335 - <div class="products">  
336 - <div class="col-md-3 col-sm-6">  
337 - <div class="product">  
338 - <div class="image">  
339 - <a href="shop-detail.html">  
340 - <img src="/img/product1.jpg" alt="" class="img-responsive image1">  
341 - </a>  
342 - </div>  
343 - <!-- /.image -->  
344 - <div class="text">  
345 - <h3><a href="shop-detail.html">Fur coat with very but very very long name</a></h3>  
346 - <p class="price">143.00</p>  
347 - <p class="buttons">  
348 - <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a>  
349 - </p>  
350 - </div>  
351 - <!-- /.text -->  
352 -  
353 - <div class="ribbon new">  
354 - <div class="theribbon">Новое</div>  
355 - <div class="ribbon-background"></div>  
356 - </div>  
357 - <!-- /.ribbon -->  
358 - </div>  
359 - <!-- /.product -->  
360 - </div>  
361 -  
362 - <div class="col-md-3 col-sm-6">  
363 - <div class="product">  
364 - <div class="image">  
365 - <a href="shop-detail.html">  
366 - <img src="/img/product2.jpg" alt="" class="img-responsive image1">  
367 - </a>  
368 - </div>  
369 - <!-- /.image -->  
370 - <div class="text">  
371 - <h3><a href="shop-detail.html">White Blouse Armani</a></h3>  
372 - <p class="price">  
373 - <del>280</del>  
374 - 143.00  
375 - </p>  
376 - <p class="buttons">  
377 - <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a>  
378 - </p>  
379 - </div>  
380 - <!-- /.text -->  
381 -  
382 - <div class="ribbon sale">  
383 - <div class="theribbon">Акция</div>  
384 - <div class="ribbon-background"></div>  
385 - </div>  
386 - <!-- /.ribbon -->  
387 -  
388 - <div class="ribbon new">  
389 - <div class="theribbon">Новое</div>  
390 - <div class="ribbon-background"></div>  
391 - </div>  
392 - <!-- /.ribbon -->  
393 - </div>  
394 - <!-- /.product -->  
395 - </div>  
396 -  
397 - <div class="col-md-3 col-sm-6">  
398 - <div class="product">  
399 - <div class="image">  
400 - <a href="shop-detail.html">  
401 - <img src="/img/product3.jpg" alt="" class="img-responsive image1">  
402 - </a>  
403 - </div>  
404 - <!-- /.image -->  
405 - <div class="text">  
406 - <h3><a href="shop-detail.html">Black Blouse Versace</a></h3>  
407 - <p class="price">143.00</p>  
408 - <p class="buttons">  
409 - <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a>  
410 - </p>  
411 -  
412 - </div>  
413 - <!-- /.text -->  
414 -  
415 - <div class="ribbon new">  
416 - <div class="theribbon">Новое</div>  
417 - <div class="ribbon-background"></div>  
418 - </div>  
419 - <!-- /.ribbon -->  
420 - </div>  
421 - <!-- /.product --> 212 + <?php
  213 + if (!empty($topItems)) {
  214 + ?>
  215 + <div class="heading text-center">
  216 + <h2><?php echo \Yii::t('app', 'Смотрите также'); ?></h2>
422 </div> 217 </div>
423 -  
424 - <div class="col-md-3 col-sm-6">  
425 - <div class="product">  
426 - <div class="image">  
427 - <a href="shop-detail.html">  
428 - <img src="/img/product3.jpg" alt="" class="img-responsive image1">  
429 - </a>  
430 - </div>  
431 - <!-- /.image -->  
432 - <div class="text">  
433 - <h3><a href="shop-detail.html">Black Blouse Versace</a></h3>  
434 - <p class="price">143.00</p>  
435 - <p class="buttons">  
436 - <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a>  
437 - </p>  
438 -  
439 - </div>  
440 - <!-- /.text -->  
441 -  
442 - <div class="ribbon new">  
443 - <div class="theribbon">Новое</div>  
444 - <div class="ribbon-background"></div>  
445 - </div>  
446 - <!-- /.ribbon --> 218 + <div class="product-carousel">
  219 + <div class="homepage owl-carousel">
  220 + <?php
  221 + $newItemsArrays = array_chunk($topItems, 4);
  222 + foreach ($newItemsArrays as $newItemsArray) {
  223 + ?>
  224 + <div class="products">
  225 + <?php
  226 + foreach ($newItemsArray as $product) {
  227 + echo $this->render(
  228 + '@frontend/views/site/_slider_product',
  229 + [
  230 + 'product' => $product,
  231 + ]
  232 + );
  233 + }
  234 + ?>
  235 + </div>
  236 + <?php
  237 + }
  238 + ?>
447 </div> 239 </div>
448 - <!-- /.product -->  
449 </div> 240 </div>
450 - </div>  
451 - </div>  
452 - </div>  
453 - </div> 241 + <?php
  242 + }
  243 + ?>
454 </div> 244 </div>
455 </div> 245 </div>
456 </div> 246 </div>
457 \ No newline at end of file 247 \ No newline at end of file