get('media_source_test_attributes', [ 'attribute_1' => ['label' => $this->t('Attribute 1'), 'value' => 'Value 1'], 'attribute_2' => ['label' => $this->t('Attribute 2'), 'value' => 'Value 1'], ]); return array_map(function ($item) { return $item['label']; }, $attributes); } /** * {@inheritdoc} */ public function getMetadata(MediaInterface $media, $attribute_name) { $attributes = \Drupal::state()->get('media_source_test_attributes', [ 'attribute_1' => ['label' => $this->t('Attribute 1'), 'value' => 'Value 1'], 'attribute_2' => ['label' => $this->t('Attribute 2'), 'value' => 'Value 1'], ]); if (in_array($attribute_name, array_keys($attributes))) { return $attributes[$attribute_name]['value']; } return parent::getMetadata($media, $attribute_name); } /** * {@inheritdoc} */ public function getPluginDefinition() { return NestedArray::mergeDeep( parent::getPluginDefinition(), \Drupal::state()->get('media_source_test_definition', []) ); } /** * {@inheritdoc} */ public function defaultConfiguration() { return parent::defaultConfiguration() + [ 'test_config_value' => 'This is default value.', ]; } /** * {@inheritdoc} */ public function buildConfigurationForm(array $form, FormStateInterface $form_state) { $form = parent::buildConfigurationForm($form, $form_state); $form['test_config_value'] = [ '#type' => 'textfield', '#title' => $this->t('Test config value'), '#default_value' => $this->configuration['test_config_value'], ]; return $form; } }