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

Как вывести дочерние категории из родительской по её ID?


ravlex

Recommended Posts

Нужно выводить список дочерних категорий из родительской. Родительскую категорию я хочу определять сам по её ID.

 

В header.php я вставил такой код:

 

foreach ($categories as $category) {
			if ($category['top']) {
				// Level 2
				$children_data = array();

				$children = $this->model_catalog_category->getCategories($category['category_id']);
                $count = 0;
				foreach ($children as $child) {
					$filter_data = array(
						'filter_category_id'  => $child['category_id'],
						'filter_sub_category' => true
					);

					$children_data[] = array(
                        'category_id' => $child['category_id'],
						'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
						'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']),
                        'limit'              => 7
					);
                    $count++;
                    if ($count >= 7) {
                        break;
                    }
				}

				// Level 1
				$data['categories'][] = array(
                    'category_id' => $category['category_id'],
					'name'     => $category['name'],
					'children' => $children_data,
					'column'   => $category['column'] ? $category['column'] : 1,
					'href'     => $this->url->link('product/category', 'path=' . $category['category_id'])
				);

			}

		}

Но вот что вставлять в header.tpl - не знаю. Очень надеюсь на помощь.

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


$children = $this->model_catalog_category->getCategories($category['category_id']);

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

$children = $this->model_catalog_category->getCategories($category['category_id']);

А можно поподробней расписать (разжевать), пожалуйста? 

Как потом вывести в tpl?

Змінено користувачем ravlex
Надіслати
Поділитися на інших сайтах


$children = $this->model_catalog_category->getCategories($category['category_id']);

У меня меню формируется вручную. Нужно в одном месте вывести подкатегории одной родительской категории. 

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


$children = $this->model_catalog_category->getCategories($category['category_id']);

<?php foreach ($category['tester'] as $child) { ?>

<a href="<?php echo $child['href']; ?>"> - <?php echo $child['name']; ?></a>

<?php } ?>

Вот так пытаюсь вывести все подкатегории из родительской категории с URL "tester".

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


У меня меню формируется вручную. Нужно в одном месте вывести подкатегории одной родительской категории. 

Ну так и делайте, все верно в цикле крутите

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

Ну так и делайте, все верно в цикле крутите

Получаю вот что:

 

  • Notice: Undefined index: tester in /var/www/www-root/data/www/www.site.com/catalog/view/theme/default/template/common/header_main.tpl on line 146Warning: Invalid argument supplied for foreach() in /var/www/www-root/data/www/www.site.com/catalog/view/theme/default/template/common/header_main.tpl on line 146
Надіслати
Поділитися на інших сайтах


 

Получаю вот что:

 

  • Notice: Undefined index: tester in /var/www/www-root/data/www/www.site.com/catalog/view/theme/default/template/common/header_main.tpl on line 146Warning: Invalid argument supplied for foreach() in /var/www/www-root/data/www/www.site.com/catalog/view/theme/default/template/common/header_main.tpl on line 146

 

там id должно быть а не 

 

 

 

 с URL "tester".
Надіслати
Поділитися на інших сайтах

там id должно быть а не 

<?php foreach ($category['69'] as $child) { ?>

<a href="<?php echo $child['href']; ?>"> - <?php echo $child['name']; ?></a>

<?php } ?>

Указываю ID таким образом, но ошибка та же. Что я делаю не так?(

Змінено користувачем ravlex
Надіслати
Поділитися на інших сайтах


Контроллер

$data['tester'] = $this->model_catalog_category->getCategories(69);

tpl

<?php foreach ($tester as $test) { ?>

<a href="<?php echo $test['href']; ?>"> - <?php echo $test['name']; ?></a>

<?php } ?>

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

Контроллер 
$data['tester'] = $this->model_catalog_category->getCategories(69);

tpl
<?php foreach ($tester as $test) { ?>
<a href="<?php echo $test['href']; ?>"> - <?php echo $test['name']; ?></a>
<?php } ?>

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

<b>Notice</b>:%20Undefined%20index:%20href%20in%20<b>/var/www/www-root/data/www/www.site.com/catalog/view/theme/default/template/common/header_main.tpl</b>%20on%20line%20<b>160</b>

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


$testers = $this->model_catalog_category->getCategories(69);

$data['testers'] = [];

foreach ($testers as $test)

{

$data['testers'] = [

'name' => $test['name'],

'href' => $this->url->link('product/category', 'path=' . $test['category_id'])

];

}

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

$testers = $this->model_catalog_category->getCategories(69);

$data['testers'] = [];

foreach ($testers  as $test) 
{
  $data['testers'] = [
    'name' => $test['name'],
    'href' => $this->url->link('product/category', 'path=' . $test['category_id'])
  ];
}


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

 

Warning: Illegal string offset 'name' in /var/www/www-root/data/www/www.site.com/catalog/view/theme/default/template/common/header_main.tplon line 158S Warning: Illegal string offset 'name' in /var/www/www-root/data/www/www.site.com/catalog/view/theme/default/template/common/header_main.tplon line 158h

Контроллер:

$testers = $this->model_catalog_category->getCategories(69);    
 $data['testers'] = [];

        foreach ($testers as $test)
        {
            $data['testers'] = [
                'name' => $test['name'],
                'href' => $this->url->link('product/category', 'path=' . $test['category_id'])
            ];
        

Шаблон:

       <?php foreach ($testers as $test) { ?>
                            <a href="<?php echo $test['href']; ?>"> - <?php echo $test['name']; ?></a>
                            <?php } ?>
Змінено користувачем ravlex
Надіслати
Поділитися на інших сайтах


смотрите по коду, у меня нет хрустального шара 

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

в контроллер

$testers = $this->model_catalog_category->getCategories(69);    
$data['testers'] = array();

foreach ($testers as $test)
{
  $data['testers'][] = array(
    'name' => $test['name'],
    'href' => $this->url->link('product/category', 'path=' . $test['category_id'])
  );
}
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

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

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

Important Information

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