/** * Get trigger data belonging to this specific post event * * Sub classes could override this method. E.g. a post on GroupContact doesn't give on object of GroupContact * it rather gives an array with contact Id's * * @param $op * @param $objectName * @param $objectId * @param $objectRef * @return CRM_Civirules_TriggerData_Edit|CRM_Civirules_TriggerData_Post */ protected function getTriggerDataFromPost($op, $objectName, $objectId, $objectRef) { $entity = CRM_Civirules_Utils_ObjectName::convertToEntity($objectName); $data = $this->convertObjectRefToDataArray($entity, $objectRef, $objectId); if ($op == 'edit') { //set also original data with an edit event $oldData = CRM_Civirules_Utils_PreData::getPreData($entity, $objectId); $triggerData = new CRM_Civirules_TriggerData_Edit($entity, $objectId, $data, $oldData); } else { $triggerData = new CRM_Civirules_TriggerData_Post($entity, $objectId, $data); } $this->alterTriggerData($triggerData); return $triggerData; }
function civirules_civicrm_pre($op, $objectName, $objectId, &$params) { CRM_Civirules_Utils_PreData::pre($op, $objectName, $objectId, $params); CRM_Civirules_Utils_CustomDataFromPre::pre($op, $objectName, $objectId, $params); }
/** * Get event data belonging to this specific post event * * Sub classes could override this method. E.g. a post on GroupContact doesn't give on object of GroupContact * it rather gives an array with contact Id's * * @param $op * @param $objectName * @param $objectId * @param $objectRef * @return CRM_Civirules_EventData_Edit|CRM_Civirules_EventData_Post */ protected function getEventDataFromPost($op, $objectName, $objectId, $objectRef) { $entity = CRM_Civirules_Utils_ObjectName::convertToEntity($objectName); //set data $data = array(); if (is_object($objectRef)) { CRM_Core_DAO::storeValues($objectRef, $data); } elseif (is_array($objectRef)) { $data = $objectRef; } if ($op == 'edit') { //set also original data with an edit event $oldData = CRM_Civirules_Utils_PreData::getPreData($entity, $objectId); $eventData = new CRM_Civirules_EventData_Edit($entity, $objectId, $data, $oldData); } else { $eventData = new CRM_Civirules_EventData_Post($entity, $objectId, $data); } return $eventData; }