function TestFieldWidget::onDependencyRemoval

Same name and namespace in other branches
  1. 9 core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldWidget/TestFieldWidget.php \Drupal\field_test\Plugin\Field\FieldWidget\TestFieldWidget::onDependencyRemoval()
  2. 10 core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldWidget/TestFieldWidget.php \Drupal\field_test\Plugin\Field\FieldWidget\TestFieldWidget::onDependencyRemoval()
  3. 11.x core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldWidget/TestFieldWidget.php \Drupal\field_test\Plugin\Field\FieldWidget\TestFieldWidget::onDependencyRemoval()

Overrides PluginSettingsBase::onDependencyRemoval

File

core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldWidget/TestFieldWidget.php, line 97

Class

TestFieldWidget
Plugin implementation of the 'test_field_widget' widget.

Namespace

Drupal\field_test\Plugin\Field\FieldWidget

Code

public function onDependencyRemoval(array $dependencies) {
    $changed = parent::onDependencyRemoval($dependencies);
    // Only the setting 'role' is resolved here. When the dependency related to
    // this setting is removed, is expected that the widget component will be
    // update accordingly in the display entity. The 'role2' setting is
    // deliberately left out from being updated. When the dependency
    // corresponding to this setting is removed, is expected that the widget
    // component will be disabled in the display entity.
    if (!empty($role_id = $this->getSetting('role'))) {
        if (!empty($dependencies['config']["user.role.{$role_id}"])) {
            $this->setSetting('role', 'anonymous');
            $changed = TRUE;
        }
    }
    return $changed;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.