<?php
class UActiveRecord extends CActiveRecord
{
    /**
     * Extends setAttributes to handle active date fields
     *
     * @param $values array
     * @param $safeOnly boolean
     */
    public function setAttributes($values, $safeOnly = true)
    {
	foreach ($this->widgetAttributes() as $fieldName => $className)
	{
	    if (isset($values[$fieldName]) && class_exists($className))
	    {
		$class = new $className;
		$arr = $this->widgetParams($fieldName);
		if ($arr)
		{
		    $newParams = $class->params;
		    $arr = (array) CJavaScript::jsonDecode($arr);
		    foreach ($arr as $p => $v)
		    {
			if (isset($newParams[$p]))
			    $newParams[$p] = $v;
		    }
		    $class->params = $newParams;
		}
		if (method_exists($class, 'setAttributes'))
		{
		    $values[$fieldName] = $class->setAttributes($values[$fieldName], $this, $fieldName);
		}
	    }
	}
	parent::setAttributes($values, $safeOnly);
    }
    public function behaviors()
    {
	return Yii::app()->getModule('admin')->getModule('user')->getBehaviorsFor(get_class($this));
    }
}
