Настало время вывести наши товары в категории. Для этого наполним наш магазин еще несколькими товарами и создадим еще одну категорию. Например, я добавил следующие товары: Samsung Galaxy S4, LG K10 – этих пока достаточно. Следующее, что нам нужно сделать – это создать дополнительную категорию товаров для тестов. Например, пусть это будет “Аудио-Плееры”. В последнюю категорию нам нужно добавить хотя бы парочку товаров.
Добавили? Теперь можно двигаться дальше. Перейдем на страницу категории и посмотрим какие чанки нам предстоит сделать:
В итоге мы с вами должны получить 2 чанка. Создавать чанки мы с вами будем так же, по аналогии с чанками в корзине.
Итак, первый чанк – gridProductTpl — у меня получился следующий:
<div class="col-xs-12 col-sm-4 no-margin product-item-holder hover"> <div class="product-item"> <form method="post" class="ms2_form"> <input type="hidden" name="id" value="{$id}"> <input type="hidden" name="count" value="1"> <input type="hidden" name="options" value="[]"> <div class="ribbons"> {if $favorite?} <div class="ribbon red"><span>Скидка</span></div> {/if} {if $new?} <div class="ribbon blue"><span>Новый!</span></div> {/if} {if $popular?} <div class="ribbon green"><span>Популярный</span></div> {/if} </div> <div class="image"> {if $image?} <img src="assets/images/blank.gif" data-echo="{$image}" alt="{$pagetitle}" title="{$pagetitle}"/> {else} <img src="{'assets_url' | option}components/minishop2/img/web/ms2_small.png" srcset="{'assets_url' | option}components/minishop2/img/web/ms2_small@2x.png 2x" alt="{$pagetitle}" title="{$pagetitle}"/> {/if} </div> <div class="body"> <!--<div class="label-discount green">-50% sale</div>--> <div class="title"> <a href="{$id | url}">{$pagetitle}</a> </div> <div class="brand">{$_pls['vendor.name']}</div> </div> <div class="prices"> {if $old_price?} <div class="price-prev">{$old_price} <i class="fa fa-ruble"></i></div> {/if} <div class="price-current pull-right">{$price} <i class="fa fa-ruble"></i></div> </div> <div class="hover-area"> <div class="add-cart-button"> <button type="submit" name="ms2_action" value="cart/add" class="le-button">В корзину</button> </div> <div class="wish-compare"> <a class="btn-add-to-wishlist" href="#">add to wishlist</a> <a class="btn-add-to-compare" href="#">compare</a> </div> </div> </form> </div> </div>
Если вывести товары на странице категории, с помощью pdoPage и msProduct, прописав вызов pdoTools в шаблоне категории:
<div class="product-grid-holder"> <div class="row no-margin"> [[!pdoPage? &element=`msProducts` &tpl=`gridProductTpl` &limit=`12` ]] </div> </div> <div class="pagination-holder"> <div class="row"> <div class="col-xs-12 col-sm-6 text-left"> [[!+page.nav]] </div> <div class="col-xs-12 col-sm-6"> <div class="result-counter"> Showing <span>1-9</span> of <span>11</span> results </div> </div> </div> </div>
Мы увидим, что у нас снова слетели стили. Я их поправил и в конце следующей статьи я приведу код CSS, который я прописал для нашего интернет-магазина. Итак, мы вывели продукты сеткой. Осталось вывести линейно. Чанк listProductTpl у меня получился следующий:
<div class="product-item product-item-holder"> <form method="post" class="ms2_form"> <input type="hidden" name="id" value="{$id}"> <input type="hidden" name="count" value="1"> <input type="hidden" name="options" value="[]"> <div class="ribbons"> {if $favorite?} <div class="ribbon red"><span>Скидка</span></div> {/if} {if $new?} <div class="ribbon blue"><span>Новый!</span></div> {/if} {if $popular?} <div class="ribbon green"><span>Популярный</span></div> {/if} </div> <div class="row"> <div class="no-margin col-xs-12 col-sm-4 image-holder"> <div class="image"> {if $image?} <img src="assets/images/blank.gif" data-echo="{$image}" alt="{$pagetitle}" title="{$pagetitle}"/> {else} <img src="{'assets_url' | option}components/minishop2/img/web/ms2_small.png" srcset="{'assets_url' | option}components/minishop2/img/web/ms2_small@2x.png 2x" alt="{$pagetitle}" title="{$pagetitle}"/> {/if} </div> </div><!-- /.image-holder --> <div class="no-margin col-xs-12 col-sm-5 body-holder"> <div class="body"> <div class="label-discount clear"></div> <div class="title"> <a href="{$id | url}">{$pagetitle}</a> </div> <div class="brand">{$_pls['vendor.name']}</div> <div class="excerpt"> <p>{$introtext}</p> </div> <div class="addto-compare"> <a class="btn-add-to-compare" href="#">add to compare list</a> <a class="btn-add-to-wishlist" href="#">add to wishlist</a> </div> </div> </div> <div class="no-margin col-xs-12 col-sm-3 price-area"> <div class="right-clmn"> <div class="price-current">{$price} <i class="fa fa-ruble"></i></div> {if $old_price?} <div class="price-prev">{$old_price} <i class="fa fa-ruble"></i></div> {/if} <div class="availability"><label>availability:</label><span class="available"> in stock</span></div> <button type="submit" name="ms2_action" value="cart/add" class="le-button">В корзину</button> </div> </div> </div> </form> </div>
И выводим в шаблоне категории аналогично первому способу:
<div class="products-list"> [[!pdoPage? &element=`msProducts` &tpl=`listProductTpl` &limit=`12` ]] </div> <div class="pagination-holder"> <div class="row"> <div class="col-xs-12 col-sm-6 text-left"> [[!page.nav]] </div> <div class="col-xs-12 col-sm-6"> <div class="result-counter"> Showing <span>1-9</span> of <span>11</span> results </div><!-- /.result-counter --> </div> </div><!-- /.row --> </div><!-- /.pagination-holder -->
И у нас готов вывод наших товаров в категории. Отлично!
На этом урок наш закончен. В следующем уроке мы с вами реализуем фильтры в нашем интернет-магазине с помощью mSearch2.