Так вот давайте начнем вносить оригинальность нашему товару и категории. Допустим, нам поставили задачу что бы в данной категории товар показывался списком, а не блоками. Но на некоторых будет показываться блоками. И реализация таких фрагментов была с админки магазина.
Для начала нам нужно будет создать такие файлы:
catalog/view/theme/default/template/product/listcategory.tpl
catalog/controller/product/listcategory.php
catalog/ language/*/product/listcategory.php
*наименование папки используемого языка в каталоге
после того как создали выше указанный файлы скопируем коды готовой категории в новую категорию. После того как мы сохранили далее открываем
В начале документа находим код:
1 | class ControllerProductCategory extends Controller { |
И изменяем на:
1 | class ControllerProductListcategory extends Controller { |
После прокручиваем немного ниже и пропишем путь к нашему новому шаблону
1 2 3 4 5 | if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/category.tpl'; } else { $this->template = 'default/template/product/category.tpl'; } |
И Изменяем на:
1 2 3 4 5 | if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/listcategory.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/listcategory.tpl'; } else { $this->template = 'default/template/product/listcategory.tpl'; } |
Далее сохраняем документ и открываем catalog/view/theme/default/template/product/listcategory.tpl
Для начала изменим класс отображаемового тега HTML блока товара
1 | <div class="product-grid"> |
Далее изменям класс на
1 | <div class="product-list"> |
Далее нужно изменить переменную для куки в javaScript, если его не изменить куки будет определяться параллельно для двух файлов. Находи такие строки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | <script type="text/javascript"><!-- function display(view) { if (view == 'list') { $('.product-grid').attr('class', 'product-list'); $('.product-list > div').each(function(index, element) { html = '<div class="right">'; html += ' <div class="cart">' + $(element).find('.cart').html() + '</div>'; html += ' <div class="wishlist">' + $(element).find('.wishlist').html() + '</div>'; html += ' <div class="compare">' + $(element).find('.compare').html() + '</div>'; html += '</div>'; html += '<div class="left">'; var image = $(element).find('.image').html(); if (image != null) { html += '<div class="image">' + image + '</div>'; } var price = $(element).find('.price').html(); if (price != null) { html += '<div class="price">' + price + '</div>'; } html += ' <div class="name">' + $(element).find('.name').html() + '</div>'; html += ' <div class="description">' + $(element).find('.description').html() + '</div>'; var rating = $(element).find('.rating').html(); if (rating != null) { html += '<div class="rating">' + rating + '</div>'; } html += '</div>'; $(element).html(html); }); $('.display').html('<b><?php echo $text_display; ?></b> <?php echo $text_list; ?> <b>/</b> <a onclick="display(\'grid\');"><?php echo $text_grid; ?></a>'); $.cookie('display', 'list'); } else { $('.product-list').attr('class', 'product-grid'); $('.product-grid > div').each(function(index, element) { html = ''; var image = $(element).find('.image').html(); if (image != null) { html += '<div class="image">' + image + '</div>'; } html += '<div class="name">' + $(element).find('.name').html() + '</div>'; html += '<div class="description">' + $(element).find('.description').html() + '</div>'; var price = $(element).find('.price').html(); if (price != null) { html += '<div class="price">' + price + '</div>'; } var rating = $(element).find('.rating').html(); if (rating != null) { html += '<div class="rating">' + rating + '</div>'; } html += '<div class="cart">' + $(element).find('.cart').html() + '</div>'; html += '<div class="wishlist">' + $(element).find('.wishlist').html() + '</div>'; html += '<div class="compare">' + $(element).find('.compare').html() + '</div>'; $(element).html(html); }); $('.display').html('<b><?php echo $text_display; ?></b> <a onclick="display(\'list\');"><?php echo $text_list; ?></a> <b>/</b> <?php echo $text_grid; ?>'); $.cookie('display', 'grid'); } } view = $.cookie('display'); if (view) { display(view); } else { display('list'); } //--></script> |
И от А до Я удаляем этот скрипт! Так же и удалите этот фрагмент
1 | <div class="display"><b><?php echo $text_display; ?></b> <?php echo $text_list; ?> <b>/</b> <a onclick="display('grid');"><?php echo $text_grid; ?></a></div> |
С внешней частью кода разобрались, теперь осталось немного. Далее заходим в административную (админка) часть сайта и переходим по такому пути Система -> Дизайн -> Схемы. После создаем новый дизайн нажимаем кнопку "Добавить" и дадим нашему макету называние "Category_List", теперь нажимаем на кнопку "Добавить Путь". После выбираем магазин по умолчанию, или тот в котором он нужен и в строке "Путь:" Указываем "product/listcategory". Далее нажимаем кнопку "Сохранить"
После того как мы это все создали, теперь можем смело указать новый дизайн для категории. Переходим в админке Каталог -> Категории -> Добавить /или/ Изменить уже созданную категорию. После чего переходим во вкладку дизайн и выбираем в выпадающем списке "Category_List" и Сохраняем.
Поздравляю теперь вы справились с поставленной задачей!)
Такую же саму операцию Вы сможете и проделать с карточкой товара, и для каждого лота выставить свой уникальный дизайн!
P.S. Оставляйте ваши вопросы и Коментарии. Спасибо за Внимание
0 коммент.:
Отправить комментарий