Дублирование функционала

/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;
}
3 лайка

Здравствуйте, @alex_vp

Спасибо за ваше сообщение.

На данный момент блок “Бренды” действительно отображает варианты из всех существующих характеристик с типом “Бренд”. Мы не можем признать это багом, однако, мы передали ваше сообщение разработчикам в качестве запроса на доработку функциональности.