/protected/modules/user/components/UActiveRecord.php

https://bitbucket.org/mkwiek/hairdresser · PHP · 35 lines · 28 code · 1 blank · 6 comment · 4 complexity · 589ad5628d259bafff2cf628fa1040b0 MD5 · raw file

  1. <?php
  2. class UActiveRecord extends CActiveRecord
  3. {
  4. /**
  5. * Extends setAttributes to handle active date fields
  6. *
  7. * @param $values array
  8. * @param $safeOnly boolean
  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. public function behaviors(){
  32. return Yii::app()->getModule('user')->getBehaviorsFor(get_class($this));
  33. }
  34. }