Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 67 |
| ConfigDependencyDeleteFormTrait | |
0.00% |
0 / 1 |
|
50.00% |
1 / 2 |
182 | |
0.00% |
0 / 67 |
| t | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| addDependencyListsToForm | |
0.00% |
0 / 1 |
156 | |
0.00% |
0 / 67 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\Core\Config\Entity\ConfigDependencyDeleteFormTrait. | |
| */ | |
| namespace Drupal\Core\Config\Entity; | |
| use Drupal\Core\Config\ConfigManagerInterface; | |
| use Drupal\Core\Entity\EntityManagerInterface; | |
| /** | |
| * Lists affected configuration entities by a dependency removal. | |
| * | |
| * This trait relies on the StringTranslationTrait. | |
| */ | |
| trait ConfigDependencyDeleteFormTrait { | |
| /** | |
| * Translates a string to the current language or to a given language. | |
| * | |
| * Provided by \Drupal\Core\StringTranslation\StringTranslationTrait. | |
| */ | |
| abstract protected function t($string, array $args = array(), array $options = array()); | |
| /** | |
| * Adds form elements to list affected configuration entities. | |
| * | |
| * @param array $form | |
| * The form array to add elements to. | |
| * @param string $type | |
| * The type of dependency being checked. Either 'module', 'theme', 'config' | |
| * or 'content'. | |
| * @param array $names | |
| * The specific names to check. If $type equals 'module' or 'theme' then it | |
| * should be a list of module names or theme names. In the case of 'config' | |
| * or 'content' it should be a list of configuration dependency names. | |
| * @param \Drupal\Core\Config\ConfigManagerInterface $config_manager | |
| * The config manager. | |
| * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager | |
| * The entity manager. | |
| * | |
| * @see \Drupal\Core\Config\ConfigManagerInterface::getConfigEntitiesToChangeOnDependencyRemoval() | |
| */ | |
| protected function addDependencyListsToForm(array &$form, $type, array $names, ConfigManagerInterface $config_manager, EntityManagerInterface $entity_manager) { | |
| // Get the dependent entities. | |
| $dependent_entities = $config_manager->getConfigEntitiesToChangeOnDependencyRemoval($type, $names); | |
| $entity_types = array(); | |
| $form['entity_updates'] = array( | |
| '#type' => 'details', | |
| '#title' => $this->t('Configuration updates'), | |
| '#description' => $this->t('The listed configuration will be updated.'), | |
| '#open' => TRUE, | |
| '#access' => FALSE, | |
| ); | |
| foreach ($dependent_entities['update'] as $entity) { | |
| /** @var \Drupal\Core\Config\Entity\ConfigEntityInterface $entity */ | |
| $entity_type_id = $entity->getEntityTypeId(); | |
| if (!isset($form['entity_updates'][$entity_type_id])) { | |
| $entity_type = $entity_manager->getDefinition($entity_type_id); | |
| // Store the ID and label to sort the entity types and entities later. | |
| $label = $entity_type->getLabel(); | |
| $entity_types[$entity_type_id] = $label; | |
| $form['entity_updates'][$entity_type_id] = array( | |
| '#theme' => 'item_list', | |
| '#title' => $label, | |
| '#items' => array(), | |
| ); | |
| } | |
| $form['entity_updates'][$entity_type_id]['#items'][$entity->id()] = $entity->label() ?: $entity->id(); | |
| } | |
| if (!empty($dependent_entities['update'])) { | |
| $form['entity_updates']['#access'] = TRUE; | |
| // Add a weight key to the entity type sections. | |
| asort($entity_types, SORT_FLAG_CASE); | |
| $weight = 0; | |
| foreach ($entity_types as $entity_type_id => $label) { | |
| $form['entity_updates'][$entity_type_id]['#weight'] = $weight; | |
| // Sort the list of entity labels alphabetically. | |
| ksort($form['entity_updates'][$entity_type_id]['#items'], SORT_FLAG_CASE); | |
| $weight++; | |
| } | |
| } | |
| $form['entity_deletes'] = array( | |
| '#type' => 'details', | |
| '#title' => $this->t('Configuration deletions'), | |
| '#description' => $this->t('The listed configuration will be deleted.'), | |
| '#open' => TRUE, | |
| '#access' => FALSE, | |
| ); | |
| foreach ($dependent_entities['delete'] as $entity) { | |
| $entity_type_id = $entity->getEntityTypeId(); | |
| if (!isset($form['entity_deletes'][$entity_type_id])) { | |
| $entity_type = $entity_manager->getDefinition($entity_type_id); | |
| // Store the ID and label to sort the entity types and entities later. | |
| $label = $entity_type->getLabel(); | |
| $entity_types[$entity_type_id] = $label; | |
| $form['entity_deletes'][$entity_type_id] = array( | |
| '#theme' => 'item_list', | |
| '#title' => $label, | |
| '#items' => array(), | |
| ); | |
| } | |
| $form['entity_deletes'][$entity_type_id]['#items'][$entity->id()] = $entity->label() ?: $entity->id(); | |
| } | |
| if (!empty($dependent_entities['delete'])) { | |
| $form['entity_deletes']['#access'] = TRUE; | |
| // Add a weight key to the entity type sections. | |
| asort($entity_types, SORT_FLAG_CASE); | |
| $weight = 0; | |
| foreach ($entity_types as $entity_type_id => $label) { | |
| if (isset($form['entity_deletes'][$entity_type_id])) { | |
| $form['entity_deletes'][$entity_type_id]['#weight'] = $weight; | |
| // Sort the list of entity labels alphabetically. | |
| ksort($form['entity_deletes'][$entity_type_id]['#items'], SORT_FLAG_CASE); | |
| $weight++; | |
| } | |
| } | |
| } | |
| } | |
| } |