Jump to content


Photo
- - - - -

Не могу получить id подкатегорий


Best Answer axeld , 16 November 2015 - 10:51

 

Вот так должно сработать

$catIds = $item->getRelatedCategoryIds();
 
if ($primary = $item->getPrimaryCategory()) {
    $children = $primary->getChildren();
    foreach ($children as $child) {
        if (in_array($child->id, $catIds)) {
            echo $child->name . ', ';
        }
    }
 
}

 

Да круто, вcе работает !

Go to the full post


  • This topic is locked This topic is locked
5 replies to this topic

#1 axeld

axeld
  • JBZoo User (rus)
  • User rate: 0.8
  • posts: 661
  • topics: 194

Posted 10 November 2015 - 11:17

Здравствуйте, не могу получить id категории в модуле mod_jbzoo_item (/modules/mod_jbzoo_item/tmpl)

$category = $item->getPrimaryCategory();
$category = $category->getChildren();
echo $category->id;

 <hr>
У меня товар в основной категории и в подкатегории одновременно. Основную категорию получаю так

$category = $item->getPrimaryCategory();
echo $category->id;

А вот под категорию получить не могу  :(


  • 0

#2 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 10 November 2015 - 11:23

В первом листинге кода переменная category переопределяется и в итоге getChildren вернет массив, а вы работаете с ним как с объектом.

Примерно так...
$childs = $category->getChildren();
if ($childs) {
    reset($childs);
    echo current($childs)->id;
}

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 axeld

axeld
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.8
  • posts: 661
  • topics: 194

Posted 10 November 2015 - 14:40

Пишу так 

$childs = $item->getPrimaryCategory()->getChildren();
	foreach ($childs as $child)
	{
		echo $child->id."<br>";
	}

Выводит все подкатегории, оно и понятно. Но как мне все таки выбрать нужную подкатегорию?
Ведь у $item только она подкатегория, а тут мы сначала находим верхнюю категорию, а потом все остальные подкатегории. Все не нужны.

Как внутри  foreach сделать проверку ?


Edited by axeld, 10 November 2015 - 14:41.

  • 0

#4 axeld

axeld
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.8
  • posts: 661
  • topics: 194

Posted 11 November 2015 - 16:38

Ни у кого нет ответа?


  • 0

#5 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 12 November 2015 - 16:20

Вот так должно сработать

$catIds = $item->getRelatedCategoryIds();
 
if ($primary = $item->getPrimaryCategory()) {
    $children = $primary->getChildren();
    foreach ($children as $child) {
        if (in_array($child->id, $catIds)) {
            echo $child->name . ', ';
        }
    }
 
}

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#6 axeld

axeld
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.8
  • posts: 661
  • topics: 194

Posted 16 November 2015 - 10:51   Best Answer

 

Вот так должно сработать

$catIds = $item->getRelatedCategoryIds();
 
if ($primary = $item->getPrimaryCategory()) {
    $children = $primary->getChildren();
    foreach ($children as $child) {
        if (in_array($child->id, $catIds)) {
            echo $child->name . ', ';
        }
    }
 
}

 

Да круто, вcе работает !


  • 0




Click to return to top of page in style!