/** * Sets value of property * See RM_Store_Object::__set() for details * * @param string $name * @param mixed $value * @return void */ public function __set($name, $value) { // при переопределении некоторых полей надо пересчитать отчет и обнулить ссылки на объекты static $field2brick; if (!$field2brick) { $field2brick = array_flip($this->_brick2field); } if (isset($field2brick[$name]) && $this->{$name} !== $value) { if ($name == 'category_id') { $this->_setCategory($value); } $this->needRecalc(1); unset($this->_brick[$field2brick[$name]]); } // выставим некоторые свойства по умолчанию /* if ($name == 'parent_id' && is_null($value)) $value = 0; if ($name == 'stable' && !$value) $value = 0;*/ if ($name == 'is_dynamic' && !$value) { $value = 0; } /* if ($name == 'brand_id' && !$value) $value = NULL;*/ if ($name == 'is_dynamic') { $this->_setDynamic($value); } if (in_array($name, qw2('category_id detail_type')) && $value != $this->_propsInitial[$name]) { // M('Trace')->trace('strategy','props: '.$name." new value: ".$value." old_value: ".$this->_propsInitial[$name]); $this->grouping(array()); $this->setAutoGroup('top10'); } parent::__set($name, $value); }