options_test.module
Same filename in other branches
Helper module for the List module tests.
File
-
core/
modules/ options/ tests/ options_test/ options_test.module
View source
<?php
/**
* @file
* Helper module for the List module tests.
*/
use Drupal\Core\Entity\FieldableEntityInterface;
use Drupal\Core\Field\FieldStorageDefinitionInterface;
use Drupal\Core\Form\FormStateInterface;
/**
* Implements callback_allowed_values_function().
*
* @see options_allowed_values()
*/
function options_test_allowed_values_callback(FieldStorageDefinitionInterface $definition, ?FieldableEntityInterface $entity = NULL) {
$values = [
'Group 1' => [
0 => 'Zero',
],
1 => 'One',
'Group 2' => [
2 => 'Some <script>dangerous</script> & unescaped <strong>markup</strong>',
],
'More <script>dangerous</script> markup' => [
3 => 'Three',
],
];
return $values;
}
/**
* Implements callback_allowed_values_function().
*
* @todo This function violates the recommendation in options_allowed_values()
* to return a list of all possible values in any context when $items is
* NULL. Since this is not yet used for testing Views integration, that is
* alright for now. Fix this in https://www.drupal.org/node/2012130.
*
* @see options_allowed_values()
*/
function options_test_dynamic_values_callback(FieldStorageDefinitionInterface $definition, ?FieldableEntityInterface $entity = NULL, &$cacheable = NULL) {
$values = [];
if (isset($entity)) {
$cacheable = FALSE;
$values = [
$entity->label(),
$entity->toUrl()
->toString(),
$entity->uuid(),
$entity->bundle(),
];
}
// We need the values of the entity as keys.
return array_combine($values, $values);
}
/**
* Implements hook_form_FORM_ID_alter().
*/
function options_test_form_entity_test_entity_test_form_alter(&$form, FormStateInterface $form_state, $form_id) {
if (\Drupal::state()->get('options_test.form_alter_enable', FALSE)) {
$form['card_1']['widget']['#required_error'] = t('This is custom message for required field.');
}
}
/**
* Implements hook_options_list_alter().
*/
function options_test_options_list_alter(array &$options, array $context) {
if ($context['fieldDefinition']->getName() === 'card_4' && $context['widget']->getPluginId() === 'options_select') {
// Rename _none option.
$options['_none'] = '- Select something -';
}
if ($context['fieldDefinition']->getName() === 'card_4' && $context['entity']->bundle() === 'entity_test') {
// Remove 0 option.
unset($options[0]);
}
}
Functions
Title | Deprecated | Summary |
---|---|---|
options_test_allowed_values_callback | Implements callback_allowed_values_function(). | |
options_test_dynamic_values_callback | Implements callback_allowed_values_function(). | |
options_test_form_entity_test_entity_test_form_alter | Implements hook_form_FORM_ID_alter(). | |
options_test_options_list_alter | Implements hook_options_list_alter(). |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.