class MediaLibraryInceptionWidget

Same name in other branches
  1. 9 core/modules/media_library/tests/modules/media_library_test_widget/src/Plugin/Field/FieldWidget/MediaLibraryInceptionWidget.php \Drupal\media_library_test_widget\Plugin\Field\FieldWidget\MediaLibraryInceptionWidget
  2. 8.9.x core/modules/media_library/tests/modules/media_library_test_widget/src/Plugin/Field/FieldWidget/MediaLibraryInceptionWidget.php \Drupal\media_library_test_widget\Plugin\Field\FieldWidget\MediaLibraryInceptionWidget
  3. 10 core/modules/media_library/tests/modules/media_library_test_widget/src/Plugin/Field/FieldWidget/MediaLibraryInceptionWidget.php \Drupal\media_library_test_widget\Plugin\Field\FieldWidget\MediaLibraryInceptionWidget

Plugin implementation of the 'media_library_inception_widget' widget.

This widget is used to simulate the media library widget nested inside another widget that performs validation of required fields before there is an opportunity to add media.

Hierarchy

Expanded class hierarchy of MediaLibraryInceptionWidget

File

core/modules/media_library/tests/modules/media_library_test_widget/src/Plugin/Field/FieldWidget/MediaLibraryInceptionWidget.php, line 21

Namespace

Drupal\media_library_test_widget\Plugin\Field\FieldWidget
View source
class MediaLibraryInceptionWidget extends MediaLibraryWidget {
    
    /**
     * {@inheritdoc}
     */
    public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
        if (empty($element['#element_validate'])) {
            $element['#element_validate'] = [];
        }
        $element['#element_validate'][] = [
            $this,
            'elementValidate',
        ];
        return parent::formElement($items, $delta, $element, $form, $form_state);
    }
    
    /**
     * {@inheritdoc}
     */
    public function elementValidate($element, FormStateInterface $form_state, $form) {
        $field_name = $element['#field_name'];
        $entity = $form_state->getFormObject()
            ->getEntity();
        $input = $form_state->getUserInput();
        if (!empty($input['_triggering_element_name']) && str_contains($input['_triggering_element_name'], 'media-library-update')) {
            // This will validate a required field before an upload is completed.
            $display = EntityFormDisplay::collectRenderDisplay($entity, 'edit');
            $display->extractFormValues($entity, $form, $form_state);
            $display->validateFormValues($entity, $form, $form_state);
        }
        $form_value = $form_state->getValue($field_name);
        if (!empty($form_value['media_library_selection'])) {
            $entity->set($field_name, $form_value['media_library_selection']);
        }
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
MediaLibraryInceptionWidget::elementValidate public function
MediaLibraryInceptionWidget::formElement public function Returns the form for a single field widget. Overrides MediaLibraryWidget::formElement
MediaLibraryWidget::$currentUser protected property The current active user.
MediaLibraryWidget::$entityTypeManager protected property Entity type manager service.
MediaLibraryWidget::$moduleHandler protected property The module handler.
MediaLibraryWidget::addItems public static function Updates the field state and flags the form for rebuild.
MediaLibraryWidget::create public static function Creates an instance of the plugin. Overrides WidgetBase::create
MediaLibraryWidget::defaultSettings public static function Defines the default settings for this plugin. Overrides PluginSettingsBase::defaultSettings
MediaLibraryWidget::errorElement public function Assigns a field-level validation error to the right widget sub-element. Overrides WidgetBase::errorElement
MediaLibraryWidget::extractFormValues public function Extracts field values from submitted form values. Overrides WidgetBase::extractFormValues
MediaLibraryWidget::form public function Creates a form element for a field. Overrides WidgetBase::form
MediaLibraryWidget::getAllowedMediaTypeIdsSorted protected function Gets the enabled media type IDs sorted by weight.
MediaLibraryWidget::getFieldState protected static function Gets the field state for the widget.
MediaLibraryWidget::getNewMediaItems protected static function Gets newly selected media items.
MediaLibraryWidget::getNoMediaTypesAvailableMessage protected function Gets the message to display when there are no allowed media types.
MediaLibraryWidget::isApplicable public static function Returns if the widget can be used for the provided field. Overrides WidgetBase::isApplicable
MediaLibraryWidget::massageFormValues public function Massages the form values into the format expected for field values. Overrides WidgetBase::massageFormValues
MediaLibraryWidget::openMediaLibrary public static function AJAX callback to open the library modal.
MediaLibraryWidget::preRenderWidget public function Prepares the widget's render element for rendering.
MediaLibraryWidget::removeItem public static function Submit callback for remove buttons.
MediaLibraryWidget::setFieldState protected static function Sets the field state for the widget.
MediaLibraryWidget::setMediaTypesValue public static function Value callback to optimize the way the media type weights are stored.
MediaLibraryWidget::settingsForm public function Returns a form to configure settings for the widget. Overrides WidgetBase::settingsForm
MediaLibraryWidget::settingsSummary public function Returns a short summary for the current widget settings. Overrides WidgetBase::settingsSummary
MediaLibraryWidget::trustedCallbacks public static function Lists the trusted callbacks provided by the implementing class. Overrides TrustedCallbackInterface::trustedCallbacks
MediaLibraryWidget::updateWidget public static function AJAX callback to update the widget when the selection changes.
MediaLibraryWidget::validateItems public static function Validates that newly selected items can be added to the widget.
MediaLibraryWidget::validateRequired public static function Validates whether the widget is required and contains values.
MediaLibraryWidget::__construct public function Constructs a MediaLibraryWidget widget. Overrides WidgetBase::__construct
PluginInspectionInterface::getPluginDefinition public function Gets the definition of the plugin implementation. 6
PluginInspectionInterface::getPluginId public function Gets the plugin ID of the plugin instance. 2
PluginSettingsBase::$defaultSettingsMerged protected property Whether default settings have been merged into the current $settings.
PluginSettingsBase::$thirdPartySettings protected property The plugin settings injected by third party modules.
PluginSettingsBase::calculateDependencies public function Overrides DependentPluginInterface::calculateDependencies 6
PluginSettingsBase::getSetting public function Overrides PluginSettingsInterface::getSetting
PluginSettingsBase::getSettings public function Overrides PluginSettingsInterface::getSettings
PluginSettingsBase::getThirdPartyProviders public function Overrides ThirdPartySettingsInterface::getThirdPartyProviders
PluginSettingsBase::getThirdPartySetting public function Overrides ThirdPartySettingsInterface::getThirdPartySetting
PluginSettingsBase::getThirdPartySettings public function Overrides ThirdPartySettingsInterface::getThirdPartySettings
PluginSettingsBase::mergeDefaults protected function Merges default settings values into $settings.
PluginSettingsBase::onDependencyRemoval public function Overrides PluginSettingsInterface::onDependencyRemoval 3
PluginSettingsBase::setSetting public function Overrides PluginSettingsInterface::setSetting
PluginSettingsBase::setSettings public function Overrides PluginSettingsInterface::setSettings
PluginSettingsBase::setThirdPartySetting public function Overrides ThirdPartySettingsInterface::setThirdPartySetting
PluginSettingsBase::unsetThirdPartySetting public function Overrides ThirdPartySettingsInterface::unsetThirdPartySetting
TrustedCallbackInterface::THROW_EXCEPTION constant Untrusted callbacks throw exceptions.
TrustedCallbackInterface::TRIGGER_SILENCED_DEPRECATION constant Untrusted callbacks trigger silenced E_USER_DEPRECATION errors.
WidgetBase::$fieldDefinition protected property The field definition.
WidgetBase::$settings protected property The widget settings. Overrides PluginSettingsBase::$settings
WidgetBase::addMoreAjax public static function Ajax callback for the "Add another item" button.
WidgetBase::addMoreSubmit public static function Submission handler for the "Add another item" button.
WidgetBase::afterBuild public static function After-build handler for field elements in a form.
WidgetBase::deleteAjax public static function Ajax refresh callback for the "Remove" button.
WidgetBase::deleteSubmit public static function Ajax submit callback for the "Remove" button.
WidgetBase::flagErrors public function Reports field-level validation errors against actual form elements. Overrides WidgetBaseInterface::flagErrors 2
WidgetBase::formMultipleElements protected function Special handling to create form elements for multiple values. 1
WidgetBase::formSingleElement protected function Generates the form element for a single copy of the widget.
WidgetBase::getFieldSetting protected function Returns the value of a field setting.
WidgetBase::getFieldSettings protected function Returns the array of field settings.
WidgetBase::getFilteredDescription protected function Returns the filtered field description.
WidgetBase::getWidgetState public static function Retrieves processing information about the widget from $form_state. Overrides WidgetBaseInterface::getWidgetState
WidgetBase::getWidgetStateParents protected static function Returns the location of processing information within $form_state.
WidgetBase::handlesMultipleValues protected function Returns whether the widget handles multiple values.
WidgetBase::isDefaultValueWidget protected function Returns whether the widget used for default value form.
WidgetBase::setWidgetState public static function Stores processing information about the widget in $form_state. Overrides WidgetBaseInterface::setWidgetState

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