/app/functions/fn.features.php
function fn_get_all_brands()
{
$params = array(
'exclude_group' => true,
'get_descriptions' => true,
'feature_types' => array(ProductFeatures::EXTENDED),
'variants' => true,
'plain' => true,
);
list($features) = fn_get_product_features($params, 0);
$variants = array();
foreach ($features as $feature) {
if (!empty($feature['variants'])) {
$variants = array_merge($variants, $feature['variants']);
}
}
return $variants;
}
/app/schemas/block_manager/blocks.functions.php
function fn_blocks_get_brands($value, $block, $schema)
{
$items_per_page = empty($block['properties']['total_items'])
? 0
: $block['properties']['total_items'];
$params = [
'exclude_group' => true,
'get_descriptions' => true,
'feature_types' => [ProductFeatures::EXTENDED],
'variants' => true,
'variants_items_per_page' => $items_per_page,
'variants_page' => 1,
'plain' => true,
];
list($features) = fn_get_product_features($params, 0);
$variants = [];
foreach ($features as $feature) {
if (!empty($feature['variants'])) {
$variants = array_merge($variants, $feature['variants']);
}
}
return $variants;
}
Переместили из первого файла во второй (ооооочень давно) а хвост оставили.
Кстати, давно уже писал, напомню.
Если вы создавали характиристику типа бренд ТОЛЬКО для создания ОДНОЙ единственной характеристики - зачем было городить огород.
У меня вот две/три характеристики этого типа. И если ставить блок брендов с прокруткой - то там появятся не только бренды, но и варианты других характеристик этого типа.
но я у себя сделал так (добавив также кусочек кода, блокирующий вывод брендов без логотипа/картинки)
function fn_blocks_get_brands($value, $block, $schema)
{
$items_per_page = empty($block['properties']['total_items'])
? 0
: $block['properties']['total_items'];
$params = [
'exclude_group' => true,
'get_descriptions' => true,
'feature_types' => [ProductFeatures::EXTENDED],
// AVP Next line - id feuture Brand
'feature_id' =>36,
'variants' => true,
'variants_items_per_page' => $items_per_page,
'variants_page' => 1,
'plain' => true,
];
list($features) = fn_get_product_features($params, 0);
$variants = [];
foreach ($features as $feature) {
if (!empty($feature['variants'])) {
$variants = array_merge($variants, $feature['variants']);
}
}
// AVP START
if (AREA == 'C' && !empty($variants)) {
foreach ($variants as $k => $v) {
if (empty($v['image_pair'])) {
unset($variants[$k]);
}
}
}
// AVP END
return $variants;
}