Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / field / tests / modules / field_test / field_test.module
index cc1f9fa9054a31a79ec2e73e7fc8c0e3ddf25ebd..2c827c2def3fcdd63fd99d69d3c8f30626be61c6 100644 (file)
@@ -15,6 +15,7 @@
 
 use Drupal\Core\Entity\EntityTypeInterface;
 use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Render\Element;
 use Drupal\field\FieldStorageConfigInterface;
 
 require_once __DIR__ . '/field_test.entity.inc';
@@ -100,20 +101,54 @@ function field_test_entity_display_build_alter(&$output, $context) {
  * Implements hook_field_widget_form_alter().
  */
 function field_test_field_widget_form_alter(&$element, FormStateInterface $form_state, $context) {
-  $field_definition = $context['items']->getFieldDefinition();
-  switch ($field_definition->getName()) {
-    case 'alter_test_text':
-      drupal_set_message('Field size: ' . $context['widget']->getSetting('size'));
-      break;
-
-    case 'alter_test_options':
-      drupal_set_message('Widget type: ' . $context['widget']->getPluginId());
-      break;
+  // Set a message if this is for the form displayed to set default value for
+  // the field.
+  if ($context['default']) {
+    \Drupal::messenger()
+      ->addStatus('From hook_field_widget_form_alter(): Default form is true.');
   }
+}
+
+/**
+ * Implements hook_field_widget_multivalue_form_alter().
+ */
+function field_test_field_widget_multivalue_form_alter(array &$elements, FormStateInterface $form_state, array $context) {
+  _field_test_alter_widget("hook_field_widget_multivalue_form_alter", $elements, $form_state, $context);
+}
+
+/**
+ * Implements hook_field_widget_multivalue_WIDGET_TYPE_form_alter().
+ */
+function field_test_field_widget_multivalue_test_field_widget_multiple_form_alter(array &$elements, FormStateInterface $form_state, array $context) {
+  _field_test_alter_widget("hook_field_widget_multivalue_WIDGET_TYPE_form_alter", $elements, $form_state, $context);
+}
+
+/**
+ * Implements hook_field_widget_multivalue_WIDGET_TYPE_form_alter().
+ */
+function field_test_field_widget_multivalue_test_field_widget_multiple_single_value_form_alter(array &$elements, FormStateInterface $form_state, array $context) {
+  _field_test_alter_widget("hook_field_widget_multivalue_WIDGET_TYPE_form_alter", $elements, $form_state, $context);
+}
+
+/**
+ * Sets up alterations for widget alter tests.
+ *
+ * @see \Drupal\field\Tests\FormTest::widgetAlterTest()
+ */
+function _field_test_alter_widget($hook, array &$elements, FormStateInterface $form_state, array $context) {
+
   // Set a message if this is for the form displayed to set default value for
   // the field.
   if ($context['default']) {
-    drupal_set_message('From hook_field_widget_form_alter(): Default form is true.');
+    \Drupal::messenger()->addStatus("From $hook(): Default form is true.");
+  }
+  $alter_info = \Drupal::state()->get("field_test.widget_alter_test");
+  $name = $context['items']->getFieldDefinition()->getName();
+  if (!empty($alter_info) && $hook === $alter_info['hook'] && $name === $alter_info['field_name']) {
+    $elements['#prefix'] = "From $hook(): prefix on $name parent element.";
+    foreach (Element::children($elements) as $delta => $element) {
+      $elements[$delta]['#suffix'] = "From $hook(): suffix on $name child element.";
+    }
   }
 }
 
@@ -128,7 +163,6 @@ function field_test_query_efq_table_prefixing_test_alter(&$query) {
   $query->join('entity_test', 'et2', '%alias.id = entity_test.id');
 }
 
-
 /**
  * Implements hook_query_TAG_alter() for tag 'efq_metadata_test'.
  *
@@ -171,3 +205,14 @@ function field_test_entity_bundle_field_info_alter(&$fields, EntityTypeInterface
     ]);
   }
 }
+
+/**
+ * Implements hook_field_ui_preconfigured_options_alter().
+ */
+function field_test_field_ui_preconfigured_options_alter(array &$options, $field_type) {
+  if ($field_type === 'test_field_with_preconfigured_options') {
+    $options['custom_options']['entity_view_display']['settings'] = [
+      'test_formatter_setting_multiple' => 'altered dummy test string',
+    ];
+  }
+}