public static function createFromArray(&$array, $skipActions = false) { if (empty($array['conditionClass'])) { $array['conditionClass'] = 'RuleConditionRoot'; } ActiveRecordModel::getApplication()->loadPluginClass('application.model.businessrule.condition', $array['conditionClass']); $inst = new $array['conditionClass'](); $array['instance'] = $inst; if (!empty($array['records'])) { $inst->registerRecords($array['records']); } if (!empty($array['actions']) && !$skipActions) { foreach ($array['actions'] as $action) { $inst->addAction(RuleAction::createFromArray($action)); } } if (!empty($array['sub'])) { foreach ($array['sub'] as $sub) { $inst->addSubCondition(self::createFromArray($sub)); } } foreach (array('validFrom', 'validTo') as $key) { if (isset($array[$key]) && substr($array[$key], 0, 4) == '0000') { unset($array[$key]); } } unset($array['sub'], $array['records'], $array['actions']); $inst->initConstraints($array); return $inst; }