public static function setBestMatchCategory(&$items, $categories, $object = 0)
{
if (!empty($items)) {
if ($object) {
foreach ($items as $k => &$v) {
if (isset($v->count_categories) && (int) $v->count_categories > 1) {
// preferred catid set
if (isset($v->preferred_catid) && (int) $v->preferred_catid > 0) {
$catidA = explode(',', $v->catid);
$cattitleA = explode(',', $v->cattitle);
$cataliasA = explode(',', $v->catalias);
$key = array_search((int) $v->preferred_catid, $catidA);
$v->catid = $catidA[$key];
$v->cattitle = $cattitleA[$key];
$v->catalias = $cataliasA[$key];
continue;
}
$catid = explode(',', $v->catid);
$id = (int) $v->id;
$catid = (int) $catid[0];
if (isset($categories[$id]['catid']) && isset($catid) && (int) $categories[$id]['catid'] == $catid) {
continue;
}
// Try to find better category
if (isset($categories[$id]['catid']) && isset($id)) {
$newItems = self::getCategoryByProduct($id, $categories[$id]['catid']);
if (isset($newItems['catid']) && isset($newItems['cattitle']) && isset($newItems['catalias'])) {
$v->catid = $newItems['catid'];
$v->cattitle = $newItems['cattitle'];
$v->catalias = $newItems['catalias'];
}
}
}
}
} else {
foreach ($items as $k => &$v) {
if (isset($v['count_categories']) && (int) $v['count_categories'] > 1) {
// preferred catid set
if (isset($v['preferred_catid']) && (int) $v['preferred_catid'] > 0) {
$catidA = explode(',', $v['catid']);
$cattitleA = explode(',', $v['cattitle']);
$cataliasA = explode(',', $v['catalias']);
$key = array_search((int) $v['preferred_catid'], $catidA);
$v['catid'] = $catidA[$key];
$v['cattitle'] = $cattitleA[$key];
$v['catalias'] = $cataliasA[$key];
continue;
}
$id = (int) $v['id'];
$catid = (int) $v['catid'];
if (isset($categories[$id]['catid']) && isset($catid) && (int) $categories[$id]['catid'] == $catid) {
continue;
}
// Try to find better category
if (isset($categories[$id]['catid']) && isset($id)) {
$newItems = self::getCategoryByProduct($id, $categories[$id]['catid']);
if (isset($newItems['catid']) && isset($newItems['cattitle']) && isset($newItems['catalias'])) {
$v['catid'] = $newItems['catid'];
$v['cattitle'] = $newItems['cattitle'];
$v['catalias'] = $newItems['catalias'];
}
}
}
}
}
}
return $items;
}