Помогите разобраться, как получить название родительской категории не как id, а как "название"
Добрый день! Помогите, пожалуйста, сделал сниппет для получения массива ключей и их значений, все работает кроме одного никак не могу получить значение 'categories' в виде названия, как ни пробовал получаю id 'parent' подскажите как получить название. Вот сниппет:
<?php
$values[] = iconv('CP1251', 'UTF-8', $value);
$products = $modx->getCollection('modResource', array('class_key' => 'msProduct'));
foreach($products as $product)
{
$value =
[
$categories = $product->get('parent'),
$pagetitle = $product->get('pagetitle'),
$description = $product->get('description'),
$price = $product->get('price'),
$image = $product->get('image'),
$popular = $product->get('popular'),
$published= $product->get('published')
];
$array = array($values);
$site_url = MODX_SITE_URL;
if ($popular > 0) {
$a = "да";
} else {
$a = "нет";
}
if ($published > 0) {
$b = "да";
} else {
$b = "нет";
}
$key = array(
'categories'=>$categories,
'pagetitle'=>$pagetitle,
'description'=>$description,
'price'=>$price,
'image'=>$site_url.$image,
'popular'=>$a,
'published'=>$b
);
print_r ($key);
}
Комментарии: 8
$categories = $product->get('parent'),
$categories = $product->get('pagetitle'),
попробуй вот так
Спасибо, не помогло… Сниппет выводит вместо названия категории — название продукта, а нужно чтобы выводило название родительской категории в которой он размещен, так как я написал сниппет выводится id родительской категории а нужно название (извините не знаю как она правильно называется, поле называется 'parent').
вот
В паренте хранится id рродительской категории, а не название. Наверное, вот так.
$categories = $modx->getObject('modResource', $product->get('parent'));
return $categories->get('pagetitle');
$categories = $modx->getObject('modResource', $product->get('parent'));
return $categories->get('pagetitle');
Спасибо, не помогло, выводит просто название продукта
Попробуйте вставить id категории вместо $product->get('parent') и посмотреть что произойдет. Вот такой небольшой сниппет у меня работает
<?php
$pdo = $modx->getService('pdoFetch');
if ($products = $pdo->getCollection('modResource', array('class_key' => 'msProduct'))) {
foreach($products as $product)
{
$categories = $modx->getObject('modResource', $product['parent']);
print_r ('
название ресурса = '.$product['pagetitle'].', а название родителя = '.$categories->get('pagetitle'));
}
}
Спасибо выводит, сейчас попробую добавить остальное
Спасибо ElenaLelo! Это немного другой вариант все выводит подсказал Павел Романов в оригинале выглядит так
но у меня проблемы с восприятием русской кирилицы, поэтому работает вот так, если вдруг где то понадобится:
$products = $modx->getCollection('modResource', array('class_key' => 'msProduct'));
foreach($products as $product){
$product->get('popular') == 1 ? $a = "да" : $a = "нет";
$product->get('published') == 1 ? $b = "да" : $b = "нет";
if($cat = $modx->getObject('modResource', $product->get('parent'))) $cattitle = $cat->get('pagetitle');
$key = array(
'categories' => iconv('CP1251', 'UTF-8', $cattitle),
'pagetitle' => iconv('CP1251', 'UTF-8', $product->get('pagetitle')),
'description' => iconv('CP1251', 'UTF-8', $product->get('description')),
'price' => $product->get('price'),
'image' => MODX_SITE_URL . $product->get('image'),
'popular'=>$a,
'published'=>$b
);
print_r ($key);
}
:но у меня проблемы с восприятием русской кирилицы, поэтому работает вот так, если вдруг где то понадобится:
<?php
$values[] = iconv('CP1251', 'UTF-8', $value);
$products = $modx->getCollection('modResource', array('class_key' => 'msProduct'));
foreach($products as $product){
$product->get('popular') == 1 ? $a = "да" : $a = "нет";
$product->get('published') == 1 ? $b = "да" : $b = "нет";
if($cat = $modx->getObject('modResource', $product->get('parent'))) $cattitle = $cat->get('pagetitle');
$key = array(
'categories' => $cattitle,
'pagetitle' => $product->get('pagetitle'),
'description' => $product->get('description'),
'price' => $product->get('price'),
'image' => MODX_SITE_URL . $product->get('image'),
'popular'=>$a,
'published'=>$b
);
print_r ($key);
}
еще раз огромное спасибо!!!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.