Привет коллеги! Как сделать вывод товаров в определенных категориях такой, как мне нужно? допустим я хочу чтобы в нужных мне категориях список товаров выводился в виде таблицы, а во всех остальных категориях как по умолчанию, без изменений. Какой модуль мне использовать? может кто встречал такое? Если нет, кто может написать подобный модуль?
На самом деле все просо Я обычно делаю так. В схемах создаете схему. Например unic_category . Никакой путь в созданной схеме указывать не надо. Потом смотрите ее id (можно в списке схем навести мышкой на "изменить" и посмотреть id схемы внизу браузера в статусной строке, где отобразится ссылка . Ссылка будет вида admin/index.php?route=design/layout/update&token=f45a60f7309659959079225626fb313d&layout_id=9) Запомните его. Потом создаете свой уникальный темплейт catalog\view\theme\ВАША_ТЕМА\template\product\category_9.tpl (9 замените на id схемы, которую вы создали) Потом в файле catalog\controller\product\category.php Перед PHP: 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';} добавьте PHP: $this->load->model('design/layout');$layout_id = ''; $layout_id = $this->model_catalog_category->getCategoryLayoutId(end($parts1)); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category_'.$layout_id.'.tpl')) {$this->template = $this->config->get('config_template') . '/template/product/category_'.$layout_id.'.tpl';}else Ну и напоследок в админке привяжите созданную схему к нужной категории во вкладке ДИЗАЙН при редактировании этой категории.
отлично, вечером буду проверять)) Если усложнить вопрос тем, что в в новой схеме (таблице вывода товаров) необходимо добавить колонки, которые мне нужны для отображения. такие как SKU, модель, ..... неужто это все руками прописывать? может быть сделать сразу одним модулем? при чем так чтобы напротив категории появлялась кнопка (настроить) и можно было добавлять нужные поля в таблицу? Или это уже из серии "очень сложно"?
Чтобы прописать вывод SKU, нужно сделать выборку из базы. Примерно так. PHP: $this->data['products'][] = array('name' => $result['name'],'sku' => $result['sku'],'location' => $result['location'],'upc' => $result['upc'],); Затем в шаблоне указать вот так - <?php echo $sku; ?> А на счет вывода различного вида категорий, то я делал это совсем по другому. Я делал привязку их к сортировке, т.е. если сортировка >100 меняется шаблон вывода. И т.к. к любой категории. Теперь хочу сделать, чтобы можно было по чекбоксу выбирать шаблон или селектом. Схема не решает всех нужных моментов. Она лишь создаст возможность вывода в различных местах - модули, а не категории. Данный пример самый простой.. И получается, что для каждой категории придется создавать повторно файл.. Так что это не очень экономичный вариант...
Спасибо! А где надо писать "выборку"? Где вставить <?php echo $sku; ?> понятно. Тут про сортировку можно немного подробнее? не понятно. С этим согласен, поскольку писать каждый раз новый шаблон - дело неблагодарное, особенно если переносить магазин, либо если задачи вывода товаров в разных категориях очень отличаются. Потому нужен модуль, модуль который может генерировать вывод и который можно будет перенести на другой магазин. Вопрос кто его может написать.
Увы но запрос сделан уже так что достаются все данные. И к тому же видимо ты попутал с страницой товара а не категории Код: $this->data['products'][] = array( я так понимаю ето ты из контролера продукта взял, и опять увы ето массив с сопутствующими товарами или как их там называют... Короче открываеш catalog/controller/product/category.php и в масив products добавляеш 'sku' => $result['sku'], 'model' => $result['model'], а в шаблоне категории выводиш так <?php echo $product['sku']; ?> ну и так дале учти что выводить надо в шаблоне в цыкле ($products as $product) А еще проще не парится и тут готовое решения из покон веков
Как же сделать, чтобы для каждой конкретной категории был свой тип вывода товаров? Допустим, в первой я хочу выводить СКУ, во второй не хочу выводить СКУ, так же не хочу, чтобы была возможность перехода на страницу товара. Как быть?
Можно написать условие if продукты в категорий(ID) { <?= $sku; ?>} --- добавлено: 17 авг 2013 в 17:05 --- -------------------------- Я не кодер, по этому не могу написать правильного условия....
Если в 2-х словах, то первый пункт (кастомный вывод категории) я решил, через присвоение в таблицу категорий доп. поля, под названием "style" и поставил галочку в админке (шаблоне категории), в магазине же, убрал кеширование категорий в скрипте и проставил условие типа: Код: if (view) { display(view); } else { if ($style) { display('grid'); }else{ display('list'); } } Впредь конечно же в контроллере подгрузив: $this->data['style'] = $category['style'];
Васо, скажите, возможно все это собрать в один реально работающий модуль? чтобы его можно было впиливать в любой магазин, а не лопатить страницы на каждом магазе? Особенно, если у вас уже все готово, как вы говорите! (Все условия, т.е. задачи модуля я описал)
Доброго времени... у меня готового как такого - нет, это всё по заказу делал, модулем выпускать не буду, но думаю, что реализую данную фичу в сборке.
Никаких условий писать не надо и кодов выдумывать тоже. Ответ на поверхности. Для другой категории товаров тебе просто не нужно заполнять поле SKU в данных о товаре, тогда оно выводиться у тебя и не будет! --- Добавлено, 6 дек 2013 --- У меня стоит этот модуль, но он не решает проблемы, так как по умолчанию действует на все существующие карточки во ВСЕХ КАТЕГОРИЯХ ТОВАРА. Вопрос заключается в том, как создать уникальный вид карточки товара для разных категорий. Вопрос открыт!!! Мне тоже такую фишку надо. Так как я продаю в 1 категории: мясо. А во второй продаю "субпродукты", естесственно, у меня карточка кардинально меняется.
SKU был взят для примера, а если я не хочу выводить описание товара в категории, либо фотографию, либо иные поля? Вот, Baco говорит что у него есть наброски или готовое решение, но почему-то не хочет нормальным парням завернуть это в модуль, а только для своей сборки применяет. (Васо, без обид))
На самом деле всё гораздо проще. Например у сборки Брокарт ещё 6 переменных в запасе и прописаны - вы их можете обозвать как угодно. Если не хотите выводить SKU или другие переменные в карточку для конкретной категории, тогда у каждого товара этой категории не нужно например заполнять SKU в админке. Если не заполняете SKU, то она и не выводится в вашей категории (так как изначально для всех переменных указано условие, что если оно пустое, то не выводится в карточке). В чем проблема?