[Помогите] Уникальный вид списка товаров в нужной мне категории

Тема в разделе "OpenCart", создана пользователем mr.Elias, 16 авг 2013.

  1. mr.Elias

    mr.Elias

    Регистрация:
    15 июн 2013
    Сообщения:
    319
    Симпатии:
    54
    Привет коллеги!
    Как сделать вывод товаров в определенных категориях такой, как мне нужно?
    допустим я хочу чтобы в нужных мне категориях список товаров выводился в виде таблицы, а во всех остальных категориях как по умолчанию, без изменений.
    Какой модуль мне использовать? может кто встречал такое? Если нет, кто может написать подобный модуль?
     
  2. kur1977

    kur1977

    Регистрация:
    11 фев 2013
    Сообщения:
    123
    Симпатии:
    59
    На самом деле все просо :Smile:

    Я обычно делаю так.
    В схемах создаете схему. Например 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
    Ну и напоследок в админке привяжите созданную схему к нужной категории во вкладке ДИЗАЙН при редактировании этой категории.
     
    nikfakel и mr.Elias нравится это.
  3. mr.Elias

    mr.Elias

    Регистрация:
    15 июн 2013
    Сообщения:
    319
    Симпатии:
    54
    отлично, вечером буду проверять))

    Если усложнить вопрос тем, что в в новой схеме (таблице вывода товаров) необходимо добавить колонки, которые мне нужны для отображения.
    такие как SKU, модель, ..... неужто это все руками прописывать? может быть сделать сразу одним модулем?
    при чем так чтобы напротив категории появлялась кнопка (настроить) и можно было добавлять нужные поля в таблицу?
    Или это уже из серии "очень сложно"?
     
  4. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    Чтобы прописать вывод SKU, нужно сделать выборку из базы. Примерно так.
    PHP:
    $this->data['products'][] = array(
    'name'        => $result['name'],
    'sku'         => $result['sku'],
    'location'    => $result['location'],
    'upc'         => $result['upc'],
    );
    Затем в шаблоне указать вот так - <?php echo $sku; ?>

    А на счет вывода различного вида категорий, то я делал это совсем по другому. Я делал привязку их к сортировке, т.е. если сортировка >100 меняется шаблон вывода. И т.к. к любой категории. Теперь хочу сделать, чтобы можно было по чекбоксу выбирать шаблон или селектом.

    Схема не решает всех нужных моментов. Она лишь создаст возможность вывода в различных местах - модули, а не категории. Данный пример самый простой.. И получается, что для каждой категории придется создавать повторно файл.. Так что это не очень экономичный вариант...
     
    nikfakel и mr.Elias нравится это.
  5. mr.Elias

    mr.Elias

    Регистрация:
    15 июн 2013
    Сообщения:
    319
    Симпатии:
    54
    Спасибо! А где надо писать "выборку"?
    Где вставить <?php echo $sku; ?> понятно.

    Тут про сортировку можно немного подробнее? не понятно.

    С этим согласен, поскольку писать каждый раз новый шаблон - дело неблагодарное, особенно если переносить магазин, либо если задачи вывода товаров в разных категориях очень отличаются.
    Потому нужен модуль, модуль который может генерировать вывод и который можно будет перенести на другой магазин. Вопрос кто его может написать.
     
  6. nix

    nix php, MySQL, UNIX, MikroTik ROSAPI

    Регистрация:
    16 янв 2013
    Сообщения:
    1.000
    Симпатии:
    890
    Увы но запрос сделан уже так что достаются все данные. И к тому же видимо ты попутал с страницой товара а не категории
    Код:
    $this->data['products'][] = array(
    я так понимаю ето ты из контролера продукта взял, и опять увы ето массив с сопутствующими товарами или как их там называют...
    Короче открываеш catalog/controller/product/category.php
    и в масив products добавляеш
    'sku' => $result['sku'],
    'model' => $result['model'],

    а в шаблоне категории выводиш так
    <?php echo $product['sku']; ?>
    ну и так дале

    учти что выводить надо в шаблоне в цыкле
    ($products as $product)

    А еще проще не парится и тут готовое решения из покон веков
     
    mr.Elias нравится это.
  7. mr.Elias

    mr.Elias

    Регистрация:
    15 июн 2013
    Сообщения:
    319
    Симпатии:
    54
    Как же сделать, чтобы для каждой конкретной категории был свой тип вывода товаров?

    Допустим, в первой я хочу выводить СКУ, во второй не хочу выводить СКУ, так же не хочу, чтобы была возможность перехода на страницу товара.
    Как быть?
     
  8. asusdemo

    asusdemo Веб-архитектор ocDesign.ru

    Регистрация:
    11 фев 2013
    Сообщения:
    135
    Симпатии:
    26
    Можно написать условие if продукты в категорий(ID) { <?= $sku; ?>}
    --- добавлено: 17 авг 2013 в 17:05 ---
    --------------------------
    Я не кодер, по этому не могу написать правильного условия....
     
  9. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    803
    Симпатии:
    399
    Если в 2-х словах, то первый пункт (кастомный вывод категории) я решил, через присвоение в таблицу категорий доп. поля, под названием "style" и поставил галочку в админке (шаблоне категории), в магазине же, убрал кеширование категорий в скрипте и проставил условие типа:
    Код:
    if (view) {
    display(view);
    } else {
    	if ($style) {
    display('grid');
    	}else{
    		display('list');
       }
    }
    Впредь конечно же в контроллере подгрузив: $this->data['style'] = $category['style'];
     
    mr.Elias нравится это.
  10. mr.Elias

    mr.Elias

    Регистрация:
    15 июн 2013
    Сообщения:
    319
    Симпатии:
    54
    Васо, скажите, возможно все это собрать в один реально работающий модуль?
    чтобы его можно было впиливать в любой магазин, а не лопатить страницы на каждом магазе?
    Особенно, если у вас уже все готово, как вы говорите!:smile:
    (Все условия, т.е. задачи модуля я описал)
     
  11. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    803
    Симпатии:
    399
    Доброго времени... у меня готового как такого - нет, это всё по заказу делал, модулем выпускать не буду, но думаю, что реализую данную фичу в сборке.
     
  12. sokrat

    sokrat

    Регистрация:
    23 ноя 2013
    Сообщения:
    118
    Симпатии:
    20
    Никаких условий писать не надо и кодов выдумывать тоже. Ответ на поверхности. Для другой категории товаров тебе просто не нужно заполнять поле SKU в данных о товаре, тогда оно выводиться у тебя и не будет! :wink:
    --- Добавлено, 6 дек 2013 ---
    У меня стоит этот модуль, но он не решает проблемы, так как по умолчанию действует на все существующие карточки во ВСЕХ КАТЕГОРИЯХ ТОВАРА. Вопрос заключается в том, как создать уникальный вид карточки товара для разных категорий. Вопрос открыт!!! Мне тоже такую фишку надо. Так как я продаю в 1 категории: мясо. А во второй продаю "субпродукты", естесственно, у меня карточка кардинально меняется.
     
    Последнее редактирование: 6 дек 2013
  13. mr.Elias

    mr.Elias

    Регистрация:
    15 июн 2013
    Сообщения:
    319
    Симпатии:
    54
    SKU был взят для примера, а если я не хочу выводить описание товара в категории, либо фотографию, либо иные поля?

    Вот, Baco говорит что у него есть наброски или готовое решение, но почему-то не хочет нормальным парням завернуть это в модуль, а только для своей сборки применяет. (Васо, без обид))
     
  14. sokrat

    sokrat

    Регистрация:
    23 ноя 2013
    Сообщения:
    118
    Симпатии:
    20
    На самом деле всё гораздо проще. Например у сборки Брокарт ещё 6 переменных в запасе и прописаны - вы их можете обозвать как угодно. Если не хотите выводить SKU или другие переменные в карточку для конкретной категории, тогда у каждого товара этой категории не нужно например заполнять SKU в админке. Если не заполняете SKU, то она и не выводится в вашей категории (так как изначально для всех переменных указано условие, что если оно пустое, то не выводится в карточке). В чем проблема?