1 <?php
2 class UActiveRecord extends CActiveRecord
3 {
4 5 6 7 8 9
10 public function setAttributes($values,$safeOnly=true)
11 {
12 foreach ($this->widgetAttributes() as $fieldName=>$className) {
13 if (isset($values[$fieldName])&&class_exists($className)) {
14 $class = new $className;
15 $arr = $this->widgetParams($fieldName);
16 if ($arr) {
17 $newParams = $class->params;
18 $arr = (array)CJavaScript::jsonDecode($arr);
19 foreach ($arr as $p=>$v) {
20 if (isset($newParams[$p])) $newParams[$p] = $v;
21 }
22 $class->params = $newParams;
23 }
24 if (method_exists($class,'setAttributes')) {
25 $values[$fieldName] = $class->setAttributes($values[$fieldName],$this,$fieldName);
26 }
27 }
28 }
29 parent::setAttributes($values,$safeOnly);
30 }
31
32 public function behaviors(){
33 return Yii::app()->getModule('user')->getBehaviorsFor(get_class($this));
34 }
35 }