/** * Function to add or update rule * * @param array $params * @return array $result * @access public * @throws Exception when params is empty * @static */ public static function add($params) { $result = array(); if (empty($params)) { throw new Exception('Params can not be empty when adding or updating a civirule rule'); } if (!empty($params['id'])) { CRM_Utils_Hook::pre('edit', 'CiviRuleRule', $params['id'], $params); } else { CRM_Utils_Hook::pre('create', 'CiviRuleRule', NULL, $params); } $rule = new CRM_Civirules_BAO_Rule(); $fields = self::fields(); foreach ($params as $key => $value) { if (isset($fields[$key])) { $rule->{$key} = $value; } } if (!isset($rule->name) || empty($rule->name)) { if (isset($rule->label)) { $rule->name = CRM_Civirules_Utils::buildNameFromLabel($rule->label); } } $rule->save(); self::storeValues($rule, $result); if (!empty($params['id'])) { CRM_Utils_Hook::post('edit', 'CiviRuleRule', $rule->id, $rule); } else { CRM_Utils_Hook::post('create', 'CiviRuleRule', $rule->id, $rule); } return $result; }
/** * Function to add or update condition * * @param array $params * @return array $result * @access public * @throws Exception when params is empty * @static */ public static function add($params) { $result = array(); if (empty($params)) { throw new Exception('Params can not be empty when adding or updating a civirule condition'); } $condition = new CRM_Civirules_BAO_Condition(); $fields = self::fields(); foreach ($params as $key => $value) { if (isset($fields[$key])) { $condition->{$key} = $value; } } if (!isset($condition->name) || empty($condition->name)) { $condition->name = CRM_Civirules_Utils::buildNameFromLabel($condition->label); } $condition->save(); self::storeValues($condition, $result); return $result; }
/** * Function to save rule * * @param array $formValues * @param int $userId * @access protected */ protected function saveRule($formValues, $userId) { if ($this->_action == CRM_Core_Action::ADD) { $ruleParams = array('created_date' => date('Ymd'), 'created_user_id' => $userId); } else { $ruleParams = array('modified_date' => date('Ymd'), 'modified_user_id' => $userId, 'id' => $formValues['id']); } $ruleParams['label'] = $formValues['rule_label']; $ruleParams['name'] = CRM_Civirules_Utils::buildNameFromLabel($formValues['rule_label']); $ruleParams['is_active'] = $formValues['rule_is_active'] ? 1 : 0; $savedRule = CRM_Civirules_BAO_Rule::add($ruleParams); $this->ruleId = $savedRule['id']; }