yf_shop__products_get_attributes user module

Fileplugins/shop/modules/shop/yf_shop__products_get_attributes.class.php
Usemodule('shop__products_get_attributes'), URL ?object=shop__products_get_attributes

Public properties

PropertyDefaultDescription
None declared in this class.

Public methods 1

None without a leading underscore.

Methods starting with _ hooks and helpers; not routable as page actions

public function _products_get_attributes($products_ids = [])
    public function _products_get_attributes($products_ids = [])
    {
        $return_single_id = null;
        if (is_numeric($products_ids)) {
            $return_single_id = $products_ids;
            $products_ids = [$products_ids];
        }
        if (empty($products_ids)) {
            return [];
        }
        $fields_info = main()->get_data('shop_product_attributes_info');

        $Q = db()->query('SELECT * FROM ' . db('shop_product_attributes_values') . ' WHERE category_id=1 AND object_id IN (' . implode(',', $products_ids) . ')');
        $data = null;
        while ($A = db()->fetch_assoc($Q)) {
            $_product_id = $A['object_id'];

            $A['value'] = strlen($A['value']) ? unserialize($A['value'], ['allowed_classes' => false]) : [];
            $A['add_value'] = strlen($A['add_value']) ? unserialize($A['add_value'], ['allowed_classes' => false]) : [];
            foreach ((array) $A['value'] as $_attr_id => $_dummy) {
                $_price = $A['add_value'][$_attr_id];
                $_item_id = $A['field_id'] . '_' . $_attr_id;
                $_field_info = $fields_info[module('shop')->ATTRIBUTES_CAT_ID][$A['field_id']];
                $_field_info['value_list'] = strlen($_field_info['value_list']) ? unserialize($_field_info['value_list'], ['allowed_classes' => false]) : [];
                $data[$_product_id][$_item_id] = [
                    'id' => $_item_id,
                    'price' => $_price,
                    'name' => $_field_info['name'],
                    'value' => $_field_info['value_list'][$_attr_id],
                    'product_id' => $_product_id,
                ];
            }
        }
        if ($return_single_id) {
            return $data[$return_single_id];
        }
        return $data;
    }