public function getRuleTitle() { if (empty($this->ruleTitle) && !empty($this->ruleId)) { $rule = new CRM_Civirules_BAO_Rule(); $rule->id = $this->ruleId; if ($rule->find(true)) { $this->ruleTitle = $rule->label; } } return $this->ruleTitle; }
/** * Logs a message to the logger * * @param $message * @param \CRM_Civirules_TriggerData_TriggerData|NULL $triggerData * @param string $level Should be one of \Psr\Log\LogLevel */ protected function logCondition($message, CRM_Civirules_TriggerData_TriggerData $triggerData = null, $level = \Psr\Log\LogLevel::INFO) { $context = array(); $context['message'] = $message; $context['rule_id'] = $this->ruleCondition['rule_id']; $rule = new CRM_Civirules_BAO_Rule(); $rule->id = $this->ruleCondition['rule_id']; $context['rule_title'] = ''; if ($rule->find(true)) { $context['rule_title'] = $rule->label; } $context['rule_condition_id'] = $this->ruleCondition['id']; $context['condition_label'] = CRM_Civirules_BAO_Condition::getConditionLabelWithId($this->ruleCondition['condition_id']); $context['condition_parameters'] = $this->userFriendlyConditionParams(); $context['contact_id'] = $triggerData ? $triggerData->getContactId() : -1; $msg = "{condition_label} (ID: {rule_condition_id})\r\n\r\n{message}\r\n\r\nRule: '{rule_title}' with id {rule_id}"; if ($context['contact_id'] > 0) { $msg .= "\r\nFor contact: {contact_id}"; } CRM_Civirules_Utils_LoggerFactory::log($msg, $context, $level); }
/** * @param $fields */ static function validateConditionEntities($fields) { $conditionClass = CRM_Civirules_BAO_Condition::getConditionObjectById($fields['rule_condition_select'], false); if (!$conditionClass) { $errors['rule_condition_select'] = ts('Not a valid condition, condition class is missing'); return $errors; } $requiredEntities = $conditionClass->requiredEntities(); $rule = new CRM_Civirules_BAO_Rule(); $rule->id = $fields['rule_id']; $rule->find(true); $event = new CRM_Civirules_BAO_Event(); $event->id = $rule->event_id; $event->find(true); $eventObject = CRM_Civirules_BAO_Event::getPostEventObjectByClassName($event->class_name, true); $eventObject->setEventId($event->id); $availableEntities = array(); foreach ($eventObject->getProvidedEntities() as $entityDef) { $availableEntities[] = strtolower($entityDef->entity); } foreach ($requiredEntities as $entity) { if (!in_array(strtolower($entity), $availableEntities)) { $errors['rule_condition_select'] = ts('This condition is not available with event %1', array(1 => $event->label)); return $errors; } } return true; }
/** * Function to retrieve the label of a rule with ruleId * * @param int $ruleId * @return string $rule->label * @access public * @static */ public static function getRuleLabelWithId($ruleId) { if (empty($ruleId)) { return ''; } $rule = new CRM_Civirules_BAO_Rule(); $rule->id = $ruleId; $rule->find(true); return $rule->label; }