예제 #1
0
 /**
  * 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);
 }