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

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

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

И вот тоже столкнулся с такой штукой, но все что пишут в "интернетах" не подходит, так как по тем инструкциям можно назначить шаблон только для категории с определенным 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));
            }

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


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

 

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


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

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

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

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

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

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

Войти

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

Войти

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

    • От alexandrkrot1993
      300 RUB
      Переглянути файл


      Галерея товара в категории

      Галерея товара в категории
      Это продолжение бесплатного модификатора .
      Добавлены настройки - сможете настроить под себя.
      Добавляет миникартинки товаров .
      При наведении на миникартинки, происходит смена главной картинки товара.
      можно настроить

      Добавлены стрелки прокрутки, если картинок много

       
      Данный модуль представлен для default темы, интеграция под разные темы будет происходить постепенно и по запросу в личные сообщения
      Демо
      Перед покупкой напишите свою тему в лс!
       
       
      Автор alexandrkrot1993 долучення 25.10.18 Категорія Слайдшоу, баннеры, галереи Системные требования Сайт разработчика http://pechenki.top Старая цена 350 Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1  
    • От alexandrkrot1993
      Галерея товара в категории
      Это продолжение бесплатного модификатора .
      Добавлены настройки - сможете настроить под себя.
      Добавляет миникартинки товаров .
      При наведении на миникартинки, происходит смена главной картинки товара.
      можно настроить

      Добавлены стрелки прокрутки, если картинок много

       
      Данный модуль представлен для default темы, интеграция под разные темы будет происходить постепенно и по запросу в личные сообщения
      Демо
      Перед покупкой напишите свою тему в лс!
       
       
    • От 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:
      Исправлены мелкие ошибки.
  • Последние посетители   0 пользователей онлайн

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

×

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

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