}
}
+ /**
+ * @param string|int $id
+ * @return \Civi\ActionSchedule\Mapping|NULL
+ */
+ public static function getMapping($id) {
+ $mappings = self::getMappings();
+ return isset($mappings[$id]) ? $mappings[$id] : NULL;
+ }
+
/**
* Retrieve list of selections/drop downs for Scheduled Reminder form
*
*/
public static function getSelection($id = NULL) {
$mappings = CRM_Core_BAO_ActionSchedule::getMappings();
+ $selectedMapping = $mappings[$id ? $id : 1];
- $entityValueLabels = $entityStatusLabels = $dateFieldLabels = array();
- $entityRecipientLabels = $entityRecipientNames = array();
-
- if (!$id) {
- $id = 1;
+ $entityValueLabels = array();
+ foreach ($mappings as $mapping) {
+ /** @var \Civi\ActionSchedule\Mapping $mapping */
+ $entityValueLabels[$mapping->getId()] = $mapping->getValueLabels();
+ $valueLabel = array('- ' . strtolower($mapping->getValueHeader()) . ' -');
+ $entityValueLabels[$mapping->getId()] = $valueLabel + $entityValueLabels[$mapping->getId()];
}
+ $entityStatusLabels = array();
foreach ($mappings as $mapping) {
/** @var \Civi\ActionSchedule\Mapping $mapping */
-
- $mappingId = $mapping->getId();
- $entityValueLabels[$mappingId] = $mapping->getValueLabels();
- // Not sure why: everything *except* contact-dates have a $valueLabel.
- if ($mapping->getId() !== CRM_Contact_ActionMapping::CONTACT_MAPPING_ID) {
- $valueLabel = array('- ' . strtolower($mapping->getValueHeader()) . ' -');
- $entityValueLabels[$mapping->getId()] = $valueLabel + $entityValueLabels[$mapping->getId()];
- }
-
- if ($mapping->getId() == $id) {
- $dateFieldLabels = $mapping->getDateFields();
- $entityRecipientLabels = $mapping->getRecipientTypes() + self::getAdditionalRecipients();
- $entityRecipientNames = array_combine(array_keys($entityRecipientLabels), array_keys($entityRecipientLabels));
- }
-
$statusLabel = array('- ' . strtolower($mapping->getStatusHeader()) . ' -');
$entityStatusLabels[$mapping->getId()] = $entityValueLabels[$mapping->getId()];
foreach ($entityStatusLabels[$mapping->getId()] as $kkey => & $vval) {
}
}
- $entityLabels = array_map(function ($v) {
- return $v->getLabel();
- }, $mappings);
- $entityNames = array_map(function ($v) {
- return $v->getEntity();
- }, $mappings);
+ $entityRecipientLabels = $selectedMapping->getRecipientTypes() + self::getAdditionalRecipients();
return array(
- 'sel1' => $entityLabels,
+ 'sel1' => CRM_Utils_Array::collectMethod('getLabel', $mappings),
'sel2' => $entityValueLabels,
'sel3' => $entityStatusLabels,
- 'sel4' => $dateFieldLabels,
+ 'sel4' => $selectedMapping->getDateFields(),
'sel5' => $entityRecipientLabels,
- 'entityMapping' => $entityNames,
- 'recipientMapping' => $entityRecipientNames,
+ 'entityMapping' => CRM_Utils_Array::collectMethod('getEntity', $mappings),
+ 'recipientMapping' => array_combine(array_keys($entityRecipientLabels), array_keys($entityRecipientLabels)),
);
}
}
/**
- * @param TokenRow $tokenRow
+ * @param \Civi\Token\TokenRow $tokenRow
* @param CRM_Core_DAO_ActionSchedule $schedule
* @param int $toContactID
* @throws CRM_Core_Exception
}
/**
- * @param TokenRow $tokenRow
+ * @param \Civi\Token\TokenRow $tokenRow
* @param CRM_Core_DAO_ActionSchedule $schedule
* @param int $toContactID
* @return array