public function MailchimpFieldsController::overview in Mailchimp 2.x
Same name and namespace in other branches
- 8 modules/mailchimp_lists/src/Controller/MailchimpFieldsController.php \Drupal\mailchimp_lists\Controller\MailchimpFieldsController::overview()
1 string reference to 'MailchimpFieldsController::overview'
- mailchimp_lists.routing.yml in modules/
mailchimp_lists/ mailchimp_lists.routing.yml - modules/mailchimp_lists/mailchimp_lists.routing.yml
File
- modules/
mailchimp_lists/ src/ Controller/ MailchimpFieldsController.php, line 45
Class
- MailchimpFieldsController
- Mailchimp Fields controller.
Namespace
Drupal\mailchimp_lists\ControllerCode
public function overview() {
$content = [];
$content['description'] = [
'#markup' => $this
->t('This displays a list of all Mailchimp Subscription Fields
configured on your system, with a row for each unique Instance of that field.
To edit each field\'s settings, go to the Entity Bundle\'s configuration
screen and use the Field UI.
When entities with Mailchimp Subscription Fields are updated,
the Merge Variables configured through Field UI are automatically updated if necessary.
However, if you have existing subscribers on Mailchimp and matching Entities
on Drupal when you configure your Merge Variables, the existing values
are not synced automatically, as this could be a slow process.
You can manually force updates of all existing Merge Values to existing
Mailchimp subscribers for each field configuration using the \'Batch Update\'
option on this table. The Mailchimp Subscription Field is provided by the
Mailchimp Audiences (mailchimp_lists) module.'),
];
$content['fields_table'] = [
'#type' => 'table',
'#header' => [
$this
->t('Entity Type'),
$this
->t('Bundle'),
$this
->t('Field'),
$this
->t('Batch Update'),
],
'#empty' => '',
];
$field_map = $this->entityFieldManager
->getFieldMap();
$row_id = 1;
foreach ($field_map as $entity_type => $fields) {
foreach ($fields as $field_name => $field_properties) {
if ($field_properties['type'] == 'mailchimp_lists_subscription') {
foreach ($field_properties['bundles'] as $bundle) {
$batch_update_url = Url::fromRoute('mailchimp_lists.update_mergevars', [
'entity_type' => $entity_type,
'bundle' => $bundle,
'field_name' => $field_name,
'destination' => 'admin/config/services/mailchimp/fields',
]);
$content['fields_table'][$row_id]['entity_type'] = [
'#markup' => $entity_type,
];
$content['fields_table'][$row_id]['bundle'] = [
'#markup' => $bundle,
];
$content['fields_table'][$row_id]['field'] = [
'#markup' => $field_name,
];
$content['fields_table'][$row_id]['batch_update'] = [
'#markup' => Link::fromTextAndUrl($this
->t('Update Mailchimp Mergevar Values'), $batch_update_url)
->toString(),
];
$row_id++;
}
}
}
}
return $content;
}