public function eavValue($name) { $value = $this->getEavAttribute($name); $attribute = $this->getEavAttributeInstance($name); if (empty($value) && $attribute->data_type != EavAttribute::DATA_TYPE_CHECKBOX) { return ''; } if ($this->isEavAttributeMultivalued($name)) { // Список вариантов if ($attribute->data_type == EavAttribute::DATA_TYPE_VARIANT) { //$variants = EavVariant::model()->findAll('`id` IN (' . implode(', ', $value) . ')'); //$value = implode(', ', CHtml::listData($variants, 'id', 'title')); if (!is_array($value)) { $value = array($value); } $variants = array_intersect_key(EavVariant::getVariantsValuesList(), array_flip($value)); $value = implode(', ', $variants); } elseif (($attribute->data_type == EavAttribute::DATA_TYPE_INT || $attribute->data_type == EavAttribute::DATA_TYPE_NUMERIC) && $attribute->is_range && count($value) > 1) { $value = $value[0] . '-' . $value[count($value) - 1]; } else { $value = implode(', ', $value); } } elseif ($attribute->data_type == EavAttribute::DATA_TYPE_CHECKBOX) { $value = $value ? 'Да' : 'Нет'; } elseif ($attribute->data_type == EavAttribute::DATA_TYPE_MONEY) { $value = $this->getPriceLabel($name); } elseif ($attribute->data_type == EavAttribute::DATA_TYPE_VARIANT) { //$variants = EavVariant::model()->findAll('`id` IN (' . $value . ')'); //$value = implode(', ', CHtml::listData($variants, 'id', 'title')); if (!is_array($value)) { $value = array($value); } $variants = array_intersect_key(EavVariant::getVariantsValuesList(), array_flip($value)); $value = implode(', ', $variants); } return $value; }