public function setTriggerId($triggerId) { parent::setTriggerId($triggerId); $trigger = new CRM_Civirules_BAO_Trigger(); $trigger->id = $this->triggerId; if (!$trigger->find(true)) { throw new Exception('Civirules: could not find trigger with ID: ' . $this->triggerId); } $this->objectName = $trigger->object_name; $this->op = $trigger->op; }
/** * @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); $trigger = new CRM_Civirules_BAO_Trigger(); $trigger->id = $rule->trigger_id; $trigger->find(true); $triggerObject = CRM_Civirules_BAO_Trigger::getPostTriggerObjectByClassName($trigger->class_name, true); $triggerObject->setTriggerId($trigger->id); $availableEntities = array(); foreach ($triggerObject->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 trigger %1', array(1 => $trigger->label)); return $errors; } } return true; }
/** * Function to retrieve the label of an eva triggerent with triggerId * * @param int $triggerId * @return string $trigger->label * @access public * @static */ public static function getTriggerLabelWithId($triggerId) { if (empty($triggerId)) { return ''; } $trigger = new CRM_Civirules_BAO_Trigger(); $trigger->id = $triggerId; $trigger->find(true); return $trigger->label; }