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

Изменение страницы категории


4a4a

Recommended Posts

Здравствуйте, установил себе OcStore 0.1.5. Сейчас немного ее допиливаю под себя.

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

пример http://fc-shop.spb.ru/index.php?route=product/category&path=36 над выводом товаров есть 3 подкатегории Турфы, Бутсы, Зальные - место этого хочется видеть полный список категорий с подкатегориями.

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


хочется видеть полный список категорий с подкатегориями.

т.е. абсолютно все категории/подкатегории магазина?

в каком виде?

сделать то можно все, что угодно. главное правильно поставить/озвучить задачу :)

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

а с php как?

если знакомы то можете глянуть функцию (не только глянуть, но и скопировать в нужный контроллер, хотя так же достаточно снять гриф protected и обращаться прям в контроллер \module\category.php, ну это ладно сами решайте как удобнее)

protected function getCategories($parent_id, $current_path = '') { .. }
в файле ..\catalog\controller\module\category.php

для ее работы нужно загрузить

$this->load->model('catalog/category');
$this->load->model('tool/seo_url');

а сама функция вызывается

$this->getCategories($parent_id);
где $parent_id - ид родительской (в данном случае будет ид текущей категории)

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

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


в ..\catalog\controller\product\category.php

в самый конец где кончается функция index () {

вообщем перед

}
?>
вставить

protected function getCategories($parent_id, $current_path = '') {
	$output = '';
	$results = $this->model_catalog_category->getCategories($parent_id);
	if ($results) { 
		$output .= '<ul>';
    	}
		
	foreach ($results as $result) {	
		if (!$current_path) {
			$new_path = $result['category_id'];
		} else {
			$new_path = $current_path . '_' . $result['category_id'];
		}
			
		$output .= '<li>';
		$children = '';
		$children = $this->getCategories($result['category_id'], $new_path);
		$output .= '<a href="' . $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $new_path)  . '">' . $result['name'] . '</a>';
		// $output .= $result['name'] .' - '. $result['image'] .' - '. $result['description']; // доступные переменные - имя - путь к картинке - описание категории. Есть и другие но они вряд ли вам пригодятся.
        	$output .= $children;
        	$output .= '</li>'; 
	}
 
	if ($results) {
		$output .= '</ul>';
	}
		
	return $output;
}

в этом же файле после

$category_info = $this->model_catalog_category->getCategory($category_id);
вставить

$this->data['categories_all'] = $this->getCategories($category_id, $this->request->get['path']);

в файл ..\catalog\view\theme\default\template\product\category.tpl

вставить

<?php if ($categories_all) { ?>
	<? echo $categories_all; ?>
<?php } ?>
криво-косо, но список подкатегории для данной категории выводится - оформление подредактируйте в функции getCategories(), я вывел необходимые переменные, они закомментированы. Оформление за вами)
  • +1 1
Надіслати
Поділитися на інших сайтах


Вроде все как описано сделал, но выводит опять же только подкатегории, той категории в которой находишся.

У меня примерно такая структура.

Три основный категории: Аксессуары, Обувь, Одежда. В каждой будут подкатегории(в каких то уже есть в каких то нет)

Что сейчас происходит.

Когда я захожу в категорию Обувь, выводятся только подкатегории Зальные Турфы Бутсы.

Что бы хотелось видеть.

Когда я захожу в категорию Обувь(и любую другую категорию или подкатегорию), выводились опять Аксессуары-Подкатегории | Обувь-подкатегории | Одежда-подкатегории

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


попробуйте

$this->data['categories_all'] = $this->getCategories($category_id, $this->request->get['path']);
заменить на

$this->data['categories_all'] = $this->getCategories(0);
  • +1 1
Надіслати
Поділитися на інших сайтах

И еще вопрос возник по поводу вывода картинки родительской категории

// $output .= $result['name'] .' - '. $result['image'] .' - '. $result['description']; // доступные переменные - имя - путь к картинке - описание категории. Есть и другие но они вряд ли вам пригодятся.

'. $result['image'] . - понятно

а путь для <img src="???"> откуда взять?

сделал в итоге навигацию более стандартно) тему можно закрывать.

Огромное спасибо всем кто помогал!

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


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

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

Important Information

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