Перейти к содержанию

Рекомендуемые сообщения

Задача не раз подымалась - "Как сделать свой шаблон для категорий?"

И вот тоже столкнулся с такой штукой, но все что пишут в "интернетах" не подходит, так как по тем инструкциям можно назначить шаблон только для категории с определенным ID.
Я решил сделать все по-другому. Может быть не совсем правильно, но все же думаю идея заслуживает внимания.
 

И так, нам надо вывести категорию (или несколько категорий) с другим шаблоном. Для этого я решил использовать схемы вывода.

Создаем новую схему  - Система - Дизайн - Схемы   - Назовем ее "Подкатегория" и id у нее - '12'

В админке у нужной категории на вкладке "Дизайн" выбираете созданную схему "Под категория"

 

Теперь в папке с шаблоном создаете шаблон для вывода вашей "особенной" категории к примеру catalog/view/theme/.../product/subcategory.tpl - содержимое можно взять с оригинала category.tpl (и изменить под себя)

 

Теперь в контролере категорий - 

catalog/controller/product/category.php

Задаем определение схемы отображения:

после 10 строки $this->load->model('tool/image'); 

 

добавляем

if ('product/category' && isset($this->request->get['path'])) {
$path = explode('_', (string)$this->request->get['path']);
$this->data['layout_id'] = $this->model_catalog_category->getCategoryLayoutId(end($path)); 
}

дальше находим примерно 405 строка (в версии 1.5.4.1 - 350 строка)

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';
}

И заменяем на

if ($this->data['layout_id'] == 12) {$this->template = $this->config->get('config_template') . '/template/product/subcategory.tpl';
} elseif (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';
} 

где 12 это id вашей схемы "Подкатегория", а subcategory.tpl ваш файл с шаблоном вывода категории

 

Все теперь шаблон для вашей категории будет браться из файла subcategory.tpl

Аналогично можно сделать и для информационных страниц!!!

 

Не забудьте, что модули тоже придется вывести в схему "Подкатегория"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В том, то и дело, что для 1й категории, а в моем решении, можно сразу для нескольких назначить, просто выбрав из админки схему отображения

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня не сработал данный способ, версия osstore 1541, сделал всё 1 в 1, создал лейаут, ид16, подключил категорию на этот лейаут, отредактировал category.php

в результате выводится тот же самый шаблон category.tpl, а subcategory.tpl нет.

 

upd в версии 1541 нужно менять строки 350 в шаблоне category.php

всё подключилось!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня не сработал данный способ, версия osstore 1541, сделал всё 1 в 1, создал лейаут, ид16, подключил категорию на этот лейаут, отредактировал category.php

в результате выводится тот же самый шаблон category.tpl, а subcategory.tpl нет.

 

upd в версии 1541 нужно менять строки 350 в шаблоне category.php

всё подключилось!

Спасибо за тестирование на 1541, я на нем не проверял (только на 1551)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 17.02.2014 в 01:27, Waha сказал:

Задача не раз подымалась - "Как сделать свой шаблон для категорий?"

И вот тоже столкнулся с такой штукой, но все что пишут в "интернетах" не подходит, так как по тем инструкциям можно назначить шаблон только для категории с определенным ID.
Я решил сделать все по-другому. Может быть не совсем правильно, но все же думаю идея заслуживает внимания.
 

И так, нам надо вывести категорию (или несколько категорий) с другим шаблоном. Для этого я решил использовать схемы вывода.

Создаем новую схему  - Система - Дизайн - Схемы   - Назовем ее "Подкатегория" и id у нее - '12'

В админке у нужной категории на вкладке "Дизайн" выбираете созданную схему "Под категория"

 

Теперь в папке с шаблоном создаете шаблон для вывода вашей "особенной" категории к примеру catalog/view/theme/.../product/subcategory.tpl - содержимое можно взять с оригинала category.tpl (и изменить под себя)

 

Теперь в контролере категорий - 


catalog/controller/product/category.php

Задаем определение схемы отображения:

после 10 строки $this->load->model('tool/image'); 

 

добавляем


if ('product/category' && isset($this->request->get['path'])) {
$path = explode('_', (string)$this->request->get['path']);
$this->data['layout_id'] = $this->model_catalog_category->getCategoryLayoutId(end($path)); 
}

дальше находим примерно 405 строка (в версии 1.5.4.1 - 350 строка)


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';
}

И заменяем на


if ($this->data['layout_id'] == 12) {$this->template = $this->config->get('config_template') . '/template/product/subcategory.tpl';
} elseif (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';
} 

где 12 это id вашей схемы "Подкатегория", а subcategory.tpl ваш файл с шаблоном вывода категории

 

Все теперь шаблон для вашей категории будет браться из файла subcategory.tpl

Аналогично можно сделать и для информационных страниц!!!

 

Не забудьте, что модули тоже придется вывести в схему "Подкатегория"

приветствую. В опенкарт 2.2 и дальше в controller/product/category.php вторая замена выглядит иначе. Что здесь можно поменять, чтоб задать условие для определённых значений id категорий?

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category.tpl')) {
                $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/product/category.tpl', $data));
            } else {
                $this->response->setOutput($this->load->view('default/template/product/category.tpl', $data));
            }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От krutoperdoff
      Доброго времени суток всем!
      Коллеги, подскажите, плиз, возникла такая проблема http://joxi.ru/4Ak54KPCyJykwm
      В категории 4 раза дублируются подкатегории, как видите на скрине. В оригинале шаблона такого не было, в чём может быть проблема, куда залезть посмотреть?
    • От ibond
      350.00 руб
      Скачать/Купить дополнение


      Фильтр товаров в админке по производителю, категории, артикулу, изображению и ID
      Дополнение добавляет возможность фильтровать товары в административной панели Opencart по производителям, категориям, артикулу (Sku), изображениям и ID товара. Добавляет колонки ID товара, Артикул, Производители и  Категории в списке товаров и позволяет включать/отключать для просмотра колонки по выбору. Добавлена возможность выбора для фильтрации нескольких производителей и/или категорий.
       
      Работает (тестировался): OpenCart 3.0.0.0, 3.0.1.1, 3.0.1.2, 3.0.2.0
       
      Установка:
      Загрузить файл в установках расширений, перейти в модификаторы и обновить.
       
      Как обновить, тут:
       
      Демонстрация (admin):
      Логин: demo / Пароль: demo
       
      Что нового в версии 3.1.0:
      Добавлена возможность выбора для фильтрации нескольких производителей и/или категорий. Добавлена колонка производители в список товаров. Добавлена сортировка по производителю.  
      Что нового в версии 3.0.1:
      Исправлены мелкие ошибки. Добавил ibond Добавлено 16.10.2018 Категория Фильтры Системные требования Сайт разработчика Старая цена 400 Метод активации Без активации Ioncube Loader Нет OpenCart 3.0 ocStore 3.0 OpenCart.Pro, ocShop Не проверялось  
    • От ibond
      Дополнение добавляет возможность фильтровать товары в административной панели Opencart по производителям, категориям, артикулу (Sku), изображениям и ID товара. Добавляет колонки ID товара, Артикул, Производители и  Категории в списке товаров и позволяет включать/отключать для просмотра колонки по выбору. Добавлена возможность выбора для фильтрации нескольких производителей и/или категорий.
       
      Работает (тестировался): OpenCart 3.0.0.0, 3.0.1.1, 3.0.1.2, 3.0.2.0
       
      Установка:
      Загрузить файл в установках расширений, перейти в модификаторы и обновить.
       
      Как обновить, тут:
       
      Демонстрация (admin):
      Логин: demo / Пароль: demo
       
      Что нового в версии 3.1.0:
      Добавлена возможность выбора для фильтрации нескольких производителей и/или категорий. Добавлена колонка производители в список товаров. Добавлена сортировка по производителю.  
      Что нового в версии 3.0.1:
      Исправлены мелкие ошибки.
    • От spectre
      300.00 руб
      Скачать/Купить дополнение


      Скрытие категорий от групп покупателей Hide Categories From Customer Groups 2.1-2.3.x
      ЧЕРНАЯ ПЯТНИЦА! ВСЕ ДОПОЛНЕНИЯ ПО 300!
       
      Модуль позволяет скрыть категории товаров и товары которые в них находятся от некоторых групп покупателей путем установки галочки напротив группы покупателей в настройках категории (на скриншоте)
       
      Примеры использования: 
      - Оптовые категории и и товары в них и розничные, которые не пересекаются
      - "Временные категории" для обработки прайсов, недооформленных товаров и тп
      - Переучет в какой-либо категории
      - и многое другое
       
       
      Версия для 2.3.x и 2.1.х
       
      Кому нужно - могу дать потрогать демо
       
      Адаптация под версии линейки 2.х - бесплатная после покупки
       
       
      ОЧЕНЬ ВАЖНО!!!
      Модуль использует стандартный функционал и изменяет стандартные модели категории и товара для определения доступа
       
      Если у вас какой-то модуль супермегаменю или суперстена категорий, который использует свои модели, отличающиеся от "родных" - адаптация недорогая но платная
       
      Под популярные шаблоны - >300 покупок на форуме - адаптация бесплатная, под остальные - недорого, пишите в лс
       
      Уточняйте эти моменты ДО покупки!
       
       
      Имеются патчи под шаблоны:
      1. Newstore
      2. To be continued
       
      Лицензия - 1 домен
       
      Какие-то вопросы - пишите в личку, разберемся
       
      Добавил spectre Добавлено 21.06.2018 Категория Модули Системные требования Сайт разработчика https://freelancer.od.ua Старая цена 800 Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop Opencart.pro 2.3  
    • От spectre
      ЧЕРНАЯ ПЯТНИЦА! ВСЕ ДОПОЛНЕНИЯ ПО 300!
       
      Модуль позволяет скрыть категории товаров и товары которые в них находятся от некоторых групп покупателей путем установки галочки напротив группы покупателей в настройках категории (на скриншоте)
       
      Примеры использования: 
      - Оптовые категории и и товары в них и розничные, которые не пересекаются
      - "Временные категории" для обработки прайсов, недооформленных товаров и тп
      - Переучет в какой-либо категории
      - и многое другое
       
       
      Версия для 2.3.x и 2.1.х
       
      Кому нужно - могу дать потрогать демо
       
      Адаптация под версии линейки 2.х - бесплатная после покупки
       
       
      ОЧЕНЬ ВАЖНО!!!
      Модуль использует стандартный функционал и изменяет стандартные модели категории и товара для определения доступа
       
      Если у вас какой-то модуль супермегаменю или суперстена категорий, который использует свои модели, отличающиеся от "родных" - адаптация недорогая но платная
       
      Под популярные шаблоны - >300 покупок на форуме - адаптация бесплатная, под остальные - недорого, пишите в лс
       
      Уточняйте эти моменты ДО покупки!
       
       
      Имеются патчи под шаблоны:
      1. Newstore
      2. To be continued
       
      Лицензия - 1 домен
       
      Какие-то вопросы - пишите в личку, разберемся
       
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.