function salesforce_mapping_ui_entity_type_alter in Salesforce Suite 5.0.x
Same name and namespace in other branches
- 8.4 modules/salesforce_mapping_ui/salesforce_mapping_ui.module \salesforce_mapping_ui_entity_type_alter()
Implements hook_entity_type_alter().
File
- modules/
salesforce_mapping_ui/ salesforce_mapping_ui.module, line 22 - Manages Salesforce object and Drupal entity mappings.
Code
function salesforce_mapping_ui_entity_type_alter(array &$entity_types) {
// There's no good way to add a link template based on existing mapping
// definitions while we're building entity type definitions. We can't load
// existing mappings, because to do that we need to load entity types which
// creates an infinite recursion. So, we set the link template on any
// mappable entity, and hide it for any entity types that don't have
// mappings.
foreach ($entity_types as $entity_type_id => $entity_type) {
if ($entity_type_id == 'salesforce_mapping' || $entity_type_id == 'salesforce_mapped_object') {
continue;
}
if ($entity_type
->hasViewBuilderClass() && $entity_type
->hasLinkTemplate('canonical')) {
$entity_type
->setLinkTemplate('salesforce', "/{$entity_type_id}/{{$entity_type_id}}/salesforce");
}
}
// Set our UI classes for SalesforceMappingEntity.
$entity_types['salesforce_mapping']
->setHandlerClass('list_builder', SalesforceMappingList::class);
$entity_types['salesforce_mapping']
->setFormClass('add', SalesforceMappingAddForm::class);
$entity_types['salesforce_mapping']
->setFormClass('edit', SalesforceMappingEditForm::class);
$entity_types['salesforce_mapping']
->setFormClass('disable', SalesforceMappingDisableForm::class);
$entity_types['salesforce_mapping']
->setFormClass('delete', SalesforceMappingDeleteForm::class);
$entity_types['salesforce_mapping']
->setFormClass('enable', SalesforceMappingEnableForm::class);
$entity_types['salesforce_mapping']
->setFormClass('fields', SalesforceMappingFieldsForm::class);
$entity_types['salesforce_mapping']
->setLinkTemplate('add-form', '/admin/structure/salesforce/mappings/add');
$entity_types['salesforce_mapping']
->setLinkTemplate('edit-form', '/admin/structure/salesforce/mappings/manage/{salesforce_mapping}');
$entity_types['salesforce_mapping']
->setLinkTemplate('delete-form', '/admin/structure/salesforce/mappings/manage/{salesforce_mapping}/delete');
// Set UI classes for MappedObject.
$entity_types['salesforce_mapped_object']
->setHandlerClass('list_builder', MappedObjectList::class);
$entity_types['salesforce_mapped_object']
->setFormClass('add', MappedObjectForm::class);
$entity_types['salesforce_mapped_object']
->setFormClass('edit', MappedObjectForm::class);
$entity_types['salesforce_mapped_object']
->setFormClass('delete', MappedObjectForm::class);
$entity_types['salesforce_mapped_object']
->setFormClass('default', MappedObjectForm::class);
$entity_types['salesforce_mapped_object']
->setLinkTemplate('add-form', '/admin/content/salesforce/add');
$entity_types['salesforce_mapped_object']
->setLinkTemplate('edit-form', '/admin/content/salesforce/{salesforce_mapped_object}/edit');
$entity_types['salesforce_mapped_object']
->setLinkTemplate('delete-form', '/admin/content/salesforce/{salesforce_mapped_object}/delete');
$entity_types['salesforce_mapped_object']
->setLinkTemplate('canonical', '/admin/content/salesforce/{salesforce_mapped_object}');
}