protected function RelatedProperties::getConfigurationOptions in Salesforce Suite 8.4
Same name and namespace in other branches
- 8.3 modules/salesforce_mapping/src/Plugin/SalesforceMappingField/RelatedProperties.php \Drupal\salesforce_mapping\Plugin\SalesforceMappingField\RelatedProperties::getConfigurationOptions()
- 5.0.x modules/salesforce_mapping/src/Plugin/SalesforceMappingField/RelatedProperties.php \Drupal\salesforce_mapping\Plugin\SalesforceMappingField\RelatedProperties::getConfigurationOptions()
Form options helper.
1 call to RelatedProperties::getConfigurationOptions()
- RelatedProperties::buildConfigurationForm in modules/
salesforce_mapping/ src/ Plugin/ SalesforceMappingField/ RelatedProperties.php - Form constructor.
File
- modules/
salesforce_mapping/ src/ Plugin/ SalesforceMappingField/ RelatedProperties.php, line 138
Class
- RelatedProperties
- Adapter for entity Reference and fields.
Namespace
Drupal\salesforce_mapping\Plugin\SalesforceMappingFieldCode
protected function getConfigurationOptions($mapping) {
$instances = $this->entityFieldManager
->getFieldDefinitions($mapping
->get('drupal_entity_type'), $mapping
->get('drupal_bundle'));
if (empty($instances)) {
return;
}
$options = [];
// Loop over every field on the mapped entity. For reference fields, expose
// all properties of the referenced entity.
foreach ($instances as $instance) {
if (!$this
->instanceOfEntityReference($instance)) {
continue;
}
$settings = $instance
->getSettings();
$entity_type_id = $settings['target_type'];
$properties = [];
$entity_type = $this->entityTypeManager
->getDefinition($entity_type_id);
// exclude non-fieldables
if ($entity_type
->entityClassImplements(FieldableEntityInterface::class)) {
foreach ($this->entityTypeBundleInfo
->getBundleInfo($entity_type_id) as $bundle => $bundle_info) {
// If target bundles is specified, limit which bundles are visible.
if (!empty($settings['handler_settings']['target_bundles']) && !in_array($bundle, $settings['handler_settings']['target_bundles'])) {
continue;
}
$properties += $this->entityFieldManager
->getFieldDefinitions($entity_type_id, $bundle);
}
}
foreach ($properties as $key => $property) {
$options[(string) $instance
->getLabel()][$instance
->getName() . ':' . $key] = $property
->getLabel();
}
}
if (empty($options)) {
return;
}
// Alphabetize options for UI.
foreach ($options as $group => &$option_set) {
asort($option_set);
}
asort($options);
return $options;
}