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

Пытаюсь создать отдельную схему для некоторых категорий

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

Добрый день!

Хочу для одной из категорий сделать другой шаблон (categorymeb), чем для остальных(category), и для этого создала отдельную схему.

 

1. Скопировала контроллер категории в ту же, переименовала его, внутри переименовала класс, пути к модели и пути к tpl

2. Скопировала tpl категории, внесла в него тестовое изменение, переименовала

3. Скопировала модель категории, переименовала

4. Добавила схему с путём product/categorymeb

 

Контроллер подключается нормально - это я вижу по тому, что можно на этот шаблон активировать модули и они выведутся, а вот tpl используется почему-то стандартный, product/category , а не product/categorymeb. Видимо, в контроллере нужно где-то еще поменять что-то, но я не разбираюсь в php, помогите, пожалуйста, что не так?

 

В приложении контроллер, вьюха и модель (на серваке лежат в тех же папках, что стандартные файлы категории)

Вьюху переименовала в пхп, т.к. tpl не загружается

 

 

 

 

 

categorymebКОНТРОЛЛЕР.php

categorymebВЬЮ.php

categorymebМОДЕЛЬ.php

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


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

а в настройках категории на вкладке Дизайн выбрали схему свою?

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


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

Лень стало проверять код, просто закинул ваши файлы к себе на тестовый сайт - всё у вас верно и работает. http://1.live-drive.ru/index.php?route=product/categorymeb&path=25

 

Только вот не проще было сделать такой костыль:

if ($category_id == 'айди_нужной_категории' ) {
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/categorymeb.tpl')) {
$this->template = $this->config->get('config_template') . '/template/product/categorymeb.tpl';
} else {
$this->template = 'default/template/product/categorymeb.tpl';
}
} else {
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';
}
}
Изменено пользователем serega-lomik

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


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

 

Лень стало проверять код, просто закинул ваши файлы к себе на тестовый сайт - всё у вас верно и работает. http://1.live-drive.ru/index.php?route=product/categorymeb&path=25

 

Только вот не проще было сделать такой костыль:

if ($category_id == 'айди_нужной_категории' ) {
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/categorymeb.tpl')) {
$this->template = $this->config->get('config_template') . '/template/product/categorymeb.tpl';
} else {
$this->template = 'default/template/product/categorymeb.tpl';
}
} else {
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';
}
}

 

 

 

Такая же проблема, сделал всё так же как и Tania999, но свой шаблон не загружается. Почему может такое быть?

Какие изменения вносил:

1) создал в "controller/product" файл model (по аналогии с category) и изменил следующие строчки:

class ControllerProductCategory extends Controller {  
	public function index() { 
		$this->language->load('product/category');
		
		$this->load->model('catalog/category');
		
		$this->load->model('catalog/product');
		
		$this->load->model('tool/image'); 

на:

class ControllerProductModel extends Controller {  
	public function index() { 
		$this->language->load('product/category');
		
		$this->load->model('catalog/model');
		
		$this->load->model('catalog/product');
		
		$this->load->model('tool/image'); 

и:

			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 (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/model.tpl')) {
				$this->template = $this->config->get('config_template') . '/template/product/model.tpl';
			} else {
				$this->template = 'default/template/product/model.tpl';
			}

2) создал в "model/catalog" файл model (по аналогии с category) и изменил следующие строчки:

class ModelCatalogCategory extends Model {

на:

class ModelCatalogModel extends Model {

3) создал шаблон model.tpl (по аналогии с category).

4) Создал схему "модель" где указал путь "product/model".

5) выбрал у категории схему "модель".

 

Модули подключаются к этой схеме (они собственно подключались изначально после того как создал схему), но вот шаблон почему то ни как не хочет! Что я делаю не так?

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

 

Возможно можно сделать вывод нужного шаблона категории для определённой вложенности, то есть имются категории такого вида: Легковые шины - производитель - модель, вот для модель требуется свой шаблон.

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


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

Добрый день!

Хочу для одной из категорий сделать другой шаблон (categorymeb), чем для остальных(category), и для этого создала отдельную схему.

 

1. Скопировала контроллер категории в ту же, переименовала его, внутри переименовала класс, пути к модели и пути к tpl

2. Скопировала tpl категории, внесла в него тестовое изменение, переименовала

3. Скопировала модель категории, переименовала

4. Добавила схему с путём product/categorymeb

 

Контроллер подключается нормально - это я вижу по тому, что можно на этот шаблон активировать модули и они выведутся, а вот tpl используется почему-то стандартный, product/category , а не product/categorymeb. Видимо, в контроллере нужно где-то еще поменять что-то, но я не разбираюсь в php, помогите, пожалуйста, что не так?

 

В приложении контроллер, вьюха и модель (на серваке лежат в тех же папках, что стандартные файлы категории)

Вьюху переименовала в пхп, т.к. tpl не загружается

 

Вы решили как нибудь данную проблему?

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


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

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

if ($category_id == 'айди_нужной_категории' ) {
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/categorymeb.tpl')) {
$this->template = $this->config->get('config_template') . '/template/product/categorymeb.tpl';
} else {
$this->template = 'default/template/product/categorymeb.tpl';
}
} elseif ($category_id == 'айди2_нужной_категории' ){
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/categorymeb2.tpl')) {
$this->template = $this->config->get('config_template') . '/template/product/categorymeb2.tpl';
} else {
$this->template = 'default/template/product/categorymeb2.tpl';
}
} else {
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 ($category_id == 'айди_нужной_категории' ) {
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/categorymeb.tpl')) {
$this->template = $this->config->get('config_template') . '/template/product/categorymeb.tpl';
} else {
$this->template = 'default/template/product/categorymeb.tpl';
}
} elseif ($category_id == 'айди2_нужной_категории' ){
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/categorymeb2.tpl')) {
$this->template = $this->config->get('config_template') . '/template/product/categorymeb2.tpl';
} else {
$this->template = 'default/template/product/categorymeb2.tpl';
}
} else {
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';
}
}

 

 

хм добавить 1000 строк кода что бы прописать 50 категорий, неужели нет более простого способа?

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


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

Смотрел уже, конечно вопрос решает, но огорчает то что надо опять же создавать кучу лишних шаблонов... думал что можно как то по другому вопрос решить, но видимо нет, жаль. Спасибо за помощь.

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


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

 

if ($category_id == 'айди_нужной_категории' ) {
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/categorymeb.tpl')) {
$this->template = $this->config->get('config_template') . '/template/product/categorymeb.tpl';
} else {
$this->template = 'default/template/product/categorymeb.tpl';
}
} elseif ($category_id == 'айди2_нужной_категории' ){
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/categorymeb2.tpl')) {
$this->template = $this->config->get('config_template') . '/template/product/categorymeb2.tpl';
} else {
$this->template = 'default/template/product/categorymeb2.tpl';
}
} else {
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';
}
}

 

 

А подскажите ещё такой момент, если я этим способом буду прописывать категории, не повлияет ли это на нагрузку в целом?

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


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

 

А вот это похоже то что нужно, с этим модулем ещё не сталкивался, большое спасибо!

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


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

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

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

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

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

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

Войти

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

Войти

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

    • От Sha
      300.00 руб
      Скачать/Купить дополнение


      Менеджер модулей "Freyr 1" Визуальный редактор шаблонов.
      Вышла версия для OpenCart, ocStore 2.1.x.x
      Визуальный редактор схем и расположения модулей.
      Настройка модулей opencart, для admin панели.
      Позволяет легко настроить внешний вид Вашего интернет магазина. ~ по типу "конструктор сайта" Opencart.
      Добавлена новая функция позволяющая изменить заголовок модуля. например заменить "Рекомендуемые" на "Мы рекомендуем".
      (тестировался на ocStore 1.5.5.1.1, 1.5.5.1.2) файл ocStore-panel-1.8.1.zip
      (работает на ocStore 1.5.4... и чистом OpenCart - отдельный файл) freyr-(ocStore_1.5.4-and-empty_OpenCart).zip
      Установка
      Просто скопируйте содержимое папки [upload] в корень движка.
      Обновление
      Произведите установку новой версии поверх старой, заменяя файлы модуля.
      Важно
      Модуль не затирает, не заменяет ни каких файлов движка,
      тем не менее рекомендуем перед установкой делать бэкап файлов, а перед началом работы,
      настоятельно рекомендуем сделать бэкап базы данных!!!
      Дополнение предоставляется по принципу "Как есть", Разработчик не гарантирует отсутствия ошибок, которые могут нарушить работу компьютера и/или привести к потере данных. Также, если в код магазина было внесено много изменений, то работоспособность модуля может быть нарушена.Чем больше сторонних модулей, расширений, редакций - тем меньше "гарантий" нормальной работы.
      ДЕМО Panel Regularize "Freyr"
      нажать (сверху справа) кнопку "Быстро войти!"
      или имя пользователя: login пароль: login
      (демонстрационная ограниченная версия)
      ПОДРОБНЕЙ НА САЙТЕ
      Лицензия
      - скачать модуль можно только на форуме opencartforum.com
      - здесь представлено описание и обсуждение багов или доработок модуля (предлагайте)
      остальные способы распространения opencart "Freyr" левые и ни какого отношения к данному модулю не имеют)))
      - Шаблон реализуется по принципу "1 покупка – 1 доменное имя"
      - Запрещается передавать файлы модуля третьим лицам, как на платной, так и на безвозмездной основе.
      .
      Добавил Sha Добавлено 30.01.2014 Категория Редакторы Системные требования Сайт разработчика r.konotop.info Старая цена Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop  
    • От zebratratata
      400.00 руб
      Скачать/Купить дополнение


      ZLayouts
      ZLaoyuts предназначен для создания своих схем для вывода модулей.
      Если Вам требуется вывести модуль на определенной странице, то этот модуль, то что Вы ищете.
      С его помощью вы сможете создать список страниц на которых надо показывать модули, или наоборот список страниц на которых не надо выводить модули.
      Возможности:
      - создание списка по категориям, товарам, производителям, статьям
      - создание списка по урлам, а также "route"
      Демка
      log/pass demo
      http://zebratratata.pp.ua
      zebratratata.pp.ua/admin/index.php?route=module/zlayouts
      Проверено на версиях OC 1.5.4.x - 1.5.6.x , ocstore 1.5.5.x
      Для работы нужен vqmod, если нету, есть инструкция в архиве по установке без него
      Если нужна помощь с установкой, или нашли баг, или есть что предложить по модулю пишите - zebratratata@gmail.com или skype dedhater
      Установка: просто скопируйте файлы из папки upload в корень сайта
      Добавил zebratratata Добавлено 31.03.2015 Категория Модули Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0
      1.5.6.2
      1.5.6.1
      1.5.6 ocStore 2.3
      2.2
      2.1
      1.5.5.1.2 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х  
    • От ckopnio
      300.00 руб
      Скачать/Купить дополнение


      Модуль контактов с поддержкой карт
      Не стесняйтесь писать в личку перед покупкой моих модулей. Это может Вам сохранить деньги и нервы, а мне только нервы)))
      Модуль для вывода контактной информации.
      Поддерживает:
      Адрес магазина (если оставить пустым, использует настройки магазина)
      E-Mail (если оставить пустым, использует настройки магазина)
      Телефон (если оставить пустым, использует настройки магазина)
      Факс (если оставить пустым, использует настройки магазина)
      Карта (GoogleMaps или Яндекс.Карты)

      Протестировано на ocStore 1.5.3.1
      Добавил ckopnio Добавлено 12.11.2012 Категория Модули  
    • От w1r3d
      Приветствую!
       
      Есть сайт на 2.3.
      Нужно разместить на главной ролик на ютубе и форму плечом к плечу. (форма заказа или обратной связи) 

      Слаб в формах, решил поискать модуль, все они вставляются через html/php (напрямую написать в tpl) или через схему.
      Через схему получается по центру, как я понимаю есть модули с кучей позиций для вставки модулей, но это разовая задача, не думаю, что стоит для этого тратить 50$.
       
       
      Каким образом это все вставить ? Пните в нужном направлении пожалуйста. 
       
      Контект на главной через html содержимое и модули. 
       
       
      Спасибо, извиняюсь за корявость.
       
      п.с. С праздником 404! 
    • От DenKP
      Добрый день! Версия 2.3.0.2
      Столкнулся с проблемой что при добавлении в схеме главной страницы баннера в левой колонки не отображается. Не отображается любой модуль, в контроллере исправлений не делал, до этого там было фиксированное меню категорий я его убрал и осталось пустое место. А уже в любой другой схеме левая колонка заполняется. 
  • Последние посетители   0 пользователей онлайн

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

×

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

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