Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

Добрый день!

Хочу для одной из категорий сделать другой шаблон (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';
}
}

 

 

 

Такая же проблема, сделал всё так же как и 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 не загружается

 

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

Надіслати
Поділитися на інших сайтах


 

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

 

 

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

Надіслати
Поділитися на інших сайтах


 

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

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.