コード例 #1
0
 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;
 }